miga-base 0.7.24.0 → 0.7.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. checksums.yaml +4 -4
  2. data/lib/miga/cli/action/add.rb +9 -6
  3. data/lib/miga/cli/action/derep_wf.rb +1 -1
  4. data/lib/miga/cli/action/index_wf.rb +4 -2
  5. data/lib/miga/cli/action/init.rb +83 -68
  6. data/lib/miga/cli/action/init/files_helper.rb +2 -1
  7. data/lib/miga/cli/action/option.rb +21 -2
  8. data/lib/miga/cli/action/preproc_wf.rb +7 -5
  9. data/lib/miga/cli/action/wf.rb +40 -24
  10. data/lib/miga/cli/base.rb +16 -5
  11. data/lib/miga/common/with_option.rb +1 -1
  12. data/lib/miga/dataset/result.rb +2 -1
  13. data/lib/miga/project/base.rb +1 -1
  14. data/lib/miga/result.rb +18 -15
  15. data/lib/miga/version.rb +2 -2
  16. data/scripts/essential_genes.bash +17 -1
  17. data/scripts/miga.bash +8 -2
  18. data/test/lair_test.rb +1 -2
  19. data/test/result_test.rb +22 -0
  20. data/utils/distance/base.rb +9 -0
  21. data/utils/distance/commands.rb +183 -81
  22. data/utils/distance/database.rb +68 -9
  23. data/utils/distance/pipeline.rb +14 -18
  24. data/utils/distance/runner.rb +17 -30
  25. data/utils/distance/temporal.rb +4 -2
  26. data/utils/distances.rb +2 -2
  27. data/utils/requirements.txt +5 -5
  28. metadata +5 -272
  29. data/utils/enveomics/Docs/recplot2.md +0 -244
  30. data/utils/enveomics/Examples/aai-matrix.bash +0 -66
  31. data/utils/enveomics/Examples/ani-matrix.bash +0 -66
  32. data/utils/enveomics/Examples/essential-phylogeny.bash +0 -105
  33. data/utils/enveomics/Examples/unus-genome-phylogeny.bash +0 -100
  34. data/utils/enveomics/LICENSE.txt +0 -73
  35. data/utils/enveomics/Makefile +0 -52
  36. data/utils/enveomics/Manifest/Tasks/aasubs.json +0 -103
  37. data/utils/enveomics/Manifest/Tasks/blasttab.json +0 -786
  38. data/utils/enveomics/Manifest/Tasks/distances.json +0 -161
  39. data/utils/enveomics/Manifest/Tasks/fasta.json +0 -766
  40. data/utils/enveomics/Manifest/Tasks/fastq.json +0 -243
  41. data/utils/enveomics/Manifest/Tasks/graphics.json +0 -126
  42. data/utils/enveomics/Manifest/Tasks/mapping.json +0 -67
  43. data/utils/enveomics/Manifest/Tasks/ogs.json +0 -382
  44. data/utils/enveomics/Manifest/Tasks/other.json +0 -829
  45. data/utils/enveomics/Manifest/Tasks/remote.json +0 -355
  46. data/utils/enveomics/Manifest/Tasks/sequence-identity.json +0 -501
  47. data/utils/enveomics/Manifest/Tasks/tables.json +0 -308
  48. data/utils/enveomics/Manifest/Tasks/trees.json +0 -68
  49. data/utils/enveomics/Manifest/Tasks/variants.json +0 -111
  50. data/utils/enveomics/Manifest/categories.json +0 -156
  51. data/utils/enveomics/Manifest/examples.json +0 -154
  52. data/utils/enveomics/Manifest/tasks.json +0 -4
  53. data/utils/enveomics/Pipelines/assembly.pbs/CONFIG.mock.bash +0 -69
  54. data/utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl +0 -1
  55. data/utils/enveomics/Pipelines/assembly.pbs/FastA.filterN.pl +0 -1
  56. data/utils/enveomics/Pipelines/assembly.pbs/FastA.length.pl +0 -1
  57. data/utils/enveomics/Pipelines/assembly.pbs/README.md +0 -189
  58. data/utils/enveomics/Pipelines/assembly.pbs/RUNME-2.bash +0 -112
  59. data/utils/enveomics/Pipelines/assembly.pbs/RUNME-3.bash +0 -23
  60. data/utils/enveomics/Pipelines/assembly.pbs/RUNME-4.bash +0 -44
  61. data/utils/enveomics/Pipelines/assembly.pbs/RUNME.bash +0 -50
  62. data/utils/enveomics/Pipelines/assembly.pbs/kSelector.R +0 -37
  63. data/utils/enveomics/Pipelines/assembly.pbs/newbler.pbs +0 -68
  64. data/utils/enveomics/Pipelines/assembly.pbs/newbler_preparator.pl +0 -49
  65. data/utils/enveomics/Pipelines/assembly.pbs/soap.pbs +0 -80
  66. data/utils/enveomics/Pipelines/assembly.pbs/stats.pbs +0 -57
  67. data/utils/enveomics/Pipelines/assembly.pbs/velvet.pbs +0 -63
  68. data/utils/enveomics/Pipelines/blast.pbs/01.pbs.bash +0 -38
  69. data/utils/enveomics/Pipelines/blast.pbs/02.pbs.bash +0 -73
  70. data/utils/enveomics/Pipelines/blast.pbs/03.pbs.bash +0 -21
  71. data/utils/enveomics/Pipelines/blast.pbs/BlastTab.recover_job.pl +0 -72
  72. data/utils/enveomics/Pipelines/blast.pbs/CONFIG.mock.bash +0 -98
  73. data/utils/enveomics/Pipelines/blast.pbs/FastA.split.pl +0 -1
  74. data/utils/enveomics/Pipelines/blast.pbs/README.md +0 -127
  75. data/utils/enveomics/Pipelines/blast.pbs/RUNME.bash +0 -109
  76. data/utils/enveomics/Pipelines/blast.pbs/TASK.check.bash +0 -128
  77. data/utils/enveomics/Pipelines/blast.pbs/TASK.dry.bash +0 -16
  78. data/utils/enveomics/Pipelines/blast.pbs/TASK.eo.bash +0 -22
  79. data/utils/enveomics/Pipelines/blast.pbs/TASK.pause.bash +0 -26
  80. data/utils/enveomics/Pipelines/blast.pbs/TASK.run.bash +0 -89
  81. data/utils/enveomics/Pipelines/blast.pbs/sentinel.pbs.bash +0 -29
  82. data/utils/enveomics/Pipelines/idba.pbs/README.md +0 -49
  83. data/utils/enveomics/Pipelines/idba.pbs/RUNME.bash +0 -95
  84. data/utils/enveomics/Pipelines/idba.pbs/run.pbs +0 -56
  85. data/utils/enveomics/Pipelines/trim.pbs/README.md +0 -54
  86. data/utils/enveomics/Pipelines/trim.pbs/RUNME.bash +0 -70
  87. data/utils/enveomics/Pipelines/trim.pbs/run.pbs +0 -130
  88. data/utils/enveomics/README.md +0 -42
  89. data/utils/enveomics/Scripts/AAsubs.log2ratio.rb +0 -171
  90. data/utils/enveomics/Scripts/Aln.cat.rb +0 -163
  91. data/utils/enveomics/Scripts/Aln.convert.pl +0 -35
  92. data/utils/enveomics/Scripts/AlphaDiversity.pl +0 -152
  93. data/utils/enveomics/Scripts/BedGraph.tad.rb +0 -93
  94. data/utils/enveomics/Scripts/BedGraph.window.rb +0 -71
  95. data/utils/enveomics/Scripts/BlastPairwise.AAsubs.pl +0 -102
  96. data/utils/enveomics/Scripts/BlastTab.addlen.rb +0 -63
  97. data/utils/enveomics/Scripts/BlastTab.advance.bash +0 -48
  98. data/utils/enveomics/Scripts/BlastTab.best_hit_sorted.pl +0 -55
  99. data/utils/enveomics/Scripts/BlastTab.catsbj.pl +0 -104
  100. data/utils/enveomics/Scripts/BlastTab.cogCat.rb +0 -76
  101. data/utils/enveomics/Scripts/BlastTab.filter.pl +0 -47
  102. data/utils/enveomics/Scripts/BlastTab.kegg_pep2path_rest.pl +0 -194
  103. data/utils/enveomics/Scripts/BlastTab.metaxaPrep.pl +0 -104
  104. data/utils/enveomics/Scripts/BlastTab.pairedHits.rb +0 -157
  105. data/utils/enveomics/Scripts/BlastTab.recplot2.R +0 -48
  106. data/utils/enveomics/Scripts/BlastTab.seqdepth.pl +0 -86
  107. data/utils/enveomics/Scripts/BlastTab.seqdepth_ZIP.pl +0 -119
  108. data/utils/enveomics/Scripts/BlastTab.seqdepth_nomedian.pl +0 -86
  109. data/utils/enveomics/Scripts/BlastTab.subsample.pl +0 -47
  110. data/utils/enveomics/Scripts/BlastTab.sumPerHit.pl +0 -114
  111. data/utils/enveomics/Scripts/BlastTab.taxid2taxrank.pl +0 -90
  112. data/utils/enveomics/Scripts/BlastTab.topHits_sorted.rb +0 -101
  113. data/utils/enveomics/Scripts/Chao1.pl +0 -97
  114. data/utils/enveomics/Scripts/CharTable.classify.rb +0 -234
  115. data/utils/enveomics/Scripts/EBIseq2tax.rb +0 -83
  116. data/utils/enveomics/Scripts/FastA.N50.pl +0 -56
  117. data/utils/enveomics/Scripts/FastA.extract.rb +0 -152
  118. data/utils/enveomics/Scripts/FastA.filter.pl +0 -52
  119. data/utils/enveomics/Scripts/FastA.filterLen.pl +0 -28
  120. data/utils/enveomics/Scripts/FastA.filterN.pl +0 -60
  121. data/utils/enveomics/Scripts/FastA.fragment.rb +0 -92
  122. data/utils/enveomics/Scripts/FastA.gc.pl +0 -42
  123. data/utils/enveomics/Scripts/FastA.interpose.pl +0 -93
  124. data/utils/enveomics/Scripts/FastA.length.pl +0 -38
  125. data/utils/enveomics/Scripts/FastA.mask.rb +0 -89
  126. data/utils/enveomics/Scripts/FastA.per_file.pl +0 -36
  127. data/utils/enveomics/Scripts/FastA.qlen.pl +0 -57
  128. data/utils/enveomics/Scripts/FastA.rename.pl +0 -65
  129. data/utils/enveomics/Scripts/FastA.revcom.pl +0 -23
  130. data/utils/enveomics/Scripts/FastA.sample.rb +0 -83
  131. data/utils/enveomics/Scripts/FastA.slider.pl +0 -85
  132. data/utils/enveomics/Scripts/FastA.split.pl +0 -55
  133. data/utils/enveomics/Scripts/FastA.split.rb +0 -79
  134. data/utils/enveomics/Scripts/FastA.subsample.pl +0 -131
  135. data/utils/enveomics/Scripts/FastA.tag.rb +0 -65
  136. data/utils/enveomics/Scripts/FastA.wrap.rb +0 -48
  137. data/utils/enveomics/Scripts/FastQ.filter.pl +0 -54
  138. data/utils/enveomics/Scripts/FastQ.interpose.pl +0 -90
  139. data/utils/enveomics/Scripts/FastQ.offset.pl +0 -90
  140. data/utils/enveomics/Scripts/FastQ.split.pl +0 -53
  141. data/utils/enveomics/Scripts/FastQ.tag.rb +0 -63
  142. data/utils/enveomics/Scripts/FastQ.test-error.rb +0 -81
  143. data/utils/enveomics/Scripts/FastQ.toFastA.awk +0 -24
  144. data/utils/enveomics/Scripts/GFF.catsbj.pl +0 -127
  145. data/utils/enveomics/Scripts/GenBank.add_fields.rb +0 -84
  146. data/utils/enveomics/Scripts/HMM.essential.rb +0 -351
  147. data/utils/enveomics/Scripts/HMM.haai.rb +0 -168
  148. data/utils/enveomics/Scripts/HMMsearch.extractIds.rb +0 -83
  149. data/utils/enveomics/Scripts/JPlace.distances.rb +0 -88
  150. data/utils/enveomics/Scripts/JPlace.to_iToL.rb +0 -320
  151. data/utils/enveomics/Scripts/M5nr.getSequences.rb +0 -81
  152. data/utils/enveomics/Scripts/MeTaxa.distribution.pl +0 -198
  153. data/utils/enveomics/Scripts/MyTaxa.fragsByTax.pl +0 -35
  154. data/utils/enveomics/Scripts/MyTaxa.seq-taxrank.rb +0 -49
  155. data/utils/enveomics/Scripts/NCBIacc2tax.rb +0 -92
  156. data/utils/enveomics/Scripts/Newick.autoprune.R +0 -27
  157. data/utils/enveomics/Scripts/RAxML-EPA.to_iToL.pl +0 -228
  158. data/utils/enveomics/Scripts/RecPlot2.compareIdentities.R +0 -32
  159. data/utils/enveomics/Scripts/RefSeq.download.bash +0 -48
  160. data/utils/enveomics/Scripts/SRA.download.bash +0 -57
  161. data/utils/enveomics/Scripts/TRIBS.plot-test.R +0 -36
  162. data/utils/enveomics/Scripts/TRIBS.test.R +0 -39
  163. data/utils/enveomics/Scripts/Table.barplot.R +0 -31
  164. data/utils/enveomics/Scripts/Table.df2dist.R +0 -30
  165. data/utils/enveomics/Scripts/Table.filter.pl +0 -61
  166. data/utils/enveomics/Scripts/Table.merge.pl +0 -77
  167. data/utils/enveomics/Scripts/Table.replace.rb +0 -69
  168. data/utils/enveomics/Scripts/Table.round.rb +0 -63
  169. data/utils/enveomics/Scripts/Table.split.pl +0 -57
  170. data/utils/enveomics/Scripts/Taxonomy.silva2ncbi.rb +0 -227
  171. data/utils/enveomics/Scripts/VCF.KaKs.rb +0 -147
  172. data/utils/enveomics/Scripts/VCF.SNPs.rb +0 -88
  173. data/utils/enveomics/Scripts/aai.rb +0 -418
  174. data/utils/enveomics/Scripts/ani.rb +0 -362
  175. data/utils/enveomics/Scripts/clust.rand.rb +0 -102
  176. data/utils/enveomics/Scripts/gi2tax.rb +0 -103
  177. data/utils/enveomics/Scripts/in_silico_GA_GI.pl +0 -96
  178. data/utils/enveomics/Scripts/lib/data/dupont_2012_essential.hmm.gz +0 -0
  179. data/utils/enveomics/Scripts/lib/data/lee_2019_essential.hmm.gz +0 -0
  180. data/utils/enveomics/Scripts/lib/enveomics.R +0 -1
  181. data/utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb +0 -24
  182. data/utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb +0 -253
  183. data/utils/enveomics/Scripts/lib/enveomics_rb/og.rb +0 -182
  184. data/utils/enveomics/Scripts/lib/enveomics_rb/remote_data.rb +0 -74
  185. data/utils/enveomics/Scripts/lib/enveomics_rb/seq_range.rb +0 -237
  186. data/utils/enveomics/Scripts/lib/enveomics_rb/stat.rb +0 -30
  187. data/utils/enveomics/Scripts/lib/enveomics_rb/vcf.rb +0 -135
  188. data/utils/enveomics/Scripts/ogs.annotate.rb +0 -88
  189. data/utils/enveomics/Scripts/ogs.core-pan.rb +0 -160
  190. data/utils/enveomics/Scripts/ogs.extract.rb +0 -125
  191. data/utils/enveomics/Scripts/ogs.mcl.rb +0 -186
  192. data/utils/enveomics/Scripts/ogs.rb +0 -104
  193. data/utils/enveomics/Scripts/ogs.stats.rb +0 -131
  194. data/utils/enveomics/Scripts/rbm.rb +0 -146
  195. data/utils/enveomics/Tests/Makefile +0 -10
  196. data/utils/enveomics/Tests/Mgen_M2288.faa +0 -3189
  197. data/utils/enveomics/Tests/Mgen_M2288.fna +0 -8282
  198. data/utils/enveomics/Tests/Mgen_M2321.fna +0 -8288
  199. data/utils/enveomics/Tests/Nequ_Kin4M.faa +0 -2970
  200. data/utils/enveomics/Tests/Xanthomonas_oryzae-PilA.tribs.Rdata +0 -0
  201. data/utils/enveomics/Tests/Xanthomonas_oryzae-PilA.txt +0 -7
  202. data/utils/enveomics/Tests/Xanthomonas_oryzae.aai-mat.tsv +0 -17
  203. data/utils/enveomics/Tests/Xanthomonas_oryzae.aai.tsv +0 -137
  204. data/utils/enveomics/Tests/a_mg.cds-go.blast.tsv +0 -123
  205. data/utils/enveomics/Tests/a_mg.reads-cds.blast.tsv +0 -200
  206. data/utils/enveomics/Tests/a_mg.reads-cds.counts.tsv +0 -55
  207. data/utils/enveomics/Tests/alkB.nwk +0 -1
  208. data/utils/enveomics/Tests/anthrax-cansnp-data.tsv +0 -13
  209. data/utils/enveomics/Tests/anthrax-cansnp-key.tsv +0 -17
  210. data/utils/enveomics/Tests/hiv1.faa +0 -59
  211. data/utils/enveomics/Tests/hiv1.fna +0 -134
  212. data/utils/enveomics/Tests/hiv2.faa +0 -70
  213. data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv +0 -233
  214. data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.lim +0 -1
  215. data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.rec +0 -233
  216. data/utils/enveomics/Tests/phyla_counts.tsv +0 -10
  217. data/utils/enveomics/Tests/primate_lentivirus.ogs +0 -11
  218. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv1.rbm +0 -9
  219. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv2.rbm +0 -8
  220. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-siv.rbm +0 -6
  221. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-hiv2.rbm +0 -9
  222. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-siv.rbm +0 -6
  223. data/utils/enveomics/Tests/primate_lentivirus.rbm/siv-siv.rbm +0 -6
  224. data/utils/enveomics/build_enveomics_r.bash +0 -45
  225. data/utils/enveomics/enveomics.R/DESCRIPTION +0 -31
  226. data/utils/enveomics/enveomics.R/NAMESPACE +0 -39
  227. data/utils/enveomics/enveomics.R/R/autoprune.R +0 -155
  228. data/utils/enveomics/enveomics.R/R/barplot.R +0 -184
  229. data/utils/enveomics/enveomics.R/R/cliopts.R +0 -135
  230. data/utils/enveomics/enveomics.R/R/df2dist.R +0 -154
  231. data/utils/enveomics/enveomics.R/R/growthcurve.R +0 -331
  232. data/utils/enveomics/enveomics.R/R/recplot.R +0 -354
  233. data/utils/enveomics/enveomics.R/R/recplot2.R +0 -1631
  234. data/utils/enveomics/enveomics.R/R/tribs.R +0 -583
  235. data/utils/enveomics/enveomics.R/R/utils.R +0 -50
  236. data/utils/enveomics/enveomics.R/README.md +0 -80
  237. data/utils/enveomics/enveomics.R/data/growth.curves.rda +0 -0
  238. data/utils/enveomics/enveomics.R/data/phyla.counts.rda +0 -0
  239. data/utils/enveomics/enveomics.R/man/cash-enve.GrowthCurve-method.Rd +0 -17
  240. data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2-method.Rd +0 -17
  241. data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2.Peak-method.Rd +0 -17
  242. data/utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd +0 -25
  243. data/utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd +0 -46
  244. data/utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd +0 -23
  245. data/utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd +0 -47
  246. data/utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd +0 -23
  247. data/utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd +0 -23
  248. data/utils/enveomics/enveomics.R/man/enve.__tribs.Rd +0 -32
  249. data/utils/enveomics/enveomics.R/man/enve.barplot.Rd +0 -91
  250. data/utils/enveomics/enveomics.R/man/enve.cliopts.Rd +0 -57
  251. data/utils/enveomics/enveomics.R/man/enve.col.alpha.Rd +0 -24
  252. data/utils/enveomics/enveomics.R/man/enve.col2alpha.Rd +0 -19
  253. data/utils/enveomics/enveomics.R/man/enve.df2dist.Rd +0 -39
  254. data/utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd +0 -38
  255. data/utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd +0 -40
  256. data/utils/enveomics/enveomics.R/man/enve.growthcurve.Rd +0 -67
  257. data/utils/enveomics/enveomics.R/man/enve.prune.dist.Rd +0 -37
  258. data/utils/enveomics/enveomics.R/man/enve.recplot.Rd +0 -122
  259. data/utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd +0 -45
  260. data/utils/enveomics/enveomics.R/man/enve.recplot2.ANIr.Rd +0 -24
  261. data/utils/enveomics/enveomics.R/man/enve.recplot2.Rd +0 -68
  262. data/utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd +0 -25
  263. data/utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd +0 -21
  264. data/utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd +0 -19
  265. data/utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd +0 -19
  266. data/utils/enveomics/enveomics.R/man/enve.recplot2.compareIdentities.Rd +0 -41
  267. data/utils/enveomics/enveomics.R/man/enve.recplot2.coordinates.Rd +0 -29
  268. data/utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd +0 -18
  269. data/utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd +0 -40
  270. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd +0 -36
  271. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_e.Rd +0 -19
  272. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_m.Rd +0 -19
  273. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__emauto_one.Rd +0 -27
  274. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mow_one.Rd +0 -41
  275. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mower.Rd +0 -17
  276. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.em.Rd +0 -43
  277. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.emauto.Rd +0 -37
  278. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.mower.Rd +0 -74
  279. data/utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd +0 -59
  280. data/utils/enveomics/enveomics.R/man/enve.recplot2.seqdepth.Rd +0 -27
  281. data/utils/enveomics/enveomics.R/man/enve.recplot2.windowDepthThreshold.Rd +0 -32
  282. data/utils/enveomics/enveomics.R/man/enve.tribs.Rd +0 -59
  283. data/utils/enveomics/enveomics.R/man/enve.tribs.test.Rd +0 -28
  284. data/utils/enveomics/enveomics.R/man/enve.truncate.Rd +0 -27
  285. data/utils/enveomics/enveomics.R/man/growth.curves.Rd +0 -14
  286. data/utils/enveomics/enveomics.R/man/phyla.counts.Rd +0 -13
  287. data/utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd +0 -63
  288. data/utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd +0 -38
  289. data/utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd +0 -38
  290. data/utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd +0 -111
  291. data/utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd +0 -19
  292. data/utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd +0 -19
  293. data/utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd +0 -19
  294. data/utils/enveomics/globals.mk +0 -8
  295. data/utils/enveomics/manifest.json +0 -9
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env Rscript
2
- #
3
- # @author Luis M. Rodriguez-R
4
- # @update Dec-29-2015
5
- # @license artistic license 2.0
6
- #
7
-
8
- #= Load stuff
9
- args <- commandArgs(trailingOnly = F)
10
- enveomics_R <- file.path(dirname(
11
- sub("^--file=", "", args[grep("^--file=", args)])),
12
- "lib", "enveomics.R")
13
- source(file.path(enveomics_R, "R", "cliopts.R"))
14
- source(file.path(enveomics_R, "R", "utils.R"))
15
- source(file.path(enveomics_R, "R", "barplot.R"))
16
-
17
- #= Generate interface
18
- opt <- enve.cliopts(enve.barplot,
19
- file.path(enveomics_R, "man", "enve.barplot.Rd"),
20
- positional_arguments=c(1,3),
21
- usage="usage: %prog [options] output.pdf [width height]",
22
- mandatory=c("x"), vectorize=c("sizes","order","col"),
23
- number=c("sizes","order"),
24
- o_desc=list(x="A tab-delimited file containing header (first row) and row names (first column)."))
25
-
26
- #= Run it!
27
- args = as.list(opt$args)
28
- for(i in 2:3) if(length(args)>=i) args[[i]] <- as.numeric(args[[i]])
29
- do.call("pdf", args)
30
- do.call("enve.barplot", opt$options)
31
- dev.off()
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env Rscript
2
- #
3
- # @author Luis M. Rodriguez-R
4
- # @update Jan-04-2016
5
- # @license artistic license 2.0
6
- #
7
-
8
- #= Load stuff
9
- args <- commandArgs(trailingOnly = F)
10
- enveomics_R <- file.path(dirname(
11
- sub("^--file=", "", args[grep("^--file=", args)])),
12
- "lib", "enveomics.R")
13
- source(file.path(enveomics_R, "R", "cliopts.R"))
14
- source(file.path(enveomics_R, "R", "df2dist.R"))
15
-
16
- #= Generate interface
17
- opt <- enve.cliopts(enve.df2dist,
18
- file.path(enveomics_R, "man", "enve.df2dist.Rd"),
19
- positional_arguments=1,
20
- usage="usage: %prog [options] output.mat",
21
- mandatory=c("x"),
22
- number=c("default.d", "max.sim"),
23
- o_desc=list(x="A tab-delimited table with the distances."),
24
- p_desc="Transform a tab-delimited list of distances into a squared matrix.")
25
-
26
- #= Run it!
27
- opt$options[['x']] <- read.table(opt$options[['x']],
28
- header=TRUE, sep="\t", as.is=TRUE)
29
- dist <- do.call("enve.df2dist", opt$options)
30
- write.table(as.matrix(dist), opt$args[1], quote=FALSE, sep="\t", col.names=NA)
@@ -1,61 +0,0 @@
1
- #!/usr/bin/env perl
2
- #
3
- # @author: Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
- # @update: Mar-23-2015
5
- # @license: artistic license 2.0
6
- #
7
-
8
- use warnings;
9
- use strict;
10
- use Getopt::Std;
11
-
12
- my %o;
13
- getopts('k:s:ihn', \%o);
14
- my($list, $table) = @ARGV;
15
-
16
- ($list and $table) or die "
17
- .Description:
18
- Extracts (and re-orders) a subset of rows from a raw table.
19
-
20
- .Usage: $0 [options] list.txt table.txt > subset.txt
21
-
22
- Options:
23
- -k <int> Column of the table to use as key to filter. By default, 1.
24
- -s <str> String to use as separation between rows. By default, tabulation.
25
- -i If set, reports the inverse of the list (i.e., reports only rows
26
- absent in the list). Implies -n.
27
- -h Keep first row of the table (header) untouched.
28
- -n No re-order. The output has the same order of the table. By
29
- default, it prints in the order of the list.
30
-
31
- list.txt List of IDs to extract.
32
- table.txt Table file containing the superset.
33
- subset.txt Table file to be created.
34
-
35
- ";
36
-
37
- $o{k} ||= 1;
38
- $o{s} ||= "\t";
39
- $o{n}=1 if $o{i};
40
- my $HEADER = "";
41
-
42
- my $tbl2 = $o{n} ? $list : $table;
43
- open TBL, "<", $tbl2 or die "Cannot read file: $tbl2: $!\n";
44
- $HEADER = <TBL> if $o{h} and not $o{n};
45
- my %tbl2 = map { my $l=$_; chomp $l; my @r=split $o{s}, $l; $r[ $o{n} ? 0 : $o{k}-1] => $l } <TBL>;
46
- close TBL;
47
-
48
- my $tbl1 = $o{n} ? $table : $list;
49
- open TBL, "<", $tbl1 or die "Cannot read file: $tbl1: $!\n";
50
- $HEADER = <TBL> if $o{h} and $o{n};
51
- print $HEADER;
52
- while(my $ln = <TBL>){
53
- chomp $ln;
54
- next unless $ln;
55
- my @ln = split $o{s}, $ln;
56
- my $good = exists $tbl2{ $ln[$o{n} ? $o{k}-1 : 0] };
57
- $good = not $good if $o{i};
58
- print "".($o{n} ? $ln : $tbl2{$ln[0]})."\n" if $good;
59
- }
60
- close TBL;
61
-
@@ -1,77 +0,0 @@
1
- #!/usr/bin/env perl
2
- #
3
- # @author: Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
- # @update: Sep-20-2015
5
- # @license: artistic license 2.0
6
- #
7
-
8
- use warnings;
9
- use strict;
10
- use Getopt::Std;
11
-
12
- my %o;
13
- getopts('si:o:ne:h:H:r:', \%o);
14
- my @files = @ARGV;
15
-
16
- $#files>0 or die "
17
- .Description:
18
- Merges multiple (two-column) lists into one table.
19
-
20
- .Usage:
21
- $0 [options] files... > output.txt
22
-
23
- Options:
24
- -s Values are read as Strings. By default, values are read as numbers.
25
- -i <str> Input field-delimiter. By default: tabulation (\"\\t\").
26
- -o <str> Output field-delimiter. By default: tabulation (\"\\t\").
27
- -n No-header. By default, the header is determined by the file names.
28
- -e <str> Default string when no value is found. By default, the \"empty\" value
29
- is 0 if values are numeric (i.e., unless -s is set) or an empty string
30
- otherwise.
31
- -h <str> Header of the first column, containing the IDs. By default: \"Tag\".
32
- -H <str> Format of filenames capturing the column header in the first capturing
33
- parenthesis. Non-capturing paretheses can be defined as (?:...). By
34
- default: \"(?:.*/)?([^\\.]+)\", which captures the part of the basename
35
- of the file before the first dot (if any).
36
- -r <int> Number of leading rows to ignore in the input files. Zero by default.
37
-
38
- ";
39
- $o{i} ||= "\t";
40
- $o{o} ||= "\t";
41
- $o{e} ||= ($o{s} ? "" : 0);
42
- $o{h} ||= "Tag";
43
- $o{H} ||= "(?:.*/)?([^\\.]+)";
44
- $o{r} += 0;
45
-
46
- my $notes = {};
47
-
48
- print $o{h} unless $o{n};
49
- my $i = 0;
50
- for my $file (@files){
51
- unless($o{n}){
52
- $file =~ m/$o{H}/ or die "Filename '$file' doesn't match format '$o{H}'.";
53
- my $tag=$1;
54
- print $o{o}.$tag;
55
- }
56
- open IN, "<", $file or die "Cannot read file: $file: $!\n";
57
- while(<IN>){
58
- next if $. <= $o{r};
59
- chomp;
60
- my @l = split $o{i};
61
- $l[1]+=0 unless $o{s};
62
- $notes->{$l[0]} ||= [];
63
- $notes->{$l[0]}->[$i] = $l[1];
64
- }
65
- close IN;
66
- $i++;
67
- }
68
- print "\n" unless $o{n};
69
-
70
- for my $id (keys %$notes){
71
- print $id;
72
- for my $i (0 .. $#files){
73
- print $o{o}.(( defined $notes->{$id}->[$i] ? $notes->{$id}->[$i] : $o{e} ));
74
- }
75
- print "\n";
76
- }
77
-
@@ -1,69 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #
4
- # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
5
- # @update Feb 01 2016
6
- # @license artistic license 2.0
7
- #
8
-
9
- require "optparse"
10
-
11
- o = {delimiter: "\t", key: 1, default: ""}
12
- ARGV << "-h" if ARGV.size==0
13
- OptionParser.new do |opts|
14
- opts.banner = "\nReplaces a field in a table using a mapping file."
15
- opts.on("-m", "--map FILE",
16
- "Mapping file with two columns (key and replacement)."){ |v| o[:map] = v }
17
- opts.on("-i", "--in FILE", "Input table."){ |v| o[:in] = v }
18
- opts.on("-o", "--out FILE", "Output table."){ |v| o[:out] = v }
19
- opts.on("-k", "--key INT",
20
- "Column to replace in --in. By deafult: 1."){ |v| o[:key] = v.to_i }
21
- opts.on("-u", "--unknown STR",
22
- "String to use whenever the key is not found in --map."
23
- ){ |v| o[:default] = v }
24
- opts.on("-d", "--delimiter STR",
25
- "String delimiting columns. By default, tabulation."
26
- ){ |v| o[:delimiter] = v }
27
- opts.on("-h", "--help", "Display this screen") do
28
- puts opts
29
- exit
30
- end
31
- opts.separator ""
32
- end.parse!
33
- abort "-m is mandatory" if o[:map].nil?
34
- abort "-i is mandatory" if o[:in].nil?
35
- abort "-o is mandatory" if o[:out].nil?
36
-
37
- class String
38
- def is_number?
39
- true if Float(self) rescue false
40
- end
41
- end
42
-
43
- begin
44
- # Read mapping file
45
- ifh = File.open(o[:map], "r")
46
- map = {}
47
- while(ln = ifh.gets)
48
- row = ln.chomp.split(o[:delimiter])
49
- map[ row[0] ] = row[1]
50
- end
51
- ifh.close
52
- # Process table
53
- ifh = File.open(o[:in], "r")
54
- ofh = File.open(o[:out], "w")
55
- while(ln = ifh.gets)
56
- row = ln.chomp.split(o[:delimiter])
57
- k = row[ o[:key]-1 ]
58
- v = map[ k ]
59
- v = o[:default] if v.nil?
60
- row[ o[:key]-1 ] = v
61
- ofh.puts(row.join(o[:delimiter]))
62
- end
63
- ifh.close
64
- ofh.close
65
- rescue => err
66
- $stderr.puts "Exception: #{err}\n\n"
67
- err.backtrace.each { |l| $stderr.puts " - " + l + "\n" }
68
- err
69
- end
@@ -1,63 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #
4
- # @author: Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
5
- # @update: Feb 04 2015
6
- # @license: artistic license 2.0
7
- #
8
-
9
- require 'optparse'
10
-
11
- o = {:ndigits=>0, :action=>:round, :delimiter=>"\t"}
12
- ARGV << '-h' if ARGV.size==0
13
- OptionParser.new do |opts|
14
- opts.banner = "\nRounds numbers in a table."
15
- opts.on("-i", "--in FILE", "Input table."){ |v| o[:in] = v}
16
- opts.on("-o", "--out FILE", "Output table."){ |v| o[:out] = v }
17
- opts.on("-n", "--ndigits INT", "Number of decimal digits. By default: #{o[:ndigits]}"){ |v| o[:ndigits] = v.to_i }
18
- opts.on("-f", "--floor", "Floors the values instead of rounding them. Ignores -n."){ o[:action] = :floor }
19
- opts.on("-c", "--ceil", "Ceils the values instead of rounding them. Ignores -n."){ o[:action] = :ceil }
20
- opts.on("-d", "--delimiter STR", "String delimiting columns. By default, tabulation."){ |v| o[:delimiter] = v }
21
- opts.on("-h", "--help", "Display this screen") do
22
- puts opts
23
- exit
24
- end
25
- opts.separator ""
26
- end.parse!
27
- abort "-i is mandatory" if o[:in].nil?
28
- abort "-o is mandatory" if o[:out].nil?
29
-
30
- class String
31
- def is_number?
32
- true if Float(self) rescue false
33
- end
34
- end
35
-
36
- begin
37
- ifh = File.open(o[:in], "r")
38
- ofh = File.open(o[:out], "w")
39
- while(ln = ifh.gets)
40
- ln.chomp!
41
- row = []
42
- ln.split(o[:delimiter]).each do |value|
43
- if value.is_number?
44
- case o[:action]
45
- when :round
46
- value = value.to_f.round(o[:ndigits])
47
- when :floor
48
- value = value.to_f.floor
49
- when :ceil
50
- value = value.to_f.ceil
51
- end
52
- end
53
- row.push value.to_s
54
- end
55
- ofh.puts(row.join(o[:delimiter]))
56
- end
57
- ifh.close
58
- ofh.close
59
- rescue => err
60
- $stderr.puts "Exception: #{err}\n\n"
61
- err.backtrace.each { |l| $stderr.puts " - " + l + "\n" }
62
- err
63
- end
@@ -1,57 +0,0 @@
1
- #!/usr/bin/env perl
2
- #
3
- # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
- # @update Feb-01-2016
5
- # @license artistic license 2.0
6
- #
7
-
8
- use warnings;
9
- use strict;
10
- use Getopt::Std;
11
- use Symbol;
12
-
13
- my %o;
14
- getopts('i:o:d:e:h', \%o);
15
- my $file = shift @ARGV;
16
-
17
- ($file and not $o{h}) or die "
18
- .Description:
19
- Split a file with multiple columns into multiple two-columns lists.
20
-
21
- .Usage:
22
- $0 [options] file
23
-
24
- Options:
25
- -i <str> Input field-delimiter. By default: tabulation (\"\\t\").
26
- -o <str> Prefix of the output files. By default: no prefix (\"\").
27
- -d <str> Output directory. By default: current directory (\"\").
28
-
29
- ";
30
- $o{i} ||= "\t";
31
- $o{o} ||= "";
32
- $o{o} = $o{d}."/".$o{o} if $o{d};
33
-
34
- my $open=0;
35
- my @fhs=();
36
- open IN, "<", $file or die "Cannot read file: $file: $!\n";
37
- while(<IN>){
38
- chomp;
39
- my @row = split $o{i};
40
- my $h = shift @row;
41
- if($open){
42
- for my $i (0 .. $#row){
43
- print { qualify_to_ref $fhs[$i] } $h.$o{i}.$row[$i]."\n" if $row[$i];
44
- }
45
- }else{
46
- $open++;
47
- for my $l (@row){
48
- $l =~ s/[\.\/:]/_/g;
49
- my $gs = gensym;
50
- open($gs, '>', $o{o}.$l.".txt") or die "Cannot create file: $o{o}$l.txt: $!\n";
51
- push @fhs, $gs;
52
- }
53
- }
54
- }
55
- close IN;
56
- close $_ for @fhs;
57
-
@@ -1,227 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #
4
- # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
5
- # @update: Feb-06-2015
6
- # @license artistic license 2.0
7
- #
8
-
9
- require 'optparse'
10
-
11
- $opts = {:warns=>false}
12
- ARGV << '-h' if ARGV.size==0
13
- OptionParser.new do |opt|
14
- opt.separator "Re-formats Silva taxonomy into NCBI-like taxonomy dump files."
15
- opt.separator ""
16
- opt.separator "Mandatory arguments"
17
- opt.on("-k", "--silvaranks FILE", "Input Silva ranks file (e.g., tax_ranks_ssu_115.txt)."){ |v| $opts[:silvaranks]=v }
18
- opt.on("-f", "--silvaref FILE", "Input Silva ref alignment file (e.g., SSURef_NR99_115_tax_silva_full_align_trunc.fasta)."){ |v| $opts[:silvaref]=v }
19
- opt.separator ""
20
- opt.separator "Additional options"
21
- opt.on("-p", "--patch FILE", "If passed, it replaces the paths specified in the patch."){ |v| $opts[:patch]=v }
22
- opt.on("-s", "--seqinfo FILE", "If passed, it creates a CSV seq-info file compatible with taxtastic."){ |v| $opts[:seqinfo]=v }
23
- opt.on("-t", "--taxfile FILE", "If passed, it creates a simple TSV taxonomy file."){ |v| $opts[:taxfile]=v }
24
- opt.on("-n", "--ncbi FILE", "If passed, output folder for the NCBI dump files (e.g., taxdmp)."){ |v| $opts[:ncbi]=v }
25
- opt.on("-w", "--warns", "Verbously display warnings."){ $opts[:warns]=true }
26
- opt.on("-h", "--help","Display this screen") do
27
- puts opt
28
- exit
29
- end
30
- opt.separator ""
31
- end.parse!
32
- abort "-k/--silvaranks is mandatory." if $opts[:silvaranks].nil?
33
- abort "-k/--silvaranks must exist." unless File.exists? $opts[:silvaranks]
34
- abort "-f/--silvaref is mandatory." if $opts[:silvaref].nil?
35
- abort "-f/--silvaref must exist." unless File.exists? $opts[:silvaref]
36
-
37
- class Node
38
- attr_accessor :id, :tax, :leaf, :name_type
39
- attr_reader :name, :rank, :parent, :children
40
- def initialize(name, rank=nil)
41
- @name = name
42
- @rank = rank.nil? ? "no rank" : rank
43
- @children = []
44
- @leaf = false
45
- @name_type = "scientific name";
46
- end
47
- def parent=(node)
48
- @parent=node
49
- node.add_child(self)
50
- end
51
- def add_child(node)
52
- @children << node
53
- end
54
- def ncbirank
55
- ncbirank =
56
- self.rank == "superkingdom" ? "no rank" :
57
- self.rank == "domain" ? "superkingdom" :
58
- self.rank == "major_clade" ? "no rank" : self.rank
59
- return ncbirank
60
- end
61
- def path
62
- if self.parent.nil?
63
- self.name
64
- else
65
- "#{self.parent.path};#{self.name}"
66
- end
67
- end
68
- def each_desc internals, leaves, &blk
69
- blk[self] if (leaves and self.leaf) or (internals and not self.leaf)
70
- self.children.each {|child| child.each_desc internals, leaves, &blk}
71
- end
72
- def to_s
73
- "#{self.name} (#{self.rank})"
74
- end
75
- end
76
-
77
- class Taxonomy
78
- attr_reader :root, :next_id
79
- def initialize
80
- @root = Node.new('root')
81
- @root.id = 1
82
- @next_id = 2
83
- end
84
- def register(node)
85
- node.id = self.next_id
86
- node.parent = self.root if node.parent.nil?
87
- @next_id += 1
88
- end
89
- def node(path)
90
- node = self.root
91
- path.each do |level|
92
- node.children.each do |child|
93
- if child.name == level
94
- node = child
95
- break
96
- end
97
- end
98
- unless node.name == level
99
- $stderr.puts "Warning: Impossible to find #{level} at #{node.to_s}, making it up." if $opts[:warns]
100
- child = Node.new(level)
101
- child.parent = node
102
- self.register(child)
103
- node = child
104
- end
105
- end
106
- node
107
- end
108
- def each_node &blk
109
- self.root.each_desc true, true, &blk
110
- end
111
- def each_leaf &blk
112
- self.root.each_desc false, true, &blk
113
- end
114
- def each_internal &blk
115
- self.root.each_desc true, false, &blk
116
- end
117
- end
118
-
119
- begin
120
- taxo = Taxonomy.new()
121
-
122
- ## Read patch
123
- patch = {}
124
- unless $opts[:patch].nil?
125
- $stderr.puts "Reading patch: #{$opts[:patch]}"
126
- f = File.open($opts[:patch], "r")
127
- while(ln = f.gets)
128
- m = ln.chomp.split(/\t/)
129
- patch[ m[0] ] = m[1]
130
- end
131
- end
132
-
133
- ## Read the Silva ranks
134
- $stderr.puts "Reading Silva ranks: #{$opts[:silvaranks]}"
135
- f = File.open($opts[:silvaranks], "r")
136
- f.gets # header
137
- while(ln = f.gets)
138
- m = ln.chomp.split(/\t/)
139
- m[0] = patch[ m[0] ] unless patch[ m[0] ].nil?
140
- p = m[0].split(/;/)
141
- raise "Inconsistent path and node name at line #{$.}: #{ln}." unless m[1] == p.pop
142
- if m[3] != "w"
143
- node = Node.new(m[1], m[2])
144
- node.name_type = "common name" if m[3] == "a"
145
- node.parent = taxo.node(p)
146
- taxo.register(node)
147
- end
148
- end
149
- f.close
150
-
151
- $stderr.puts " Top taxa:"
152
- taxo.root.children.each do |top|
153
- $stderr.puts " o #{top.to_s} has #{top.children.length} children."
154
- end
155
-
156
- ## Read the Silva ref alignment
157
- $stderr.puts "Reading Silva ref alignment: #{$opts[:silvaref]}"
158
- i = 0
159
- f = File.open($opts[:silvaref], "r")
160
- while(ln = f.gets)
161
- m = />([^\s]+)\s(.*)/.match(ln)
162
- next unless m
163
- # Patch
164
- pm = /(.+);([^;]+)/.match(m[2])
165
- path = "#{patch[ pm[1] ].nil? ? pm[1] : patch[ pm[1] ]};#{pm[2]}".split(/;/)
166
- # Register
167
- node = taxo.node(path)
168
- taxo.register(node)
169
- refseq = Node.new(m[1], 'refseq')
170
- refseq.parent = node
171
- refseq.leaf = true
172
- taxo.register(refseq)
173
- i += 1
174
- end
175
- f.close
176
- $stderr.puts " Saved #{i} leaves."
177
-
178
- ### NCBI
179
- unless $opts[:ncbi].nil?
180
- ## Create taxonomy .dmp files
181
- $stderr.puts "Creating NCBI-like files: #{$opts[:ncbi]}"
182
- Dir.mkdir($opts[:ncbi]) unless Dir.exists?($opts[:ncbi]);
183
- # merged.dmp
184
- $stderr.puts " o Creating merged.dmp"
185
- File.open(File.join($opts[:ncbi], 'merged.dmp'), 'w'){}
186
- # names.dmp
187
- $stderr.puts " o Creating names.dmp"
188
- f = File.open(File.join($opts[:ncbi], 'names.dmp'), 'w')
189
- taxo.each_internal do |n|
190
- f.puts [n.id, n.name, "", n.name_type].join("\t|\t")+"\t|"
191
- end
192
- f.close
193
- # nodes.dmp
194
- $stderr.puts " o Creating nodes.dmp"
195
- f = File.open(File.join($opts[:ncbi], 'nodes.dmp'), 'w')
196
- taxo.each_internal do |n|
197
- f.puts ([n.id, n.parent.nil? ? n.id : n.parent.id, n.ncbirank, ""] << Array.new(8,0) << "").join("\t|\t")+"\t|"
198
- end
199
- f.close
200
- end
201
-
202
- ## Taxtastic
203
- unless $opts[:seqinfo].nil?
204
- $stderr.puts "Creating seq-info file: #{$opts[:seqinfo]}"
205
- f = File.open($opts[:seqinfo], 'w')
206
- f.puts "\"seqname\",\"tax_id\",\"group_name\""
207
- taxo.each_leaf { |n| f.puts "\"#{n.name}\",\"#{n.parent.id}\",\"#{n.parent.name}\"" }
208
- f.close
209
- end
210
-
211
- ## Misc
212
- unless $opts[:taxfile].nil?
213
- $stderr.puts "Creating taxonomy file: #{$opts[:taxfile]}"
214
- f = File.open($opts[:taxfile], 'w')
215
- f.puts "tax_id\tparent_id\trank\ttax_name"
216
- taxo.each_internal do |n|
217
- f.puts [n.id, n.parent.nil? ? n.id : n.parent.id, n.rank, n.name].join("\t")
218
- end
219
- f.close
220
- end
221
- rescue => err
222
- $stderr.puts "Exception: #{err}\n\n"
223
- err.backtrace.each { |l| $stderr.puts l + "\n" }
224
- err
225
- end
226
-
227
-