Mercurial > repos > fubar > egapx_runner
annotate nf/subworkflows/ncbi/utilities.nf @ 0:d9c5c5b87fec draft
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
| author | fubar | 
|---|---|
| date | Sat, 03 Aug 2024 11:16:53 +0000 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 
0
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env nextflow | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
2 nextflow.enable.dsl=2 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
3 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
4 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
5 // Analog of shlex.split | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
6 def List<String> shellSplit(CharSequence s) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
7 List<String> tokens = [] | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
8 boolean escaping = false | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
9 char quoteChar = ' ' | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
10 boolean quoting = false | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
11 int lastCloseQuoteIndex = Integer.MIN_VALUE | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
12 StringBuilder current = new StringBuilder() | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
13 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
14 s.eachWithIndex { c, i -> | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
15 if (escaping) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
16 current.append(c) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
17 escaping = false | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
18 // } else if (c == '\\' && !(quoting && quoteChar == '\'')) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
19 } else if (c == '\\' && !quoting) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
20 escaping = true | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
21 } else if (quoting && c == quoteChar) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
22 quoting = false | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
23 lastCloseQuoteIndex = i | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
24 } else if (!quoting && (c == '\'' || c == '"')) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
25 quoting = true | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
26 quoteChar = c | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
27 } else if (!quoting && c.isAllWhitespace()) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
28 if (current.size() > 0 || lastCloseQuoteIndex == (i - 1)) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
29 tokens.add(current.toString()) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
30 current = new StringBuilder() | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
31 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
32 } else { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
33 current.append(c) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
34 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
35 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
36 if (current.size() > 0 || lastCloseQuoteIndex == (s.length() - 1)) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
37 tokens.add(current.toString()) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
38 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
39 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
40 return tokens | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
41 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
42 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
43 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
44 // Convert a parameter list into a map | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
45 def Map<String, String> to_map(List<String> list ) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
46 { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
47 def map = [:] | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
48 def s = list.size() | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
49 def i = 0 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
50 while (i < s) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
51 { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
52 def elem = list.get(i) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
53 i = i + 1 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
54 if (elem.size() > 0 && elem[0] == '-') | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
55 { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
56 if (i < s) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
57 def val = list.get(i) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
58 if ( val.size() > 0 && (val[0] != '-' || val.contains(' ')) ) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
59 { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
60 map[elem] = val | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
61 i = i + 1 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
62 } else { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
63 map[elem] = "" | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
64 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
65 } else { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
66 map[elem] = "" | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
67 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
68 } else { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
69 println("Error: parameter string not well formed, map ${map}, elem ${elem}, i ${i}, s ${s}") | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
70 return map | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
71 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
72 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
73 return map | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
74 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
75 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
76 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
77 def quote(String s) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
78 { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
79 if (s.size() > 0 && !(s =~ /[^\w@%+=:,.\/-]/)) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
80 return s | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
81 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
82 return "'" + s + "'" | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
83 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
84 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
85 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
86 // Read a section of the parameters and merge them into the default parameters | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
87 // Parameters: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
88 // default_params: the default parameters, string | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
89 // parameters: the parameters as a map from string to string | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
90 // section_name: the name of the section in the parameters map to use | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
91 // Return: the merged parameters | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
92 def merge_params(default_params, parameters, section_name) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
93 { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
94 def section = parameters.get(section_name, "") | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
95 def update_map = to_map(shellSplit(section)) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
96 def default_params_map = to_map(shellSplit(default_params)) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
97 default_params_map.putAll(update_map) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
98 def l = [] | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
99 default_params_map.each { parameter, value -> | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
100 l << quote(parameter) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
101 if (value.size() > 0) { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
102 l << quote(value) | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
103 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
104 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
105 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
106 return l.join(" ") | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
107 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
108 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
109 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
110 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
111 process clean_fasta_ids { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
112 input: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
113 path fasta_in | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
114 output: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
115 path "fasta_out", emit: 'fasta_out' | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
116 script: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
117 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
118 ## turns Fasta inputs formatted with multi-part IDs into | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
119 ## single-part IDs, like | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
120 ## >gi|1234|ref|NW_1234.1 Some Defline For This Org | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
121 ## >gi|1234 Some Defline For This Org | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
122 ## LDS chokes on the multi-part IDs. | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
123 # the base64 nonsense is because I couldnt get it to not complain about the regex as syntax errors in some way. | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
124 # its just this: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
125 # import re,sys; | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
126 # for l in sys.stdin: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
127 # <I had to delete the regex here because even in a comment nextflow lost it> | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
128 echo 'aW1wb3J0IHJlLHN5czsKZm9yIGwgaW4gc3lzLnN0ZGluOgogICAgcHJpbnQocmUuc3ViKHIiXig+' > reol.b64 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
129 echo 'Z2lcfFxkKylcfD8oW2Etel0rXHxbQS1aX10rW1xkXC5dK1x8KSguKikiLCAiXGc8MT5cZzwzPiIs' >> reol.b64 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
130 echo 'IGwuc3RyaXAoKSkpCg==' >> reol.b64 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
131 base64 -d ./reol.b64 > ./reol.py | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
132 cat ${fasta_in} | python reol.py > ./fasta_out | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
133 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
134 stub: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
135 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
136 touch ./fasta.out | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
137 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
138 } | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
139 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
140 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
141 | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
142 process multireader { | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
143 input: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
144 path fasta_file | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
145 val parameters | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
146 output: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
147 path ('output/fasta_file.asnt') , emit: 'multireader_file' | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
148 script: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
149 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
150 mkdir -p output | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
151 if [ -n "$fasta_file" ]; then | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
152 multireader $parameters -out-format asn_text -input $fasta_file -output output/fasta_file.asnt | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
153 else | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
154 touch output/fasta_file.asnt | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
155 fi | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
156 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
157 stub: | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
158 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
159 mkdir -p output | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
160 touch output/fasta_file.asnt | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
161 """ | 
| 
 
d9c5c5b87fec
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
 
fubar 
parents:  
diff
changeset
 | 
162 } | 
