Skip to content

Commit 28366d8

Browse files
committed
add fold_change_int class
fold_change for interactions between factors
1 parent 10d3f9d commit 28366d8

File tree

5 files changed

+63
-0
lines changed

5 files changed

+63
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ inst/doc
1313
structtoolbox.Rproj
1414
*.Rproj
1515
*.Rproj
16+
*.tiff

DESCRIPTION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ Collate:
3131
'filter_na_count.R'
3232
'filter_smeta_class.R'
3333
'fisher_exact_class.R'
34+
'fold_change_int_class.R'
3435
'forward_selection_by_rank_class.R'
3536
'ggplot_theme_pub.R'
3637
'glog_class.R'

NAMESPACE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export(filter_na_count)
3030
export(filter_smeta)
3131
export(fisher_exact)
3232
export(fold_change)
33+
export(fold_change_int)
3334
export(fold_change_plot)
3435
export(forward_selection_byrank)
3536
export(fs_line)

R/fold_change_int_class.R

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#' fold change for interactions class
2+
#'
3+
#' calculates fold change between groups for all factors and interactions
4+
#'
5+
#' @import struct
6+
#' @import stats
7+
#' @export fold_change_int
8+
fold_change_int<-setClass(
9+
"fold_change_int",
10+
contains=c('method','fold_change'),
11+
)
12+
13+
#' @export
14+
setMethod(f="method.apply",
15+
signature=c("fold_change_int",'dataset'),
16+
definition=function(M,D)
17+
{
18+
19+
## apply fold change between all pairwise combinations of levels of all factors
20+
# combinations of factors
21+
FF=structToolbox:::full_fact(M$factor_name)
22+
FF=apply(FF,1,function(x) M$factor_name[x==1])
23+
FF=FF[-1]
24+
25+
# remove single factor comparisons
26+
L=lapply(FF,length)
27+
w=which(L==1)
28+
FF=FF[-w]
29+
30+
# for each combination create an interaction factor and compute fold-change on that factor
31+
for (k in 1:length(FF)) {
32+
33+
D$sample_meta$interaction=interaction(D$sample_meta[,FF[[k]]])
34+
FC=fold_change(alpha=M$alpha,paired=FALSE,sample_name='NA',factor_name='interaction')
35+
FC=method.apply(FC,D)
36+
if (k==1) {
37+
M$fold_change=FC$fold_change
38+
M$upper_ci=FC$upper_ci
39+
M$lower_ci=FC$lower_ci
40+
} else {
41+
# bind the results tables together
42+
M$fold_change=cbind(M$fold_change,FC$fold_change)
43+
M$upper_ci=cbind(M$upper_ci,FC$upper_ci)
44+
M$lower_ci=cbind(M$lower_ci,FC$lower_ci)
45+
}
46+
}
47+
48+
return(M)
49+
}
50+
)

man/fold_change_int-class.Rd

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)