-
Notifications
You must be signed in to change notification settings - Fork 14
/
DeMixT_Log.Rmd
121 lines (84 loc) · 4.21 KB
/
DeMixT_Log.Rmd
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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
---
output:
pdf_document: default
html_notebook: default
header-includes: \usepackage[ruled,vlined,linesnumbered]{algorithm2e}
---
# DeMixT Log
Cell type-specific deconvolution of heterogeneous tumor samples with two or three components using expression data from RNAseq or microarray platforms.
## Update from version 1.10.1 to 1.20.1
Script DeMixT_preprocessing.R is included in the package for input data preprocessing.
The DeMixT tutorial at https://wwylab.github.io/DeMixT/ is updated.
## Update from version 1.8.2 to 1.10.1
A DeMixT tutorial is included and available at https://wwylab.github.io/DeMixT/.
README.md is revised.
## Update from version 1.8.1 to 1.8.2
Revised the link for citation.
## Update from version 1.6.0 to 1.8.1
Fixed error messenge when process vignette 'DeMixT.md' failed.
Fixed typo in the documentation of function DeMixT, DeMixT_DE and DeMixT_GS.
## Update from version 1.4.0 to 1.6.0
Gene expression data of normal tissues (Lung, Prostate and Thyroid) from the GTEx study are included.
Rename DeMixT_S1 function to DeMixT_DE.
## Update from version 1.2.5 to 1.4.0
Disabled OpenMP under R 4.0.0 for Mac OS platform.
## Update from version 1.2.4 to 1.2.5
Error appears if the number of genes is not mutiplied by 10.
````markdown
ngene.Profile.selected<-min(1500, 0.3*nrow(data.Y))
````
````markdown
ngene.Profile.selected<-min(1500, round(0.3*nrow(data.Y)))
````
## Update from version 1.2.3 to 1.2.4
The step for computing MuN mis-specify the groupid, since MuN corresponds to goupdid == 1.
````markdown
mun.obs<-rowMeans(log2(inputdata2[, groupid == 3]+0.001))
````
````markdown
mun.obs<-rowMeans(log2(inputdata2[, groupid == 1]+0.001))
````
## Update from version 1.2.1 to 1.2.3
## Major Changes
1. Added pi01 and pi02 as input values for users to initialize the proportion estimation.
2. Added nspikein as an input value in the DeMixT, DeMixT_S1 and DeMixT_GS functions to specify how many spike-in normal reference samples need to be generated; Setting nspikein at null as a default value, the number of spike-in normal reference samples equal the $min(200, 0.3\times My)$, where $My$ is the number of mixed samples; By setting nspikein equals 0, no spike-in normal reference will be generated; If the input value of data.N2 is not null, nspikein will be forced to be 0.
3. Added DeMixT_GS function, new proposed gene selection method which applies profile likelihood, for proportion estimation.
4. Added simulate_2comp function for users to simulate test data for 2-component de-convolution.
5. Added simulate_3comp function for users to simulate test data for 3-component de-convolution.
6. Added row names and column names for all output values.
7. Added gene.selection.method as an input value for DeMixT function. The default is 'GS'.
8. Added ngene.Profile.selected as an input value for DeMixT function. The default is NA.
## Bug fix
The filter step failed to set the value into inputdata in the previous version, and it has been resolved in the 1.3.0 version.
````markdown
## filter out genes with constant value across all samples
inputdata < ifelse(is.null(data.comp2),
inputdata[apply(data.comp1, 1, function(x) length(unique(x)) > 1), ],
inputdata[apply(data.comp1, 1, function(x) length(unique(x)) > 1) &
apply(data.comp2, 1, function(x) length(unique(x)) > 1), ])
````
````markdown
## filter out genes with constant value across all samples
if (is.null(data.comp2)) {
if (dim(inputdata)[1] == 1) {
inputdata <- t(as.matrix(inputdata[apply(data.comp1,
1, function(x) length(unique(x)) > 1), ]))
}
else {
inputdata <- inputdata[apply(data.comp1, 1, function(x) length(unique(x)) >
1), ]
}
}
else {
if (dim(inputdata)[1] == 1) {
inputdata <- t(as.matrix(inputdata[apply(data.comp1,
1, function(x) length(unique(x)) > 1) & apply(data.comp2,
1, function(x) length(unique(x)) > 1), ]))
}
else {
inputdata <- inputdata[apply(data.comp1, 1, function(x) length(unique(x)) >
1) & apply(data.comp2, 1, function(x) length(unique(x)) >
1), ]
}
}
````