miga-base 0.4.3.0 → 0.5.0.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/miga/cli.rb +43 -223
- data/lib/miga/cli/action/add.rb +91 -62
- data/lib/miga/cli/action/classify_wf.rb +97 -0
- data/lib/miga/cli/action/daemon.rb +14 -10
- data/lib/miga/cli/action/derep_wf.rb +95 -0
- data/lib/miga/cli/action/doctor.rb +83 -55
- data/lib/miga/cli/action/get.rb +68 -52
- data/lib/miga/cli/action/get_db.rb +206 -0
- data/lib/miga/cli/action/index_wf.rb +31 -0
- data/lib/miga/cli/action/init.rb +115 -190
- data/lib/miga/cli/action/init/daemon_helper.rb +124 -0
- data/lib/miga/cli/action/ls.rb +20 -11
- data/lib/miga/cli/action/ncbi_get.rb +199 -157
- data/lib/miga/cli/action/preproc_wf.rb +46 -0
- data/lib/miga/cli/action/quality_wf.rb +45 -0
- data/lib/miga/cli/action/stats.rb +147 -99
- data/lib/miga/cli/action/summary.rb +10 -4
- data/lib/miga/cli/action/tax_dist.rb +61 -46
- data/lib/miga/cli/action/tax_test.rb +46 -39
- data/lib/miga/cli/action/wf.rb +178 -0
- data/lib/miga/cli/base.rb +11 -0
- data/lib/miga/cli/objects_helper.rb +88 -0
- data/lib/miga/cli/opt_helper.rb +160 -0
- data/lib/miga/daemon.rb +7 -4
- data/lib/miga/dataset/base.rb +5 -5
- data/lib/miga/project/base.rb +4 -4
- data/lib/miga/project/result.rb +2 -1
- data/lib/miga/remote_dataset/base.rb +5 -5
- data/lib/miga/remote_dataset/download.rb +1 -1
- data/lib/miga/version.rb +3 -3
- data/scripts/cds.bash +3 -1
- data/scripts/essential_genes.bash +1 -0
- data/scripts/stats.bash +1 -1
- data/scripts/trimmed_fasta.bash +5 -3
- data/utils/distance/runner.rb +3 -0
- data/utils/distance/temporal.rb +10 -1
- data/utils/enveomics/Manifest/Tasks/fasta.json +5 -0
- data/utils/enveomics/Manifest/Tasks/sequence-identity.json +7 -0
- data/utils/enveomics/Scripts/BlastTab.addlen.rb +33 -31
- data/utils/enveomics/Scripts/FastA.tag.rb +42 -41
- data/utils/enveomics/Scripts/HMM.essential.rb +85 -55
- data/utils/enveomics/Scripts/HMM.haai.rb +29 -20
- data/utils/enveomics/Scripts/SRA.download.bash +1 -1
- data/utils/enveomics/Scripts/aai.rb +163 -128
- data/utils/enveomics/build_enveomics_r.bash +11 -10
- data/utils/enveomics/enveomics.R/DESCRIPTION +3 -2
- data/utils/enveomics/enveomics.R/R/autoprune.R +141 -107
- data/utils/enveomics/enveomics.R/R/barplot.R +105 -86
- data/utils/enveomics/enveomics.R/R/cliopts.R +131 -115
- data/utils/enveomics/enveomics.R/R/df2dist.R +144 -106
- data/utils/enveomics/enveomics.R/R/growthcurve.R +201 -133
- data/utils/enveomics/enveomics.R/R/recplot.R +350 -315
- data/utils/enveomics/enveomics.R/R/recplot2.R +1334 -914
- data/utils/enveomics/enveomics.R/R/tribs.R +521 -361
- data/utils/enveomics/enveomics.R/R/utils.R +31 -15
- data/utils/enveomics/enveomics.R/README.md +7 -0
- data/utils/enveomics/enveomics.R/man/cash-enve.GrowthCurve-method.Rd +17 -0
- data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2-method.Rd +17 -0
- data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2.Peak-method.Rd +17 -0
- data/utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd +16 -21
- data/utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd +31 -28
- data/utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd +23 -19
- data/utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd +36 -26
- data/utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd +23 -24
- data/utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd +23 -24
- data/utils/enveomics/enveomics.R/man/enve.__tribs.Rd +32 -33
- data/utils/enveomics/enveomics.R/man/enve.barplot.Rd +91 -64
- data/utils/enveomics/enveomics.R/man/enve.cliopts.Rd +57 -37
- data/utils/enveomics/enveomics.R/man/enve.col.alpha.Rd +24 -19
- data/utils/enveomics/enveomics.R/man/enve.col2alpha.Rd +19 -18
- data/utils/enveomics/enveomics.R/man/enve.df2dist.Rd +39 -26
- data/utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd +38 -25
- data/utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd +40 -26
- data/utils/enveomics/enveomics.R/man/enve.growthcurve.Rd +67 -49
- data/utils/enveomics/enveomics.R/man/enve.prune.dist.Rd +37 -28
- data/utils/enveomics/enveomics.R/man/enve.recplot.Rd +122 -97
- data/utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd +35 -31
- data/utils/enveomics/enveomics.R/man/enve.recplot2.ANIr.Rd +24 -23
- data/utils/enveomics/enveomics.R/man/enve.recplot2.Rd +68 -51
- data/utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd +25 -24
- data/utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd +21 -22
- data/utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd +19 -20
- data/utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd +19 -18
- data/utils/enveomics/enveomics.R/man/enve.recplot2.compareIdentities.Rd +41 -32
- data/utils/enveomics/enveomics.R/man/enve.recplot2.coordinates.Rd +29 -24
- data/utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd +18 -18
- data/utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd +40 -34
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd +36 -24
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_e.Rd +19 -20
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_m.Rd +19 -20
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__emauto_one.Rd +27 -29
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mow_one.Rd +41 -42
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mower.Rd +17 -18
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.em.Rd +43 -33
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.emauto.Rd +36 -28
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.mower.Rd +74 -56
- data/utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd +44 -31
- data/utils/enveomics/enveomics.R/man/enve.recplot2.seqdepth.Rd +27 -22
- data/utils/enveomics/enveomics.R/man/enve.recplot2.windowDepthThreshold.Rd +32 -26
- data/utils/enveomics/enveomics.R/man/enve.tribs.Rd +59 -44
- data/utils/enveomics/enveomics.R/man/enve.tribs.test.Rd +28 -21
- data/utils/enveomics/enveomics.R/man/enve.truncate.Rd +27 -22
- data/utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd +63 -43
- data/utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd +38 -29
- data/utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd +38 -30
- data/utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd +111 -83
- data/utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd +19 -18
- data/utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd +19 -18
- data/utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd +19 -18
- data/utils/find-medoid.R +3 -2
- data/utils/representatives.rb +5 -3
- data/utils/subclade/pipeline.rb +22 -11
- data/utils/subclade/runner.rb +5 -1
- data/utils/subclades-compile.rb +1 -1
- data/utils/subclades.R +9 -3
- metadata +15 -4
- data/utils/enveomics/enveomics.R/man/enveomics.R-package.Rd +0 -15
- data/utils/enveomics/enveomics.R/man/z$-methods.Rd +0 -26
@@ -1,83 +1,111 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
\
|
4
|
-
\
|
5
|
-
\
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
\item
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
}
|
73
|
-
|
74
|
-
\
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
\
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
1
|
+
% Generated by roxygen2: do not edit by hand
|
2
|
+
% Please edit documentation in R/recplot2.R
|
3
|
+
\name{plot.enve.RecPlot2}
|
4
|
+
\alias{plot.enve.RecPlot2}
|
5
|
+
\title{Enveomics: Recruitment Plot (2)}
|
6
|
+
\usage{
|
7
|
+
\method{plot}{enve.RecPlot2}(x, layout = matrix(c(5, 5, 2, 1, 4, 3), nrow
|
8
|
+
= 2), panel.fun = list(), widths = c(1, 7, 2), heights = c(1, 2),
|
9
|
+
palette = grey((100:0)/100), underlay.group = TRUE,
|
10
|
+
peaks.col = "darkred", use.peaks, id.lim = range(x$id.breaks),
|
11
|
+
pos.lim = range(x$pos.breaks), pos.units = c("Mbp", "Kbp", "bp"),
|
12
|
+
mar = list(`1` = c(5, 4, 1, 1) + 0.1, `2` = c(ifelse(any(layout == 1),
|
13
|
+
1, 5), 4, 4, 1) + 0.1, `3` = c(5, ifelse(any(layout == 1), 1, 4), 1, 2) +
|
14
|
+
0.1, `4` = c(ifelse(any(layout == 1), 1, 5), ifelse(any(layout == 2), 1,
|
15
|
+
4), 4, 2) + 0.1, `5` = c(5, 3, 4, 1) + 0.1, `6` = c(5, 4, 4, 2) + 0.1),
|
16
|
+
pos.splines = 0, id.splines = 1/2,
|
17
|
+
in.lwd = ifelse(is.null(pos.splines) || pos.splines > 0, 1/2, 2),
|
18
|
+
out.lwd = ifelse(is.null(pos.splines) || pos.splines > 0, 1/2, 2),
|
19
|
+
id.lwd = ifelse(is.null(id.splines) || id.splines > 0, 1/2, 2),
|
20
|
+
in.col = "darkblue", out.col = "lightblue", id.col = "black",
|
21
|
+
breaks.col = "#AAAAAA40", peaks.opts = list(), ...)
|
22
|
+
}
|
23
|
+
\arguments{
|
24
|
+
\item{x}{\code{\link{enve.RecPlot2}} object to plot.}
|
25
|
+
|
26
|
+
\item{layout}{Matrix indicating the position of the different panels in the layout,
|
27
|
+
where:
|
28
|
+
\itemize{
|
29
|
+
\item 0: Empty space
|
30
|
+
\item 1: Counts matrix
|
31
|
+
\item 2: position histogram (sequencing depth)
|
32
|
+
\item 3: identity histogram
|
33
|
+
\item 4: Populations histogram (histogram of sequencing depths)
|
34
|
+
\item 5: Color scale for the counts matrix (vertical)
|
35
|
+
\item 6: Color scale of the counts matrix (horizontal)
|
36
|
+
}
|
37
|
+
Only panels indicated here will be plotted. To plot only one panel
|
38
|
+
simply set this to the number of the panel you want to plot.}
|
39
|
+
|
40
|
+
\item{panel.fun}{List of functions to be executed after drawing each panel. Use the
|
41
|
+
indices in \code{layout} (as characters) as keys. Functions for indices
|
42
|
+
missing in \code{layout} are ignored. For example, to add a vertical line
|
43
|
+
at the 3Mbp mark in both the position histogram and the counts matrix:
|
44
|
+
\code{list('1'=function() abline(v=3), '2'=function() abline(v=3))}.
|
45
|
+
Note that the X-axis in both panels is in Mbp by default. To change
|
46
|
+
this behavior, set \code{pos.units} accordingly.}
|
47
|
+
|
48
|
+
\item{widths}{Relative widths of the columns of \code{layout}.}
|
49
|
+
|
50
|
+
\item{heights}{Relative heights of the rows of \code{layout}.}
|
51
|
+
|
52
|
+
\item{palette}{Colors to be used to represent the counts matrix, sorted from no hits
|
53
|
+
to the maximum sequencing depth.}
|
54
|
+
|
55
|
+
\item{underlay.group}{If TRUE, it indicates the in-group and out-group areas couloured based
|
56
|
+
on \code{in.col} and \code{out.col}. Requires support for semi-transparency.}
|
57
|
+
|
58
|
+
\item{peaks.col}{If not \code{NA}, it attempts to represent peaks in the population histogram
|
59
|
+
in the specified color. Set to \code{NA} to avoid peak-finding.}
|
60
|
+
|
61
|
+
\item{use.peaks}{A list of \code{\link{enve.RecPlot2.Peak}} objects, as returned by
|
62
|
+
\code{\link{enve.recplot2.findPeaks}}. If passed, \code{peaks.opts} is ignored.}
|
63
|
+
|
64
|
+
\item{id.lim}{Limits of identities to represent.}
|
65
|
+
|
66
|
+
\item{pos.lim}{Limits of positions to represent (in bp, regardless of \code{pos.units}).}
|
67
|
+
|
68
|
+
\item{pos.units}{Units in which the positions should be represented (powers of 1,000
|
69
|
+
base pairs).}
|
70
|
+
|
71
|
+
\item{mar}{Margins of the panels as a list, with the character representation of
|
72
|
+
the number of the panel as index (see \code{layout}).}
|
73
|
+
|
74
|
+
\item{pos.splines}{Smoothing parameter for the splines in the position histogram. Zero
|
75
|
+
(0) for no splines. Use \code{NULL} to automatically detect by leave-one-out
|
76
|
+
cross-validation.}
|
77
|
+
|
78
|
+
\item{id.splines}{Smoothing parameter for the splines in the identity histogram. Zero
|
79
|
+
(0) for no splines. Use \code{NULL} to automatically detect by leave-one-out
|
80
|
+
cross-validation.}
|
81
|
+
|
82
|
+
\item{in.lwd}{Line width for the sequencing depth of in-group matches.}
|
83
|
+
|
84
|
+
\item{out.lwd}{Line width for the sequencing depth of out-group matches.}
|
85
|
+
|
86
|
+
\item{id.lwd}{Line width for the identity histogram.}
|
87
|
+
|
88
|
+
\item{in.col}{Color associated to in-group matches.}
|
89
|
+
|
90
|
+
\item{out.col}{Color associated to out-group matches.}
|
91
|
+
|
92
|
+
\item{id.col}{Color for the identity histogram.}
|
93
|
+
|
94
|
+
\item{breaks.col}{Color of the vertical lines indicating sequence breaks.}
|
95
|
+
|
96
|
+
\item{peaks.opts}{Options passed to \code{\link{enve.recplot2.findPeaks}},
|
97
|
+
if \code{peaks.col} is not \code{NA}.}
|
98
|
+
|
99
|
+
\item{...}{Any other graphic parameters (currently ignored).}
|
100
|
+
}
|
101
|
+
\value{
|
102
|
+
Returns a list of \code{\link{enve.RecPlot2.Peak}} objects (see
|
103
|
+
\code{\link{enve.recplot2.findPeaks}}). If \code{peaks.col=NA} or
|
104
|
+
\code{layout} doesn't include 4, returns \code{NA}.
|
105
|
+
}
|
106
|
+
\description{
|
107
|
+
Plots an \code{\link{enve.RecPlot2}} object.
|
108
|
+
}
|
109
|
+
\author{
|
110
|
+
Luis M. Rodriguez-R [aut, cre]
|
111
|
+
}
|
@@ -1,18 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
\
|
4
|
-
\
|
5
|
-
\
|
6
|
-
\
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
1
|
+
% Generated by roxygen2: do not edit by hand
|
2
|
+
% Please edit documentation in R/growthcurve.R
|
3
|
+
\name{summary.enve.GrowthCurve}
|
4
|
+
\alias{summary.enve.GrowthCurve}
|
5
|
+
\title{Enveomics: Summary of Growth Curve}
|
6
|
+
\usage{
|
7
|
+
\method{summary}{enve.GrowthCurve}(object, ...)
|
8
|
+
}
|
9
|
+
\arguments{
|
10
|
+
\item{object}{An \code{\link{enve.GrowthCurve}} object.}
|
11
|
+
|
12
|
+
\item{...}{No additional parameters are currently supported.}
|
13
|
+
}
|
14
|
+
\description{
|
15
|
+
Summary of an \code{\link{enve.GrowthCurve}} object.
|
16
|
+
}
|
17
|
+
\author{
|
18
|
+
Luis M. Rodriguez-R [aut, cre]
|
19
|
+
}
|
@@ -1,18 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
\
|
4
|
-
\
|
5
|
-
\
|
6
|
-
\
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
1
|
+
% Generated by roxygen2: do not edit by hand
|
2
|
+
% Please edit documentation in R/tribs.R
|
3
|
+
\name{summary.enve.TRIBS}
|
4
|
+
\alias{summary.enve.TRIBS}
|
5
|
+
\title{Enveomics: TRIBS Summary}
|
6
|
+
\usage{
|
7
|
+
\method{summary}{enve.TRIBS}(object, ...)
|
8
|
+
}
|
9
|
+
\arguments{
|
10
|
+
\item{object}{\code{\link{enve.TRIBS}} object.}
|
11
|
+
|
12
|
+
\item{...}{No additional parameters are currently supported.}
|
13
|
+
}
|
14
|
+
\description{
|
15
|
+
Summary of an \code{\link{enve.TRIBS}} object.
|
16
|
+
}
|
17
|
+
\author{
|
18
|
+
Luis M. Rodriguez-R [aut, cre]
|
19
|
+
}
|
@@ -1,18 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
\
|
4
|
-
\
|
5
|
-
\
|
6
|
-
\
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
1
|
+
% Generated by roxygen2: do not edit by hand
|
2
|
+
% Please edit documentation in R/tribs.R
|
3
|
+
\name{summary.enve.TRIBStest}
|
4
|
+
\alias{summary.enve.TRIBStest}
|
5
|
+
\title{Enveomics: TRIBS Summary Test}
|
6
|
+
\usage{
|
7
|
+
\method{summary}{enve.TRIBStest}(object, ...)
|
8
|
+
}
|
9
|
+
\arguments{
|
10
|
+
\item{object}{\code{\link{enve.TRIBStest}} object.}
|
11
|
+
|
12
|
+
\item{...}{No additional parameters are currently supported.}
|
13
|
+
}
|
14
|
+
\description{
|
15
|
+
Summary of an \code{\link{enve.TRIBStest}} object.
|
16
|
+
}
|
17
|
+
\author{
|
18
|
+
Luis M. Rodriguez-R [aut, cre]
|
19
|
+
}
|
data/utils/find-medoid.R
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
#
|
6
6
|
|
7
7
|
#= Load stuff
|
8
|
-
argv <- commandArgs(trailingOnly=T)
|
8
|
+
argv <- commandArgs(trailingOnly = T)
|
9
9
|
suppressPackageStartupMessages(library(ape))
|
10
10
|
suppressPackageStartupMessages(library(enveomics.R))
|
11
11
|
|
12
12
|
find_medoids <- function(ani.df, out, clades) {
|
13
|
-
if(nrow(ani.df)==0) return(NULL)
|
13
|
+
if(nrow(ani.df) == 0) return(NULL)
|
14
14
|
ani.df$d <- 1 - (ani.df$value/100)
|
15
15
|
dist <- enve.df2dist(ani.df, 'a', 'b', 'd', default.d = max(ani.df$d)*1.2)
|
16
16
|
dist <- as.matrix(dist)
|
@@ -31,5 +31,6 @@ find_medoids <- function(ani.df, out, clades) {
|
|
31
31
|
|
32
32
|
#= Main
|
33
33
|
load(argv[1])
|
34
|
+
if(! exists('ani')) ani <- aai
|
34
35
|
find_medoids(ani.df = ani, out = argv[2], clades = argv[3])
|
35
36
|
|
data/utils/representatives.rb
CHANGED
@@ -9,9 +9,11 @@ proj_path = ARGV.shift or raise "Usage: #{$0} path/to/project"
|
|
9
9
|
p = MiGA::Project.load(proj_path) or
|
10
10
|
raise "Cannot load project: #{proj_path}"
|
11
11
|
pr = p.result(:clade_finding) or
|
12
|
-
raise
|
13
|
-
pf = pr.file_path(:
|
14
|
-
|
12
|
+
raise 'Unavailable result: clade_finding'
|
13
|
+
if (pf = pr.file_path(:clades_gsp)).nil?
|
14
|
+
pf = pr.file_path(:clades_ani95) or
|
15
|
+
raise 'Unavailable result files: clades_gsp and clades_ani95'
|
16
|
+
end
|
15
17
|
|
16
18
|
# Read ANIspp
|
17
19
|
ani_spp = []
|
data/utils/subclade/pipeline.rb
CHANGED
@@ -4,7 +4,10 @@ module MiGA::SubcladeRunner::Pipeline
|
|
4
4
|
|
5
5
|
# Run species-level clusterings using ANI > 95% / AAI > 90%
|
6
6
|
def cluster_species
|
7
|
-
tasks = {
|
7
|
+
tasks = {
|
8
|
+
ani95: [:ani_distances, opts[:gsp_ani], :ani],
|
9
|
+
aai90: [:aai_distances, opts[:gsp_aai], :aai]
|
10
|
+
}
|
8
11
|
tasks.each do |k, par|
|
9
12
|
# Final output
|
10
13
|
ogs_file = "miga-project.#{k}-clades"
|
@@ -23,23 +26,31 @@ module MiGA::SubcladeRunner::Pipeline
|
|
23
26
|
end
|
24
27
|
ofh.close
|
25
28
|
# Cluster genomes
|
26
|
-
|
27
|
-
|
28
|
-
File.
|
29
|
-
|
29
|
+
if File.size? abc_path
|
30
|
+
`ogs.mcl.rb -o '#{ogs_file}.tmp' --abc '#{abc_path}' -t '#{opts[:thr]}'`
|
31
|
+
File.open(ogs_file, 'w') do |fh|
|
32
|
+
File.foreach("#{ogs_file}.tmp").with_index do |ln, lno|
|
33
|
+
fh.puts ln if lno > 0
|
34
|
+
end
|
30
35
|
end
|
36
|
+
File.unlink "#{ogs_file}.tmp"
|
37
|
+
else
|
38
|
+
FileUtils.touch ogs_file
|
39
|
+
end
|
40
|
+
if par[2].to_s == opts[:gsp_metric]
|
41
|
+
FileUtils.cp(ogs_file, "miga-project.gsp-clades")
|
31
42
|
end
|
32
|
-
File.unlink "#{ogs_file}.tmp"
|
33
43
|
end
|
34
44
|
|
35
|
-
# Find
|
45
|
+
# Find genomospecies medoids
|
36
46
|
src = File.expand_path('utils/find-medoid.R', MiGA::MiGA.root_path)
|
37
|
-
|
38
|
-
|
47
|
+
dir = opts[:gsp_metric] == 'aai' ? '02.aai' : '03.ani'
|
48
|
+
`Rscript '#{src}' ../../09.distances/#{dir}/miga-project.Rdata \
|
49
|
+
miga-project.gsp-medoids miga-project.gsp-clades`
|
39
50
|
|
40
51
|
# Propose clades
|
41
52
|
ofh = File.open('miga-project.proposed-clades', 'w')
|
42
|
-
File.open('miga-project.
|
53
|
+
File.open('miga-project.gsp-clades', 'r') do |ifh|
|
43
54
|
ifh.each_line do |ln|
|
44
55
|
next if $.==1
|
45
56
|
r = ln.chomp.split(',')
|
@@ -55,7 +66,7 @@ module MiGA::SubcladeRunner::Pipeline
|
|
55
66
|
metric_res = project.result(step) or raise "Incomplete step #{step}"
|
56
67
|
matrix = metric_res.file_path(:matrix)
|
57
68
|
`Rscript '#{src}' '#{matrix}' miga-project '#{opts[:thr]}' \
|
58
|
-
miga-project.ani95-medoids`
|
69
|
+
miga-project.ani95-medoids '#{opts[:run_clades] ? 'cluster' : 'empty'}'`
|
59
70
|
File.rename('miga-project.nwk',"miga-project.#{metric}.nwk") if
|
60
71
|
File.exist? 'miga-project.nwk'
|
61
72
|
end
|
data/utils/subclade/runner.rb
CHANGED
@@ -18,7 +18,11 @@ class MiGA::SubcladeRunner
|
|
18
18
|
clades_dir = File.expand_path('data/10.clades', project.path)
|
19
19
|
@home = File.expand_path(@step == :clade_finding ? '01.find' : '02.ani',
|
20
20
|
clades_dir)
|
21
|
-
@opts[:thr] ||= ENV.fetch(
|
21
|
+
@opts[:thr] ||= ENV.fetch('CORES') { 2 }.to_i
|
22
|
+
@opts[:run_clades] = !!@project.metadata.data.fetch(:run_clades) { true }
|
23
|
+
@opts[:gsp_ani] = @project.metadata.data.fetch(:gsp_ani) { 95.0 }.to_f
|
24
|
+
@opts[:gsp_aai] = @project.metadata.data.fetch(:gsp_aai) { 90.0 }.to_f
|
25
|
+
@opts[:gsp_metric] = @project.metadata.data.fetch(:gsp_metric){ 'ani' }.to_s
|
22
26
|
end
|
23
27
|
|
24
28
|
# Launch the appropriate analysis
|
data/utils/subclades-compile.rb
CHANGED
@@ -46,4 +46,4 @@ max_depth = c.values.map{|i| i.count}.max
|
|
46
46
|
File.open("#{out}.tsv", 'w') do |fh|
|
47
47
|
c.each { |k,v| fh.puts ([k] + v + ["0"]*(max_depth-v.count)).join("\t") }
|
48
48
|
end
|
49
|
-
File.open("#{out}.nwk", 'w') { |fh| fh.puts print_tree(c) + ";" }
|
49
|
+
File.open("#{out}.nwk", 'w') { |fh| fh.puts print_tree(c).to_s + ";" }
|
data/utils/subclades.R
CHANGED
@@ -248,6 +248,12 @@ ggplotColours <- function(n=6, h=c(0, 360)+15, alpha=1){
|
|
248
248
|
|
249
249
|
#= Main
|
250
250
|
options(warn = 1)
|
251
|
-
|
252
|
-
|
253
|
-
|
251
|
+
if(length(argv) >= 5 & argv[5] == 'empty'){
|
252
|
+
generate_empty_files(argv[2])
|
253
|
+
write.table(NULL, paste(argv[2], "medoids", sep="."))
|
254
|
+
write.table(NULL, paste(argv[2], "classif", sep="."))
|
255
|
+
write.table(date(), paste(argv[2], "ready", sep="."))
|
256
|
+
}else{
|
257
|
+
subclades(ani_file = argv[1], out_base = argv[2],
|
258
|
+
thr = ifelse(is.na(argv[3]), 1, as.numeric(argv[3])), sel = argv[4])
|
259
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miga-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luis M. Rodriguez-R
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: daemons
|
@@ -101,22 +101,29 @@ files:
|
|
101
101
|
- lib/miga/cli/action/about.rb
|
102
102
|
- lib/miga/cli/action/add.rb
|
103
103
|
- lib/miga/cli/action/add_result.rb
|
104
|
+
- lib/miga/cli/action/classify_wf.rb
|
104
105
|
- lib/miga/cli/action/console.rb
|
105
106
|
- lib/miga/cli/action/daemon.rb
|
106
107
|
- lib/miga/cli/action/date.rb
|
108
|
+
- lib/miga/cli/action/derep_wf.rb
|
107
109
|
- lib/miga/cli/action/doctor.rb
|
108
110
|
- lib/miga/cli/action/edit.rb
|
109
111
|
- lib/miga/cli/action/files.rb
|
110
112
|
- lib/miga/cli/action/find.rb
|
111
113
|
- lib/miga/cli/action/generic.rb
|
112
114
|
- lib/miga/cli/action/get.rb
|
115
|
+
- lib/miga/cli/action/get_db.rb
|
116
|
+
- lib/miga/cli/action/index_wf.rb
|
113
117
|
- lib/miga/cli/action/init.rb
|
118
|
+
- lib/miga/cli/action/init/daemon_helper.rb
|
114
119
|
- lib/miga/cli/action/ln.rb
|
115
120
|
- lib/miga/cli/action/ls.rb
|
116
121
|
- lib/miga/cli/action/ncbi_get.rb
|
117
122
|
- lib/miga/cli/action/new.rb
|
118
123
|
- lib/miga/cli/action/next_step.rb
|
119
124
|
- lib/miga/cli/action/plugins.rb
|
125
|
+
- lib/miga/cli/action/preproc_wf.rb
|
126
|
+
- lib/miga/cli/action/quality_wf.rb
|
120
127
|
- lib/miga/cli/action/rm.rb
|
121
128
|
- lib/miga/cli/action/run.rb
|
122
129
|
- lib/miga/cli/action/stats.rb
|
@@ -125,7 +132,10 @@ files:
|
|
125
132
|
- lib/miga/cli/action/tax_index.rb
|
126
133
|
- lib/miga/cli/action/tax_set.rb
|
127
134
|
- lib/miga/cli/action/tax_test.rb
|
135
|
+
- lib/miga/cli/action/wf.rb
|
128
136
|
- lib/miga/cli/base.rb
|
137
|
+
- lib/miga/cli/objects_helper.rb
|
138
|
+
- lib/miga/cli/opt_helper.rb
|
129
139
|
- lib/miga/common.rb
|
130
140
|
- lib/miga/common/base.rb
|
131
141
|
- lib/miga/common/format.rb
|
@@ -406,6 +416,9 @@ files:
|
|
406
416
|
- utils/enveomics/enveomics.R/README.md
|
407
417
|
- utils/enveomics/enveomics.R/data/growth.curves.rda
|
408
418
|
- utils/enveomics/enveomics.R/data/phyla.counts.rda
|
419
|
+
- utils/enveomics/enveomics.R/man/cash-enve.GrowthCurve-method.Rd
|
420
|
+
- utils/enveomics/enveomics.R/man/cash-enve.RecPlot2-method.Rd
|
421
|
+
- utils/enveomics/enveomics.R/man/cash-enve.RecPlot2.Peak-method.Rd
|
409
422
|
- utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd
|
410
423
|
- utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd
|
411
424
|
- utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd
|
@@ -449,7 +462,6 @@ files:
|
|
449
462
|
- utils/enveomics/enveomics.R/man/enve.tribs.Rd
|
450
463
|
- utils/enveomics/enveomics.R/man/enve.tribs.test.Rd
|
451
464
|
- utils/enveomics/enveomics.R/man/enve.truncate.Rd
|
452
|
-
- utils/enveomics/enveomics.R/man/enveomics.R-package.Rd
|
453
465
|
- utils/enveomics/enveomics.R/man/growth.curves.Rd
|
454
466
|
- utils/enveomics/enveomics.R/man/phyla.counts.Rd
|
455
467
|
- utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd
|
@@ -459,7 +471,6 @@ files:
|
|
459
471
|
- utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd
|
460
472
|
- utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd
|
461
473
|
- utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd
|
462
|
-
- utils/enveomics/enveomics.R/man/z$-methods.Rd
|
463
474
|
- utils/enveomics/globals.mk
|
464
475
|
- utils/enveomics/manifest.json
|
465
476
|
- utils/find-medoid.R
|