Skip to content

Commit 363be15

Browse files
committed
fix mistake in what rows i was pulling
whoops, my bad. pulling mean z vals instead of CP vals. also changed to purity and reliability cutoff instead of pval cutoff based on TITAN documentation
1 parent bd05195 commit 363be15

File tree

1 file changed

+50
-30
lines changed

1 file changed

+50
-30
lines changed

extract_taxa_TITAN.R

Lines changed: 50 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,32 @@ require(data.table)
88

99
extract.titan.taxa <-
1010
function(titan.out,
11-
p.val.cutoff = 0.05,
11+
purity.cutoff = 0.9,
12+
reliability.cutoff = 0.9,
1213
taxa.label.name = "Genus") {
1314
titan.out <- titan.out
1415

15-
titan.out.p.val <- titan.out$sppmax %>%
16+
titan.out.filtered <- titan.out$sppmax %>%
1617
as.data.frame() %>%
1718
rownames_to_column()
1819

19-
titan.out.p.val <-
20-
titan.out.p.val[titan.out.p.val$obsiv.prob <= p.val.cutoff, ]
21-
titan.out.p.val <-
22-
titan.out.p.val[order(titan.out.p.val$zscore, decreasing = T), ]
23-
titan.out.p.val <-
24-
mutate(titan.out.p.val, zgrp = ifelse(maxgrp == 1, "z-", "z+"))
20+
titan.out.filtered <-
21+
titan.out.filtered[titan.out.filtered$purity >= purity.cutoff &
22+
titan.out.filtered$reliability >= reliability.cutoff, ]
23+
titan.out.filtered <-
24+
titan.out.filtered[order(titan.out.filtered$zscore, decreasing = T), ] %>%
25+
mutate(zgrp = ifelse(maxgrp == 1, "z-", "z+"))
2526

2627

2728
titan.out.taxonomy.summary <-
28-
group_by(titan.out.p.val, zgrp, rowname) %>%
29+
group_by(titan.out.filtered, zgrp, rowname) %>%
2930
summarise(
3031
mean.zscore = mean(zscore),
3132
mean.purity = mean(purity),
3233
mean.reliability = mean(reliability),
33-
median.zmedian = median(z.median)
34+
mean.zenv.cp = mean(zenv.cp),
35+
mean.5pct.cp = mean(`5%`),
36+
mean.95pct.cp = mean(`95%`)
3437
)
3538

3639

@@ -41,7 +44,9 @@ extract.titan.taxa <-
4144
"Mean Z Score",
4245
"Mean Purity",
4346
"Mean Reliability",
44-
"Median Z Median Value"
47+
"Mean Env CP z-max",
48+
"Mean 5% CP",
49+
"Mean 95% CP"
4550
)
4651

4752
return(ungroup(titan.out.taxonomy.summary))
@@ -53,29 +58,36 @@ extract.titan.taxa <-
5358

5459
## For use with NGS data, could be made to work with phyloseq etc.
5560

61+
# titan.out = I5CL.titan.pctN
62+
# taxonomy.table = raw_dada2_taxa
63+
64+
5665
extract.titan.taxa.NGS <-
5766
function(titan.out,
5867
taxonomy.table,
5968
taxonomy.table.merge = "taxa.label.unique",
6069
taxa.level = Genus,
61-
p.val.cutoff = 0.05,
70+
purity.cutoff = 0.90,
71+
reliability.cutoff = 0.90,
6272
taxa.label.name = "taxa.label.unique",
6373
label = label) {
6474
titan.out <- titan.out
6575
taxa.level <- enquo(taxa.level)
6676
label <- enquo(label)
6777
taxonomy.table <- taxonomy.table
6878

69-
titan.out.p.val <- titan.out$sppmax %>%
79+
titan.out.filtered <- titan.out$sppmax %>%
7080
as.data.frame()
71-
titan.out.p.val[, taxa.label.name] <- rownames(titan.out.p.val)
72-
titan.out.p.val <-
73-
titan.out.p.val[titan.out.p.val$obsiv.prob <= p.val.cutoff, ]
74-
titan.out.p.val <-
75-
titan.out.p.val[order(titan.out.p.val$zscore, decreasing = T), ]
76-
titan.out.p.val <-
81+
titan.out.filtered[, taxa.label.name] <-
82+
rownames(titan.out.filtered)
83+
titan.out.filtered <-
84+
titan.out.filtered[titan.out.filtered$purity >= purity.cutoff &
85+
titan.out.filtered$reliability >= reliability.cutoff, ]
86+
titan.out.filtered <-
87+
titan.out.filtered[order(titan.out.filtered$zscore, decreasing = T), ]
88+
titan.out.filtered <-
7789
merge(
78-
titan.out.p.val,
90+
titan.out.filtered,
7991
taxonomy.table,
8092
by.x = taxa.label.name,
8193
by.y = taxonomy.table.merge,
@@ -85,23 +97,31 @@ extract.titan.taxa.NGS <-
8597

8698

8799
titan.out.taxonomy.summary <-
88-
group_by(titan.out.p.val, zgrp, !!taxa.level) %>%
100+
group_by(titan.out.filtered, zgrp, !!taxa.level) %>%
89101
summarise(
90102
mean.zscore = mean(zscore),
91103
mean.purity = mean(purity),
92104
mean.reliability = mean(reliability),
93-
median.zmedian = median(z.median),
105+
mean.zenv.cp = mean(zenv.cp),
106+
mean.5pct.cp = mean(`5%`),
107+
mean.95pct.cp = mean(`95%`),
94108
count = n(),
95109
svs = paste(unique(!!label), collapse = ";")
96110
)
97111

98112
colnames(titan.out.taxonomy.summary)[1] <-
99113
"Decreasing/Increasing Z Taxa"
100-
colnames(titan.out.taxonomy.summary)[3:7] <- c("Mean Z Score",
101-
"Mean Purity",
102-
"Mean Reliability",
103-
"Median Z Median Value",
104-
"Count")
114+
colnames(titan.out.taxonomy.summary)[3:ncol(titan.out.taxonomy.summary)] <-
115+
c(
116+
"Mean Z Score",
117+
"Mean Purity",
118+
"Mean Reliability",
119+
"Mean Env CP z-max",
120+
"Mean 5% CP",
121+
"Mean 95% CP",
122+
"Count",
123+
"All SVs or OTUs"
124+
)
105125

106126
return(ungroup(titan.out.taxonomy.summary))
107127

@@ -193,7 +213,7 @@ cell.filler <-
193213
paste0("Z-score: ",
194214
z.score.text,
195215
"; CP: ",
196-
temp.row[, "Median Z Median Value"] %>% round(round.val))
216+
temp.row[, "Mean Env CP z-max"] %>% round(round.val))
197217

198218
taxa.comparison.table[j , i + 2] <- text
199219

@@ -273,7 +293,7 @@ combine.titan.results <-
273293
taxa.col.name = taxa.col.name,
274294
table.col.names = table.col.names,
275295
z.score.pct.cutoff = z.score.pct.cutoff,
276-
round.val = 3
296+
round.val = round.val
277297
)
278298

279299
summary.table.z2 <-
@@ -284,7 +304,7 @@ combine.titan.results <-
284304
taxa.col.name = taxa.col.name,
285305
table.col.names = table.col.names,
286306
z.score.pct.cutoff = z.score.pct.cutoff,
287-
round.val = 3
307+
round.val = round.val
288308
)
289309

290310

0 commit comments

Comments
 (0)