2
2
# Description
3
3
# Parse input data for GU analysis
4
4
get_usage <- function (u ) {
5
+
6
+ get_condition_of_sample <- function (sample_ids ,
7
+ m ) {
8
+ # condition at sample
9
+ condition_names <- character (length = length(sample_ids ))
10
+ for (i in 1 : length(sample_ids )) {
11
+ condition_names [i ] <- m $ condition [m $ sample_id == sample_ids [i ]]
12
+ }
13
+ condition_ids <- as.numeric(as.factor(condition_names ))
14
+
15
+ return (list (condition_ids = condition_ids ,
16
+ condition_names = condition_names ))
17
+ }
18
+
19
+ get_condition_of_individual <- function (individual_ids ,
20
+ individual_names ,
21
+ m ) {
22
+ # condition at individual
23
+ condition_names <- character (length = max(individual_ids ))
24
+ for (i in 1 : max(individual_ids )) {
25
+ q <- individual_names [individual_ids == i ][1 ]
26
+ condition_names [i ] <- m $ condition [m $ individual_id == q ][1 ]
27
+ }
28
+ condition_ids <- as.numeric(as.factor(condition_names ))
29
+
30
+ return (list (condition_ids = condition_ids ,
31
+ condition_names = condition_names ))
32
+ }
33
+
34
+
5
35
u $ individual_org_name <- u $ individual_id
6
36
if (" replicate" %in% colnames(u )) {
7
37
@@ -89,32 +119,22 @@ get_usage <- function(u) {
89
119
tr <- table(replicate_ids )
90
120
has_balanced_replicates <- ifelse(test = all(tr == tr [1 ]), yes = TRUE , no = FALSE )
91
121
92
- if (has_replicates ) {
93
- # condition at individual
94
- condition_names <- character (length = max(individual_ids ))
95
- for (i in 1 : max(individual_ids )) {
96
- q <- individual_names [individual_ids == i ][1 ]
97
- condition_names [i ] <- m $ condition [m $ individual_id == q ][1 ]
98
- }
99
- condition_ids <- as.numeric(as.factor(condition_names ))
100
- } else {
101
- # condition at sample
102
- condition_names <- character (length = length(sample_ids ))
103
- for (i in 1 : length(sample_ids )) {
104
- condition_names [i ] <- m $ condition [m $ sample_id == sample_ids [i ]]
105
- }
106
- condition_ids <- as.numeric(as.factor(condition_names ))
107
- }
122
+ cos <- get_condition_of_sample(sample_ids = sample_ids , m = m )
123
+ coi <- get_condition_of_individual(individual_ids = individual_ids ,
124
+ individual_names = individual_names ,
125
+ m = m )
108
126
109
127
return (list (Y = Y ,
110
128
N = as.numeric(N ),
111
129
N_sample = ncol(Y ),
112
130
N_gene = nrow(Y ),
113
131
gene_names = gene_names ,
114
132
sample_names = sample_ids ,
115
- condition_id = condition_ids ,
116
- condition_names = condition_names ,
117
- N_condition = max(condition_ids ),
133
+ condition_id_of_sample = cos $ condition_ids ,
134
+ condition_name_of_sample = cos $ condition_names ,
135
+ condition_id_of_individual = coi $ condition_ids ,
136
+ condition_name_of_individual = coi $ condition_names ,
137
+ N_condition = max(cos $ condition_ids ),
118
138
individual_id = individual_ids ,
119
139
individual_names = individual_names ,
120
140
individual_org_names = individual_org_names ,
@@ -125,10 +145,12 @@ get_usage <- function(u) {
125
145
N_replicate = max(replicate_ids ),
126
146
proc_ud = u ,
127
147
has_replicates = has_replicates ,
128
- has_conditions = max(condition_ids )> 1 ,
148
+ has_conditions = max(cos $ condition_ids )> 1 ,
129
149
has_balanced_replicates = has_balanced_replicates ))
130
150
}
131
151
152
+
153
+
132
154
# Description:
133
155
# get the appropriate model
134
156
get_model <- function (has_replicates ,
@@ -173,10 +195,8 @@ get_model <- function(has_replicates,
173
195
if (paired ) {
174
196
model <- stanmodels $ dgu_paired_rep
175
197
pars <- c(" phi" , " kappa" , " alpha" ,
176
- " sigma_condition" , " sigma_individual" , " sigma_alpha" ,
177
- " sigma_alpha_rep" , " sigma_beta_rep" ,
178
- " alpha_sample" , " beta_sample" ,
179
- " alpha_individual" , " beta_individual" ,
198
+ " sigma_condition" , " sigma_individual" , " sigma_beta_rep" ,
199
+ " mu_individual" , " beta_sample" , " beta_individual" ,
180
200
" beta_condition" ,
181
201
" Yhat_rep" , " Yhat_rep_prop" , " Yhat_condition_prop" ,
182
202
" log_lik" , " dgu" , " dgu_prob" , " theta" )
0 commit comments