[BioC] HTqPCR normalization issue ?
Alessandro Guffanti [guest]
guest at bioconductor.org
Sat Aug 24 22:37:23 CEST 2013
Dear all (and we thing especially Heidi):
we are using HTqPCR to analyze a set of cards which we casted on this format from the original one (being the only one being accepted in input):
2 Run05 41 Passed sample 41 ABCC5 Target 30
3 Run05 41 Passed sample 41 ADM Target 31.3
4 Run05 41 Passed sample 41 CEBPB Target 29.8
5 Run05 41 Passed sample 41 CSF1R Target 31.2
6 Run05 41 Passed sample 41 CXCL16 Target 26.9
7 Run05 41 Passed sample 41 CYC1 Target 25.7
8 Run05 41 Passed sample 41 DYNLT1 Target 25.8
9 Run05 41 Passed sample 41 EREG Target 35.6
10 Run05 41 Passed sample 41 ERH Target 25.9
11 Run05 41 Passed sample 41 FGD4 Target 40
12 Run05 41 Passed sample 41 GPX1 Target 20.4
[...]
The total number of files and groups is as follows (this is the file "Elenco_1.txt" which is used below):
File Group
41.txt Sano
39.txt Sano
37.txt Sano
35.txt Sano
43.txt Sano
34.txt Sano
44.txt Sano
38.txt Sano
48.txt Sano
40.txt Sano
47.txt Sano
6.txt Non Responder DISEASE
26.txt Non Responder DISEASE
2.txt Non Responder DISEASE
69.txt Non Responder DISEASE
68.txt Non Responder DISEASE
5.txt Non Responder DISEASE
71.txt Responder DISEASE
3.txt Responder DISEASE
17.txt Responder DISEASE
1.txt Responder DISEASE
19.txt Responder DISEASE
The comparison is DISEASE vs non DISEASE, but what leaves us dubious is the normalization part.
Here is the code up to the dump of the normalized values matrices:
library("HTqPCR")
path <- ("C:/Users/BRINIEL/Desktop/new_analisi_card1/analisiAeB/")
files <- read.delim (file.path(path, "Elenco_1.txt"))
files
filelist <- as.character(files$File)
filelist
raw <- readCtData(files = filelist, path = path, n.features=46, type=7, flag=NULL, feature=6, Ct=8, header=FALSE, n.data=1)
featureNames (raw)
raw.cat <- setCategory(raw, Ct.max=36, Ct.min=9, replicates=FALSE, quantile=0.9, groups =files$Group, verbose=TRUE)
s.norm <- normalizeCtData(raw.cat, norm="scale.rank")
exprs(s.norm)
write.table(exprs(s.norm),file="Ct norm scaling.txt")
g.norm <- normalizeCtData(raw.cat, norm="geometric.mean")
exprs(g.norm)
write.table(exprs(g.norm),file="Ct norm media geometrica.txt")
Now if we look at the content of the two expression value files, it looks like that the first column (corresponding to the first sample) is always unchanged, while all the others have been normalized.
In this case the first dataset is sample 41 so you can check comparing between the lines above and below what is happening.
We do not include here all the columns but all the samples except the first have all their values 'normalized'
Ct norm scaling:
41 39 37 35 43 34 44 38
ABCC5 30 27.37706161 26.47393365 29.7721327 31.20189573 26.39260664 26.32436019 27.54274882
ADM 31.3 30.36540284 28.51753555 32.31241706 34.40473934 26.29800948 29.82796209 28.60208531
CEBPB 29.8 28.53383886 26.65971564 27.84151659 30.06540284 27.3385782 27.36597156 26.29080569
CSF1R 31.2 27.66625592 28.05308057 37.18976303 36.98767773 31.0278673 34.56255924 29.75772512
CXCL16 26.9 27.56985782 24.15165877 30.28018957 28.82559242 25.91962085 26.89251185 26.96492891
CYC1 25.7 23.52113744 22.01516588 26.92701422 27.27582938 22.89251185 22.53668246 23.88322275
DYNLT1 25.8 23.71393365 21.17914692 25.8092891 26.03601896 22.89251185 22.63137441 23.01649289
EREG 35.6 31.32938389 30.18957346 35.66559242 37.29763033 29.79810427 32.76341232 30.33554502
Ct norm geometric
41 39 37 35 43 34 44 38
ABCC5 30 27.73443878 26.93934246 29.88113261 30.76352197 26.51166676 26.8989347 27.49219508
ADM 31.3 30.76178949 29.01887064 32.4307173 33.92136694 26.41664286 30.47900874 28.5495872
CEBPB 29.8 28.90631647 27.12839047 27.94344824 29.64299633 27.46190571 27.96328103 26.24254985
CSF1R 31.2 28.0274082 28.5462506 37.32591991 36.46801611 31.16783762 35.31694663 29.70310587
CXCL16 26.9 27.92975172 24.57624224 30.39104955 28.42060473 26.03654728 27.47948724 26.91543574
CYC1 25.7 23.82817979 22.40219004 27.02559775 26.89261523 22.99578263 23.02858438 23.83938594
DYNLT1 25.8 24.02349274 21.55147396 25.90378049 25.67022363 22.99578263 23.12534314 22.97424694
EREG 35.6 31.73835423 30.7203028 35.7961691 36.77361401 29.93252698 33.47853023 30.27986521
This looks a bit odd - why the first sample seems to be taken as a 'reference' for both normalization methods and hence is left unchanged ?
Another (related ?) oddity is that in the final differential analysis result the same sample ID is always reported in the feature.pos field, as you can see below:
genes feature.pos t.test p.value adj.p.value
22 NUCB1 41 -1.998838921 0.077900837 0.251381346
8 ERH 41 -1.958143348 0.091329532 0.251381346
16 MAFB 41 -1.887142703 0.09421993 0.251381346
28 RNF130 41 -1.904866754 0.099644523 0.251381346
3 CEBPB 41 -1.853176708 0.103563968 0.251381346
18 MSR1 41 -1.80887129 0.10432619 0.251381346
Are we doing something wrong in the data input or subsequent elaboration here? can we actually trust these normalizations?
Many thanks in advance - kind regards
Alessandro & Elena
-- output of sessionInfo():
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=Italian_Italy.1252 LC_CTYPE=Italian_Italy.1252
[3] LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C
[5] LC_TIME=Italian_Italy.1252
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] HTqPCR_1.14.0 limma_3.16.5 RColorBrewer_1.0-5 Biobase_2.20.0
[5] BiocGenerics_0.6.0
loaded via a namespace (and not attached):
[1] affy_1.38.1 affyio_1.28.0 BiocInstaller_1.10.2
[4] gdata_2.12.0.2 gplots_2.11.0.1 gtools_2.7.1
[7] preprocessCore_1.22.0 stats4_3.0.1 zlibbioc_1.6.0
--
Sent via the guest posting facility at bioconductor.org.
More information about the Bioconductor
mailing list