miga-base 0.7.26.0 → 0.7.26.1

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 (276) hide show
  1. checksums.yaml +4 -4
  2. data/lib/miga/version.rb +1 -1
  3. data/utils/FastAAI/00.Libraries/01.SCG_HMMs/Archaea_SCG.hmm +41964 -0
  4. data/utils/FastAAI/00.Libraries/01.SCG_HMMs/Bacteria_SCG.hmm +32439 -0
  5. data/utils/FastAAI/00.Libraries/01.SCG_HMMs/Complete_SCG_DB.hmm +62056 -0
  6. data/utils/FastAAI/FastAAI/FastAAI +1336 -0
  7. data/utils/FastAAI/README.md +84 -0
  8. data/utils/FastAAI/kAAI_v1.0_virus.py +1296 -0
  9. data/utils/enveomics/Docs/recplot2.md +244 -0
  10. data/utils/enveomics/Examples/aai-matrix.bash +66 -0
  11. data/utils/enveomics/Examples/ani-matrix.bash +66 -0
  12. data/utils/enveomics/Examples/essential-phylogeny.bash +105 -0
  13. data/utils/enveomics/Examples/unus-genome-phylogeny.bash +100 -0
  14. data/utils/enveomics/LICENSE.txt +73 -0
  15. data/utils/enveomics/Makefile +52 -0
  16. data/utils/enveomics/Manifest/Tasks/aasubs.json +103 -0
  17. data/utils/enveomics/Manifest/Tasks/blasttab.json +786 -0
  18. data/utils/enveomics/Manifest/Tasks/distances.json +161 -0
  19. data/utils/enveomics/Manifest/Tasks/fasta.json +766 -0
  20. data/utils/enveomics/Manifest/Tasks/fastq.json +243 -0
  21. data/utils/enveomics/Manifest/Tasks/graphics.json +126 -0
  22. data/utils/enveomics/Manifest/Tasks/mapping.json +67 -0
  23. data/utils/enveomics/Manifest/Tasks/ogs.json +382 -0
  24. data/utils/enveomics/Manifest/Tasks/other.json +829 -0
  25. data/utils/enveomics/Manifest/Tasks/remote.json +355 -0
  26. data/utils/enveomics/Manifest/Tasks/sequence-identity.json +501 -0
  27. data/utils/enveomics/Manifest/Tasks/tables.json +308 -0
  28. data/utils/enveomics/Manifest/Tasks/trees.json +68 -0
  29. data/utils/enveomics/Manifest/Tasks/variants.json +111 -0
  30. data/utils/enveomics/Manifest/categories.json +156 -0
  31. data/utils/enveomics/Manifest/examples.json +154 -0
  32. data/utils/enveomics/Manifest/tasks.json +4 -0
  33. data/utils/enveomics/Pipelines/assembly.pbs/CONFIG.mock.bash +69 -0
  34. data/utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl +1 -0
  35. data/utils/enveomics/Pipelines/assembly.pbs/FastA.filterN.pl +1 -0
  36. data/utils/enveomics/Pipelines/assembly.pbs/FastA.length.pl +1 -0
  37. data/utils/enveomics/Pipelines/assembly.pbs/README.md +189 -0
  38. data/utils/enveomics/Pipelines/assembly.pbs/RUNME-2.bash +112 -0
  39. data/utils/enveomics/Pipelines/assembly.pbs/RUNME-3.bash +23 -0
  40. data/utils/enveomics/Pipelines/assembly.pbs/RUNME-4.bash +44 -0
  41. data/utils/enveomics/Pipelines/assembly.pbs/RUNME.bash +50 -0
  42. data/utils/enveomics/Pipelines/assembly.pbs/kSelector.R +37 -0
  43. data/utils/enveomics/Pipelines/assembly.pbs/newbler.pbs +68 -0
  44. data/utils/enveomics/Pipelines/assembly.pbs/newbler_preparator.pl +49 -0
  45. data/utils/enveomics/Pipelines/assembly.pbs/soap.pbs +80 -0
  46. data/utils/enveomics/Pipelines/assembly.pbs/stats.pbs +57 -0
  47. data/utils/enveomics/Pipelines/assembly.pbs/velvet.pbs +63 -0
  48. data/utils/enveomics/Pipelines/blast.pbs/01.pbs.bash +38 -0
  49. data/utils/enveomics/Pipelines/blast.pbs/02.pbs.bash +73 -0
  50. data/utils/enveomics/Pipelines/blast.pbs/03.pbs.bash +21 -0
  51. data/utils/enveomics/Pipelines/blast.pbs/BlastTab.recover_job.pl +72 -0
  52. data/utils/enveomics/Pipelines/blast.pbs/CONFIG.mock.bash +98 -0
  53. data/utils/enveomics/Pipelines/blast.pbs/FastA.split.pl +1 -0
  54. data/utils/enveomics/Pipelines/blast.pbs/README.md +127 -0
  55. data/utils/enveomics/Pipelines/blast.pbs/RUNME.bash +109 -0
  56. data/utils/enveomics/Pipelines/blast.pbs/TASK.check.bash +128 -0
  57. data/utils/enveomics/Pipelines/blast.pbs/TASK.dry.bash +16 -0
  58. data/utils/enveomics/Pipelines/blast.pbs/TASK.eo.bash +22 -0
  59. data/utils/enveomics/Pipelines/blast.pbs/TASK.pause.bash +26 -0
  60. data/utils/enveomics/Pipelines/blast.pbs/TASK.run.bash +89 -0
  61. data/utils/enveomics/Pipelines/blast.pbs/sentinel.pbs.bash +29 -0
  62. data/utils/enveomics/Pipelines/idba.pbs/README.md +49 -0
  63. data/utils/enveomics/Pipelines/idba.pbs/RUNME.bash +95 -0
  64. data/utils/enveomics/Pipelines/idba.pbs/run.pbs +56 -0
  65. data/utils/enveomics/Pipelines/trim.pbs/README.md +54 -0
  66. data/utils/enveomics/Pipelines/trim.pbs/RUNME.bash +70 -0
  67. data/utils/enveomics/Pipelines/trim.pbs/run.pbs +130 -0
  68. data/utils/enveomics/README.md +42 -0
  69. data/utils/enveomics/Scripts/AAsubs.log2ratio.rb +171 -0
  70. data/utils/enveomics/Scripts/Aln.cat.rb +163 -0
  71. data/utils/enveomics/Scripts/Aln.convert.pl +35 -0
  72. data/utils/enveomics/Scripts/AlphaDiversity.pl +152 -0
  73. data/utils/enveomics/Scripts/BedGraph.tad.rb +93 -0
  74. data/utils/enveomics/Scripts/BedGraph.window.rb +71 -0
  75. data/utils/enveomics/Scripts/BlastPairwise.AAsubs.pl +102 -0
  76. data/utils/enveomics/Scripts/BlastTab.addlen.rb +63 -0
  77. data/utils/enveomics/Scripts/BlastTab.advance.bash +48 -0
  78. data/utils/enveomics/Scripts/BlastTab.best_hit_sorted.pl +55 -0
  79. data/utils/enveomics/Scripts/BlastTab.catsbj.pl +104 -0
  80. data/utils/enveomics/Scripts/BlastTab.cogCat.rb +76 -0
  81. data/utils/enveomics/Scripts/BlastTab.filter.pl +47 -0
  82. data/utils/enveomics/Scripts/BlastTab.kegg_pep2path_rest.pl +194 -0
  83. data/utils/enveomics/Scripts/BlastTab.metaxaPrep.pl +104 -0
  84. data/utils/enveomics/Scripts/BlastTab.pairedHits.rb +157 -0
  85. data/utils/enveomics/Scripts/BlastTab.recplot2.R +48 -0
  86. data/utils/enveomics/Scripts/BlastTab.seqdepth.pl +86 -0
  87. data/utils/enveomics/Scripts/BlastTab.seqdepth_ZIP.pl +119 -0
  88. data/utils/enveomics/Scripts/BlastTab.seqdepth_nomedian.pl +86 -0
  89. data/utils/enveomics/Scripts/BlastTab.subsample.pl +47 -0
  90. data/utils/enveomics/Scripts/BlastTab.sumPerHit.pl +114 -0
  91. data/utils/enveomics/Scripts/BlastTab.taxid2taxrank.pl +90 -0
  92. data/utils/enveomics/Scripts/BlastTab.topHits_sorted.rb +101 -0
  93. data/utils/enveomics/Scripts/Chao1.pl +97 -0
  94. data/utils/enveomics/Scripts/CharTable.classify.rb +234 -0
  95. data/utils/enveomics/Scripts/EBIseq2tax.rb +83 -0
  96. data/utils/enveomics/Scripts/FastA.N50.pl +56 -0
  97. data/utils/enveomics/Scripts/FastA.extract.rb +152 -0
  98. data/utils/enveomics/Scripts/FastA.filter.pl +52 -0
  99. data/utils/enveomics/Scripts/FastA.filterLen.pl +28 -0
  100. data/utils/enveomics/Scripts/FastA.filterN.pl +60 -0
  101. data/utils/enveomics/Scripts/FastA.fragment.rb +92 -0
  102. data/utils/enveomics/Scripts/FastA.gc.pl +42 -0
  103. data/utils/enveomics/Scripts/FastA.interpose.pl +93 -0
  104. data/utils/enveomics/Scripts/FastA.length.pl +38 -0
  105. data/utils/enveomics/Scripts/FastA.mask.rb +89 -0
  106. data/utils/enveomics/Scripts/FastA.per_file.pl +36 -0
  107. data/utils/enveomics/Scripts/FastA.qlen.pl +57 -0
  108. data/utils/enveomics/Scripts/FastA.rename.pl +65 -0
  109. data/utils/enveomics/Scripts/FastA.revcom.pl +23 -0
  110. data/utils/enveomics/Scripts/FastA.sample.rb +83 -0
  111. data/utils/enveomics/Scripts/FastA.slider.pl +85 -0
  112. data/utils/enveomics/Scripts/FastA.split.pl +55 -0
  113. data/utils/enveomics/Scripts/FastA.split.rb +79 -0
  114. data/utils/enveomics/Scripts/FastA.subsample.pl +131 -0
  115. data/utils/enveomics/Scripts/FastA.tag.rb +65 -0
  116. data/utils/enveomics/Scripts/FastA.wrap.rb +48 -0
  117. data/utils/enveomics/Scripts/FastQ.filter.pl +54 -0
  118. data/utils/enveomics/Scripts/FastQ.interpose.pl +90 -0
  119. data/utils/enveomics/Scripts/FastQ.offset.pl +90 -0
  120. data/utils/enveomics/Scripts/FastQ.split.pl +53 -0
  121. data/utils/enveomics/Scripts/FastQ.tag.rb +63 -0
  122. data/utils/enveomics/Scripts/FastQ.test-error.rb +81 -0
  123. data/utils/enveomics/Scripts/FastQ.toFastA.awk +24 -0
  124. data/utils/enveomics/Scripts/GFF.catsbj.pl +127 -0
  125. data/utils/enveomics/Scripts/GenBank.add_fields.rb +84 -0
  126. data/utils/enveomics/Scripts/HMM.essential.rb +351 -0
  127. data/utils/enveomics/Scripts/HMM.haai.rb +168 -0
  128. data/utils/enveomics/Scripts/HMMsearch.extractIds.rb +83 -0
  129. data/utils/enveomics/Scripts/JPlace.distances.rb +88 -0
  130. data/utils/enveomics/Scripts/JPlace.to_iToL.rb +320 -0
  131. data/utils/enveomics/Scripts/M5nr.getSequences.rb +81 -0
  132. data/utils/enveomics/Scripts/MeTaxa.distribution.pl +198 -0
  133. data/utils/enveomics/Scripts/MyTaxa.fragsByTax.pl +35 -0
  134. data/utils/enveomics/Scripts/MyTaxa.seq-taxrank.rb +49 -0
  135. data/utils/enveomics/Scripts/NCBIacc2tax.rb +92 -0
  136. data/utils/enveomics/Scripts/Newick.autoprune.R +27 -0
  137. data/utils/enveomics/Scripts/RAxML-EPA.to_iToL.pl +228 -0
  138. data/utils/enveomics/Scripts/RecPlot2.compareIdentities.R +32 -0
  139. data/utils/enveomics/Scripts/RefSeq.download.bash +48 -0
  140. data/utils/enveomics/Scripts/SRA.download.bash +57 -0
  141. data/utils/enveomics/Scripts/TRIBS.plot-test.R +36 -0
  142. data/utils/enveomics/Scripts/TRIBS.test.R +39 -0
  143. data/utils/enveomics/Scripts/Table.barplot.R +31 -0
  144. data/utils/enveomics/Scripts/Table.df2dist.R +30 -0
  145. data/utils/enveomics/Scripts/Table.filter.pl +61 -0
  146. data/utils/enveomics/Scripts/Table.merge.pl +77 -0
  147. data/utils/enveomics/Scripts/Table.replace.rb +69 -0
  148. data/utils/enveomics/Scripts/Table.round.rb +63 -0
  149. data/utils/enveomics/Scripts/Table.split.pl +57 -0
  150. data/utils/enveomics/Scripts/Taxonomy.silva2ncbi.rb +227 -0
  151. data/utils/enveomics/Scripts/VCF.KaKs.rb +147 -0
  152. data/utils/enveomics/Scripts/VCF.SNPs.rb +88 -0
  153. data/utils/enveomics/Scripts/aai.rb +418 -0
  154. data/utils/enveomics/Scripts/ani.rb +362 -0
  155. data/utils/enveomics/Scripts/clust.rand.rb +102 -0
  156. data/utils/enveomics/Scripts/gi2tax.rb +103 -0
  157. data/utils/enveomics/Scripts/in_silico_GA_GI.pl +96 -0
  158. data/utils/enveomics/Scripts/lib/data/dupont_2012_essential.hmm.gz +0 -0
  159. data/utils/enveomics/Scripts/lib/data/lee_2019_essential.hmm.gz +0 -0
  160. data/utils/enveomics/Scripts/lib/enveomics.R +1 -0
  161. data/utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb +24 -0
  162. data/utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb +253 -0
  163. data/utils/enveomics/Scripts/lib/enveomics_rb/og.rb +182 -0
  164. data/utils/enveomics/Scripts/lib/enveomics_rb/remote_data.rb +74 -0
  165. data/utils/enveomics/Scripts/lib/enveomics_rb/seq_range.rb +237 -0
  166. data/utils/enveomics/Scripts/lib/enveomics_rb/stat.rb +30 -0
  167. data/utils/enveomics/Scripts/lib/enveomics_rb/vcf.rb +135 -0
  168. data/utils/enveomics/Scripts/ogs.annotate.rb +88 -0
  169. data/utils/enveomics/Scripts/ogs.core-pan.rb +160 -0
  170. data/utils/enveomics/Scripts/ogs.extract.rb +125 -0
  171. data/utils/enveomics/Scripts/ogs.mcl.rb +186 -0
  172. data/utils/enveomics/Scripts/ogs.rb +104 -0
  173. data/utils/enveomics/Scripts/ogs.stats.rb +131 -0
  174. data/utils/enveomics/Scripts/rbm.rb +146 -0
  175. data/utils/enveomics/Tests/Makefile +10 -0
  176. data/utils/enveomics/Tests/Mgen_M2288.faa +3189 -0
  177. data/utils/enveomics/Tests/Mgen_M2288.fna +8282 -0
  178. data/utils/enveomics/Tests/Mgen_M2321.fna +8288 -0
  179. data/utils/enveomics/Tests/Nequ_Kin4M.faa +2970 -0
  180. data/utils/enveomics/Tests/Xanthomonas_oryzae-PilA.tribs.Rdata +0 -0
  181. data/utils/enveomics/Tests/Xanthomonas_oryzae-PilA.txt +7 -0
  182. data/utils/enveomics/Tests/Xanthomonas_oryzae.aai-mat.tsv +17 -0
  183. data/utils/enveomics/Tests/Xanthomonas_oryzae.aai.tsv +137 -0
  184. data/utils/enveomics/Tests/a_mg.cds-go.blast.tsv +123 -0
  185. data/utils/enveomics/Tests/a_mg.reads-cds.blast.tsv +200 -0
  186. data/utils/enveomics/Tests/a_mg.reads-cds.counts.tsv +55 -0
  187. data/utils/enveomics/Tests/alkB.nwk +1 -0
  188. data/utils/enveomics/Tests/anthrax-cansnp-data.tsv +13 -0
  189. data/utils/enveomics/Tests/anthrax-cansnp-key.tsv +17 -0
  190. data/utils/enveomics/Tests/hiv1.faa +59 -0
  191. data/utils/enveomics/Tests/hiv1.fna +134 -0
  192. data/utils/enveomics/Tests/hiv2.faa +70 -0
  193. data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv +233 -0
  194. data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.lim +1 -0
  195. data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.rec +233 -0
  196. data/utils/enveomics/Tests/phyla_counts.tsv +10 -0
  197. data/utils/enveomics/Tests/primate_lentivirus.ogs +11 -0
  198. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv1.rbm +9 -0
  199. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv2.rbm +8 -0
  200. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-siv.rbm +6 -0
  201. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-hiv2.rbm +9 -0
  202. data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-siv.rbm +6 -0
  203. data/utils/enveomics/Tests/primate_lentivirus.rbm/siv-siv.rbm +6 -0
  204. data/utils/enveomics/build_enveomics_r.bash +45 -0
  205. data/utils/enveomics/enveomics.R/DESCRIPTION +31 -0
  206. data/utils/enveomics/enveomics.R/NAMESPACE +39 -0
  207. data/utils/enveomics/enveomics.R/R/autoprune.R +155 -0
  208. data/utils/enveomics/enveomics.R/R/barplot.R +184 -0
  209. data/utils/enveomics/enveomics.R/R/cliopts.R +135 -0
  210. data/utils/enveomics/enveomics.R/R/df2dist.R +154 -0
  211. data/utils/enveomics/enveomics.R/R/growthcurve.R +331 -0
  212. data/utils/enveomics/enveomics.R/R/recplot.R +354 -0
  213. data/utils/enveomics/enveomics.R/R/recplot2.R +1631 -0
  214. data/utils/enveomics/enveomics.R/R/tribs.R +583 -0
  215. data/utils/enveomics/enveomics.R/R/utils.R +50 -0
  216. data/utils/enveomics/enveomics.R/README.md +80 -0
  217. data/utils/enveomics/enveomics.R/data/growth.curves.rda +0 -0
  218. data/utils/enveomics/enveomics.R/data/phyla.counts.rda +0 -0
  219. data/utils/enveomics/enveomics.R/man/cash-enve.GrowthCurve-method.Rd +17 -0
  220. data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2-method.Rd +17 -0
  221. data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2.Peak-method.Rd +17 -0
  222. data/utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd +25 -0
  223. data/utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd +46 -0
  224. data/utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd +23 -0
  225. data/utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd +47 -0
  226. data/utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd +23 -0
  227. data/utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd +23 -0
  228. data/utils/enveomics/enveomics.R/man/enve.__tribs.Rd +32 -0
  229. data/utils/enveomics/enveomics.R/man/enve.barplot.Rd +91 -0
  230. data/utils/enveomics/enveomics.R/man/enve.cliopts.Rd +57 -0
  231. data/utils/enveomics/enveomics.R/man/enve.col.alpha.Rd +24 -0
  232. data/utils/enveomics/enveomics.R/man/enve.col2alpha.Rd +19 -0
  233. data/utils/enveomics/enveomics.R/man/enve.df2dist.Rd +39 -0
  234. data/utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd +38 -0
  235. data/utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd +40 -0
  236. data/utils/enveomics/enveomics.R/man/enve.growthcurve.Rd +67 -0
  237. data/utils/enveomics/enveomics.R/man/enve.prune.dist.Rd +37 -0
  238. data/utils/enveomics/enveomics.R/man/enve.recplot.Rd +122 -0
  239. data/utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd +45 -0
  240. data/utils/enveomics/enveomics.R/man/enve.recplot2.ANIr.Rd +24 -0
  241. data/utils/enveomics/enveomics.R/man/enve.recplot2.Rd +68 -0
  242. data/utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd +25 -0
  243. data/utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd +21 -0
  244. data/utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd +19 -0
  245. data/utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd +19 -0
  246. data/utils/enveomics/enveomics.R/man/enve.recplot2.compareIdentities.Rd +41 -0
  247. data/utils/enveomics/enveomics.R/man/enve.recplot2.coordinates.Rd +29 -0
  248. data/utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd +18 -0
  249. data/utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd +40 -0
  250. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd +36 -0
  251. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_e.Rd +19 -0
  252. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_m.Rd +19 -0
  253. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__emauto_one.Rd +27 -0
  254. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mow_one.Rd +41 -0
  255. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mower.Rd +17 -0
  256. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.em.Rd +43 -0
  257. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.emauto.Rd +37 -0
  258. data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.mower.Rd +74 -0
  259. data/utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd +59 -0
  260. data/utils/enveomics/enveomics.R/man/enve.recplot2.seqdepth.Rd +27 -0
  261. data/utils/enveomics/enveomics.R/man/enve.recplot2.windowDepthThreshold.Rd +32 -0
  262. data/utils/enveomics/enveomics.R/man/enve.tribs.Rd +59 -0
  263. data/utils/enveomics/enveomics.R/man/enve.tribs.test.Rd +28 -0
  264. data/utils/enveomics/enveomics.R/man/enve.truncate.Rd +27 -0
  265. data/utils/enveomics/enveomics.R/man/growth.curves.Rd +14 -0
  266. data/utils/enveomics/enveomics.R/man/phyla.counts.Rd +13 -0
  267. data/utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd +63 -0
  268. data/utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd +38 -0
  269. data/utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd +38 -0
  270. data/utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd +111 -0
  271. data/utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd +19 -0
  272. data/utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd +19 -0
  273. data/utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd +19 -0
  274. data/utils/enveomics/globals.mk +8 -0
  275. data/utils/enveomics/manifest.json +9 -0
  276. metadata +277 -4
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
5
+ # @license Artistic-2.0
6
+ #
7
+
8
+ require 'optparse'
9
+
10
+ o = {q: false, rep: false}
11
+ ARGV << '-h' if ARGV.size==0
12
+
13
+ OptionParser.new do |opt|
14
+ opt.banner = "
15
+ Samples a random set of sequences from a multi-FastA file.
16
+
17
+ Usage: #{$0} [options]"
18
+ opt.separator ''
19
+ opt.separator 'Mandatory'
20
+ opt.on('-i', '--in PATH', 'Input FastA file.'){ |v| o[:i] = v }
21
+ opt.on('-o', '--out PATH', 'Output FastA file.'){ |v| o[:o] = v }
22
+ opt.on('-f', '--fraction FLOAT',
23
+ 'Fraction of sequences to sample [0-1].',
24
+ 'Mandatory unless -n is provided.'){ |v| o[:f] = v.to_f }
25
+ opt.separator ''
26
+ opt.separator 'Options'
27
+ opt.on('-c', '--number INT',
28
+ 'Number of sequences to sample.',
29
+ 'Mandatory unless -f is provided.'){ |v| o[:n] = v.to_i }
30
+ opt.on('-r', '--replacement','Sample with replacement'){ |v| o[:rep] = v }
31
+ opt.on('-q', '--quiet', 'Run quietly (no STDERR output).'){ o[:q] = true }
32
+ opt.on('-h', '--help', 'Display this screen.') do
33
+ puts opt
34
+ exit
35
+ end
36
+ opt.separator ''
37
+ end.parse!
38
+ abort '-i is mandatory.' if o[:i].nil?
39
+ abort '-o is mandatory.' if o[:o].nil?
40
+ abort '-f or -n is mandatory.' if o[:f].nil? and o[:n].nil?
41
+
42
+ # Functions to parse sequences
43
+ def do_stuff(id, sq)
44
+ return if id.nil? or sq.empty?
45
+ @n_in += 1
46
+ sq.gsub!(/[^A-Za-z]/, '')
47
+ i = 0
48
+ @coll.extract(id, sq).each do |new_sq|
49
+ @ofh.puts ">#{id}:#{i += 1}"
50
+ @ofh.puts new_sq
51
+ @n_out += 1
52
+ end
53
+ end
54
+
55
+ # Parse sequences
56
+ $stderr.puts 'Parsing sequences' unless o[:q]
57
+ seq = []
58
+ File.open(o[:i], 'r') do |fh|
59
+ id = nil
60
+ sq = ''
61
+ fh.each do |ln|
62
+ next if ln =~ /^;/
63
+ if ln =~ /^>(.+)/
64
+ seq << [id, sq] unless id.nil?
65
+ id = $1
66
+ sq = ''
67
+ else
68
+ sq << ln
69
+ end
70
+ end
71
+ seq << [id, sq] unless id.nil?
72
+ end
73
+ $stderr.puts " Input sequences: #{seq.size}"
74
+ o[:n] ||= (seq.size * o[:f]).round
75
+ seq_o = o[:rep] ? o[:n].times.map{ seq.sample } : seq.sample(o[:n])
76
+ File.open(o[:o], 'w') do |fh|
77
+ seq_o.each do |i|
78
+ fh.puts ">#{i[0]}"
79
+ fh.puts i[1]
80
+ end
81
+ end
82
+ $stderr.puts " Output sequences: #{seq_o.size}"
83
+
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env perl
2
+ #
3
+ # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
+ # @update Oct-07-2015
5
+ # @license artistic license 2.0
6
+ #
7
+
8
+ use strict;
9
+ use List::Util qw/min/;
10
+
11
+ push @ARGV, undef unless $#ARGV%2;
12
+ my %params = @ARGV;
13
+
14
+ die "
15
+ Usage:
16
+ $0 [options] < in.fa > out.fa
17
+
18
+ in.fa Input file in FastA format.
19
+ out.fa Output file in FastA format.
20
+
21
+ Options:
22
+ -seq <str> Input file. If not set, it is expected to be in STDIN.
23
+ -out <str> Output file. If not set, it is sent to STDOUT.
24
+ -win <int> Window size. By default: 18.
25
+ -step <int> Step size. By default: 1.
26
+ -lerr <int> Expected error in chunks length. By default: 2.
27
+ -comm <1|0> Generate FastA comments (leaded by semi-colon) to separate
28
+ input sequences. By default: 0.
29
+ -short <1|0> Use chunks shorter than the window size 'as is'. By
30
+ default: 0 (discard those chunks).
31
+ -h Displays this help message and exits.
32
+
33
+ " if exists $params{'--help'} or
34
+ exists $params{'-h'} or exists $params{'-help'};
35
+
36
+ if($params{'-seq'}){
37
+ open SEQ, "<", $params{'-seq'} or
38
+ die "I can not open '".$params{'-seq'}."': $!\n";
39
+ }else{
40
+ *SEQ = *STDIN;
41
+ print STDERR "Please input your sequence, and hit ".
42
+ "Intro and Ctrl+D when you are done:\n";
43
+ }
44
+
45
+ if($params{'-out'}){
46
+ open OUT, ">", $params{'-out'} or
47
+ die "I can not open '".$params{'-out'}."': $!\n";
48
+ }else{
49
+ *OUT = *STDOUT;
50
+ }
51
+
52
+ $params{'-win'} ||= 18;
53
+ $params{'-step'} ||= 1;
54
+ $params{'-lerr'} ||= 2;
55
+ $params{'-comm'} ||= 0;
56
+ $params{'-short'} ||= 0;
57
+
58
+ my $win = $params{'-win'}+0;
59
+ my $stp = $params{'-step'}+0;
60
+ my $lerr = $params{'-lerr'}+0;
61
+ my $buffer = "";
62
+ my $i = 0;
63
+ while(<SEQ>){
64
+ next if /^;/;
65
+ chomp;
66
+ if(m/^>/){
67
+ print OUT ">", ++$i, "\n", $buffer, "\n" if
68
+ $params{'-short'}==1 and $buffer;
69
+ $buffer = "";
70
+ print OUT ";--- INPUT: $_ ---\n" unless $params{'-comm'}==0;
71
+ next;
72
+ }
73
+ s/[^A-Za-z]//g;
74
+ $buffer.= $_;
75
+ while(length($buffer) >= $win){
76
+ print OUT ">", ++$i, "\n",
77
+ substr($buffer, 0, $win+int(rand($lerr*2)-$lerr)), "\n";
78
+ $buffer = substr $buffer, $stp;
79
+ }
80
+ }
81
+ close SEQ if $params{'-seq'};
82
+ close OUT if $params{'-out'};
83
+ print STDERR "$i chunks produced.\n";
84
+
85
+
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env perl
2
+ #
3
+ # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
+ # @update Oct-13-2015
5
+ # @license artistic license 2.0
6
+ #
7
+
8
+ use warnings;
9
+ use strict;
10
+ use Symbol;
11
+
12
+ my ($file, $base, $outN) = @ARGV;
13
+
14
+ $outN ||= 12;
15
+ ($file and $base) or die "
16
+ Usage
17
+ $0 in_file.fa out_base[ no_files]
18
+
19
+ in_file.fa Input file in FastA format.
20
+ out_base Prefix for the name of the output files. It will
21
+ be appended with .<i>.fa, where <i> is a consecutive
22
+ number starting in 1.
23
+ no_files Number of files to generate. By default: 12.
24
+
25
+ ";
26
+
27
+
28
+ my @outSym = ();
29
+ for my $i (1 .. $outN){
30
+ $outSym[$i-1] = gensym;
31
+ open $outSym[$i-1], ">", "$base.$i.fa" or
32
+ die "I can not create the file: $base.$i.fa: $!\n";
33
+ }
34
+
35
+
36
+ my($i, $seq) = (-1, '');
37
+ open FILE, "<", $file or die "I can not read the file: $file: $!\n";
38
+ while(my $ln=<FILE>){
39
+ next if $ln=~/^;/;
40
+ if($ln =~ m/^>/){
41
+ print { $outSym[$i % $outN] } $seq if $seq;
42
+ $i++;
43
+ $seq = '';
44
+ }
45
+ $seq.=$ln;
46
+ }
47
+ print { $outSym[$i % $outN] } $seq if $seq;
48
+ close FILE;
49
+
50
+ for(my $j=0; $j<$outN; $j++){
51
+ close $outSym[$j];
52
+ }
53
+
54
+ print STDERR "Sequences: ".($i+1)."\nFiles: $outN\n";
55
+
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
+ # @license Artistic-2.0
5
+ #
6
+
7
+ require "optparse"
8
+
9
+ o = {q:false, n:12, lett:false, dc:false, z:false, out:"%s.%s.fa"}
10
+ ARGV << "-h" if ARGV.size==0
11
+
12
+ OptionParser.new do |opt|
13
+ opt.banner = "
14
+ Evenly splits a multi-FastA file into multiple multi-FastA files.
15
+
16
+ Usage: #{$0} [options]"
17
+ opt.separator ""
18
+ opt.separator "Mandatory"
19
+ opt.on("-i", "--input PATH", "Input FastA file."){ |v| o[:i] = v}
20
+ opt.on("-p", "--prefix PATH", "Prefix of output FastA files."){ |v| o[:p] = v}
21
+ opt.separator ""
22
+ opt.separator "Options"
23
+ opt.on("-n", "--number INT",
24
+ "Number of output files to produce. By default: #{o[:n]}."
25
+ ){ |v| o[:n] = v.to_i }
26
+ opt.on("-z", "--zero-padded",
27
+ "Use zero-padded numbers as output index."){ o[:lett]=false; o[:z]=true }
28
+ opt.on("-l", "--lowercase-letters",
29
+ "Use lowercase letters as output index."){ o[:lett]=true ; o[:dc]=true }
30
+ opt.on("-u", "--uppercase-letters",
31
+ "Use uppercase letters as output index."){ o[:lett]=true }
32
+ opt.on("-o", "--out STR",
33
+ "Format of output filenames, where %s are replaced by prefix and index.",
34
+ "By default: #{o[:out]}."){ |v| o[:out] = v }
35
+ opt.on("-q", "--quiet", "Run quietly (no STDERR output)."){ o[:q] = TRUE }
36
+ opt.on("-h", "--help", "Display this screen.") do
37
+ puts opt
38
+ exit
39
+ end
40
+ opt.separator ""
41
+ end.parse!
42
+ abort "-i is mandatory." if o[:i].nil?
43
+ abort "-p is mandatory." if o[:p].nil?
44
+
45
+ ofh = []
46
+ idx = if o[:lett]
47
+ k = Math::log(o[:n], 26).ceil
48
+ r = o[:dc] ? ["a","z"] : ["A","Z"]
49
+ ((r[0]*k) .. (r[1]*k)).first(o[:n])
50
+ elsif o[:z]
51
+ k = Math::log(o[:n], 10).ceil
52
+ (1 .. o[:n]).map{ |i| "%0#{k}d" % i }
53
+ else
54
+ (1 .. o[:n]).map{ |i| i.to_s }
55
+ end
56
+ idx.each do |i|
57
+ fn = o[:out] % [o[:p], i]
58
+ ofh << File.open(fn, "w")
59
+ end
60
+
61
+ i = -1
62
+ seq = ""
63
+ File.open(o[:i], "r") do |ifh|
64
+ ifh.each_line do |ln|
65
+ next if ln =~ /^;/
66
+ if ln =~ /^>/
67
+ ofh[i % o[:n]].print seq
68
+ i += 1
69
+ seq = ""
70
+ end
71
+ seq << ln
72
+ end
73
+ ofh[i % o[:n]].print seq
74
+ end
75
+
76
+ ofh.each{ |i| i.close }
77
+
78
+ $stderr.puts "Sequences: #{i+1}.", "Files: #{o[:n]}." unless o[:q]
79
+
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/env perl
2
+ #
3
+ # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
+ # @update Oct-07-2015
5
+ # @license artistic license 2.0
6
+ #
7
+
8
+ use strict;
9
+ use warnings;
10
+ use List::Util qw| max min sum |;
11
+ use Getopt::Std;
12
+ use Symbol;
13
+
14
+ my %o;
15
+ getopts('f:r:o:Fzhq', \%o);
16
+
17
+ my $HELP = <<HELP
18
+
19
+ Description:
20
+ Subsamples a set of sequences.
21
+
22
+ Usage:
23
+ # IMPORTANT: options *MUST* precede the input file(s).
24
+ $0 [options] input.fa...
25
+
26
+ Where,
27
+ input.fa... : File (or files) containing the sequences.
28
+
29
+ Options:
30
+ -f <float> : Fraction of the library to be sampled (as percentage). It can
31
+ include several values (separated by comma), as well as ranges
32
+ of values in the form 'from-to/by'. For example, the -f value
33
+ 1-5/1,10-50/10,75,99 will produce 12 subsamples with expected
34
+ fractions 1%, 2%, 3%, 4%, 5%, 10%, 20%, 30%, 40%, 50%, 75%,
35
+ and 99%. By default: 10.
36
+ -r <int> : Number of replicates per fraction. By default: 1.
37
+ -o <str> : Prefix of the output files to be created. The output files
38
+ will have a suffix of the form '.fraction-replicate.fa', where
39
+ 'fraction' is the percentage sampled and 'replicate' is an
40
+ increasing integer for replicates of the same fraction. By
41
+ default: Path to the input file.
42
+ -F : Force overwriting output file(s).
43
+ -z : Include leading zeroes in the numeric parts of the output
44
+ files (e.g., file.002.50-01.fa instead of file.2.50-1.fa), so
45
+ that alphabetic sorting of files reflects the sampled
46
+ fraction.
47
+ -q : Run quietly.
48
+ -h : Displays this message and exits.
49
+
50
+ HELP
51
+ ;
52
+
53
+ sub thousands($){ my $i=shift; $i=~s/(\d{1,3}?)(?=(\d{3})+$)/$1,/g; $i }
54
+ my @in = @ARGV;
55
+ $o{f} ||= '10';
56
+ $o{r} ||= 1;
57
+ $o{o} ||= $in[0];
58
+ $#in>=0 or die $HELP;
59
+
60
+ my $samples = {};
61
+ my $sample_no=0;
62
+ my $format = ($o{z} ? "%s\.%08s\-%02i.fa" : "%s.%s-%s.fa");
63
+ for my $value (split /,/, $o{f}){
64
+ my $from = $value;
65
+ my $to = $value;
66
+ my $by = 1;
67
+ if($value =~ m/^([^-]+)-([^\/]+)\/(.+)$/){
68
+ $from = $1;
69
+ $to = $2;
70
+ $by = $3;
71
+ ($from,$to) = ($to,$from) if $from > $to;
72
+ }
73
+ for(my $p=$from; $p<=$to; $p+=$by){
74
+ die "Percentage out of the [0,100] range: $p\n" if $p>100 or $p<0;
75
+ $samples->{$p} ||= [];
76
+ for (1 .. $o{r}){
77
+ my $r = $#{$samples->{$p}}+2;
78
+ my $file = sprintf $format, $o{o}, sprintf("%.4f", $p), $r;
79
+ die "File exists: $file.\n" if !$o{F} and -e $file;
80
+ $samples->{$p}->[$r-1] = [$p, 0, gensym(), $file];
81
+ open $samples->{$p}->[$r-1]->[2], ">", $file;
82
+ $sample_no++;
83
+ }
84
+ }
85
+ }
86
+ print STDERR "Open samples: $sample_no.\n" unless $o{q};
87
+
88
+ my $sprob = ($o{s} || '10');
89
+
90
+ die $HELP unless $sprob and $#in>=0;
91
+ $o{'h'} and die $HELP;
92
+
93
+ my $N = 0;
94
+ my @ck = qw(*... **.. ***. .*** ..** ...*);
95
+ SAMPLING: {
96
+ local $/ = "\n>";
97
+ print STDERR "Sampling sequences.\n" unless $o{q};
98
+ FILE: for my $in (@in){
99
+ open IN, '<', $in or die "I can not open $in: $!\n";
100
+ SEQ: while(my $seq = <IN>){
101
+ $N++;
102
+ $seq =~ s/^>?/>/;
103
+ $seq =~ s/>$//;
104
+ $seq =~ s/^;.*//gm;
105
+ PERC: for my $sperc (values %$samples){
106
+ SAMPLE: for my $sample (@$sperc){
107
+ if($sample->[0] > rand 100){
108
+ $sample->[1]++;
109
+ print { qualify_to_ref $sample->[2] } $seq;
110
+ }
111
+ }
112
+ }
113
+ print STDERR " [".$ck[($N/5000)%@ck]."] ".&thousands($N).
114
+ " seqs. \r" unless $o{q} or $N%5000;
115
+ }
116
+ close IN;
117
+ }
118
+ }
119
+
120
+ print STDERR " Total sequences: ".&thousands($N).". \n" unless $o{q};
121
+ for my $p (values %$samples){
122
+ for my $s (@$p){
123
+ printf STDERR "
124
+ Sample file: %s
125
+ Sampled sequences: %d
126
+ Sampled fraction: %.2f%%\n",
127
+ $s->[3], $s->[1], $s->[1]*100/$N unless $o{q};
128
+ close $s->[2];
129
+ }
130
+ }
131
+
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # @author Luis M. Rodriguez-R
4
+ # @license artistic license 2.0
5
+
6
+ require 'optparse'
7
+
8
+ o = {q: false, p: '', s: '', d: false}
9
+ ARGV << '-h' if ARGV.size==0
10
+ OptionParser.new do |opts|
11
+ opts.banner = "
12
+ Generates easy-to-parse tagged reads from FastA files.
13
+
14
+ Usage: #{$0} [options]"
15
+ opts.separator ''
16
+ opts.separator 'Mandatory'
17
+ opts.on('-i', '--in FILE',
18
+ 'Path to the FastA file containing the sequences.'){ |v| o[:in] = v }
19
+ opts.on('-o', '--out FILE',
20
+ 'Path to the FastA to create.'){ |v| o[:out] = v }
21
+ opts.separator ''
22
+ opts.separator 'ID options'
23
+ opts.on('-p', '--prefix STR', 'Prefix to use in all IDs.'){ |v| o[:p] = v }
24
+ opts.on('-s', '--suffix STR', 'Suffix to use in all IDs.'){ |v| o[:s] = v }
25
+ opts.on('-d', '--defline',
26
+ 'Keep the original defline after a space.'){ o[:d] = true }
27
+ opts.on('-l', '--list FILE',
28
+ 'Reads a list of IDS.'){ |v| o[:l] = v }
29
+ opts.separator ''
30
+ opts.separator 'Other Options'
31
+ opts.on('-q', '--quiet', 'Run quietly (no STDERR output)'){ o[:q] = true }
32
+ opts.on('-h', '--help', 'Display this screen') do
33
+ puts opts
34
+ exit
35
+ end
36
+ opts.separator ''
37
+ end.parse!
38
+ abort '-i is mandatory' if o[:in].nil?
39
+ abort '-o is mandatory' if o[:out].nil?
40
+
41
+ begin
42
+ list = o[:l].nil? ? nil :
43
+ File.readlines(o[:l]).map{ |i| i.chomp.gsub(/^>/, '') }
44
+ ofh = File.open(o[:out], 'w')
45
+ i = 0
46
+ File.open(o[:in], 'r') do |ifh|
47
+ ifh.each do |ln|
48
+ ln.chomp!
49
+ next if ln =~ /^;/
50
+ unless /^>/.match(ln).nil?
51
+ i += 1
52
+ new_id = o[:l].nil? ? i : list.shift
53
+ ofh.puts ">#{o[:p]}#{new_id}#{o[:s]}#{o[:d]?" #{ln[1, ln.size-1]}":''}"
54
+ else
55
+ ofh.puts ln
56
+ end
57
+ end
58
+ end
59
+ ofh.close
60
+ rescue => err
61
+ $stderr.puts "Exception: #{err}\n\n"
62
+ err.backtrace.each { |l| $stderr.puts l + "\n" }
63
+ err
64
+ end
65
+