@@ -16,6 +16,25 @@ include { methodsDescriptionText } from '../local/utils_nfcore_datasync_pipeline
16
16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17
17
*/
18
18
19
+ def splitChecksumFile(f, batchsize) {
20
+ lines = []
21
+ f. eachLine { line, index ->
22
+ def parts = line. split(/ \s +/ )
23
+ lines. add([parts[0 ], parts[1 ], String . format(' %06d' , (index % batchsize) + 1 )])
24
+ }
25
+ return lines. collate(batchsize)
26
+ }
27
+
28
+ def makeRenameScript(batch) {
29
+ script = []
30
+ script. add(" #!/bin/bash -euo pipefail" )
31
+ script. add(" mkdir -p work" )
32
+ batch. each { checksum, filename, index ->
33
+ script. add(" mkdir -p work/\$ (dirname '${ filename} ') && mv files/${ index} 'work/${ filename} '" )
34
+ }
35
+ return script. join(" \n " )
36
+ }
37
+
19
38
workflow CHECKSUM_VERIFY {
20
39
21
40
take :
@@ -26,6 +45,28 @@ workflow CHECKSUM_VERIFY {
26
45
ch_versions = Channel . empty()
27
46
ch_multiqc_files = Channel . empty()
28
47
48
+ ch_batches = ch_samplesheet. map{ meta, path, checksum_file ->
49
+ splitChecksumFile(checksum_file, params. chunksize). withIndex(). collect {
50
+ chunk, index -> [meta, chunk]
51
+ }
52
+ }. flatMap { meta, chunk -> tuple(meta, chunk)}
53
+ // ch_batches.view()
54
+ ch_scripts = ch_batches. map{ meta, chunk -> [meta, makeRenameScript(chunk)] }
55
+ // ch_scripts.view()
56
+ ch_files = ch_batches. join(ch_samplesheet). map{ meta, chunk, path, checksum_file ->
57
+ [meta, chunk. collect{ checksum , filename , idx -> file(" ${ path} /${ filename} " )}]
58
+ }
59
+ ch_files. view()
60
+ // ch_files = ch_batches.map{
61
+ // meta, path, chunk -> chunk.each{
62
+ // checksum, filename, numeric_id ->
63
+ // files = []
64
+ // files.add(file("${path}/${filename}", checkIfExists:true))
65
+ // }
66
+ // }
67
+ // ch_files.view()
68
+ // SHA256SUM_CHECK([[:], ["foo/test.txt", "foo/bar.txt"], [file("foo/test.txt"), file("foo/bar.txt")], []])
69
+
29
70
emit :
30
71
versions = ch_versions // channel: [ path(versions.yml) ]
31
72
multiqc_files = ch_multiqc_files
0 commit comments