nsFilter and GSEA
3
0
Entering edit mode
@paolo-innocenti-2191
Last seen 7.8 years ago
Hi all, I have a set of 15 Affymetrix chips: 4 treatments, 2 technical replicates of 2 biological replicates for each treatment (one chips has been excluded, all the others are really good quality). After running rma(), when i try to filter the ExpressionSet >eset <- rma(mydata) >eset.f <- nsFilter(eset)$eset it removes 13047 features for low variance, leaving 171 features in my dataset.$numDupsRemoved [1] 3 $numLowVar [1] 13047$feature.exclude [1] 3 $numRemoved.ENTREZID [1] 786 It is quite strange, because another analysis (few years ago) on the same dataset revealed more than 1000 DE genes. Now, I can just set a less stringent cutoff, but is it reasonable to go on with the analysis with 171 features? Is it realistic to get these results with the default parameters of nsFilter? Obviously, it depends by what I am expecting and by the experimental design... well, i was expecting some more dramatic changes in expression. At the end of the analysis, I end up with ~60 differentially expressed probesets (lfc=1, p.value=0.05, adjustment method=BH) Second question: Is it informative to test for gene sets (GSEA) on 171 genes, or would be better not to filter the expressionset? Thanks, Paolo > sessionInfo() R version 2.6.1 (2007-11-26) i486-pc-linux-gnu locale: LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US .UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US. UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8 ;LC_IDENTIFICATION=C attached base packages: [1] splines tools stats graphics grDevices utils datasets [8] methods base other attached packages: [1] annotate_1.16.1 xtable_1.5-2 AnnotationDbi_1.0.6 [4] RSQLite_0.6-4 DBI_0.2-4 statmod_1.3.1 [7] limma_2.12.0 drosgenome1_2.0.1 genefilter_1.16.0 [10] survival_2.34 Biobase_1.16.1 loaded via a namespace (and not attached): [1] rcompgen_0.1-17 • 1.1k views ADD COMMENT 0 Entering edit mode @sean-davis-490 Last seen 6 weeks ago United States An embedded and charset-unspecified text was scrubbed... Name: not available Url: https://stat.ethz.ch/pipermail/bioconductor/attachments/20080111/ cf397a0d/attachment.pl ADD COMMENT 0 Entering edit mode @paolo-innocenti-2191 Last seen 7.8 years ago Hi, thanks for the prompt reply. I am a bit confused now. Sean Davis wrote: > Sounds like you probably need to take a closer look at the data. I have > not used the nsFilter function, but it looks like the default variance > function is IQR (interquartile range) and the default cutoff is 0.5 for > that function value is 0.5. If nearly 99% of your probes have an > IQR<0.5, I would look at the data quality closely to see if there are > data quality issues or preprocessing steps that do not make sense (can't > tell what was done before RMA). Boxplot, hist, RLE, NUSE, MAplot, RNAdeg: they all look fine (except for one chip that is *a bit* strange, but that should just increase the variance (?) . Can you suggest me other tests (and how to interpret them)? And there is no preprocessing except for RMA (maybe is this the wrong step?): miame <- read.MIAME("miame") phenodata<- read.AnnotatedDataFrame("phenodata",sep=" ") mydata <- ReadAffy(sampleNames=sampleNames(phenodata), phenoData=phenodata, description=miame) eset <- rma(mydata) eset.f <- nsFilter(eset)$eset What if the problem is that the data are TOO good? Makes sense to guess that, if data mirror exactly the biology of the sample, I am expecting heaps of genes with the exactly the same expression level, and "a few" genes with differential expression? (the experimental design was virginVSmated female flies: mating is expected to promote some change in female physiology, probably affecting more that 60 genes, though). Cheers, Paolo
0
Entering edit mode
Hi Paolo, Have you try plotting the IQR or the variance of the signal intensity for all probesets to see what the distribution looks like? Normally you should see two clear groups - one peak with small IQR value over a narrow range, and the other with peak at greater IQR and more spread out. Do you really have most of your probesets not varying much across samples? It doesn't seem right that so many genes are removed. But I haven't used the function nsFilter before. Alex -------------------------------------------- Alex C. Lam Roslin Institute (Edinburgh) Midlothian EH25 9PS United Kingdom Tel: +44 131 5274471 Roslin Institute is a company limited by guarantee, registered in Scotland (registered number SC157100) and a Scottish Charity (registered number SC023592). Our registered office is at Roslin, Midlothian, EH25 9PS. VAT registration number 847380013. The information contained in this e-mail (including any attachments) is confidential and is intended for the use of the addressee only. The opinions expressed within this e-mail (including any attachments) are the opinions of the sender and do not necessarily constitute those of Roslin Institute (Edinburgh) ("the Institute") unless specifically stated by a sender who is duly authorised to do so on behalf of the Institute -----Original Message----- From: bioconductor-bounces@stat.math.ethz.ch [mailto:bioconductor-bounces at stat.math.ethz.ch] On Behalf Of Paolo Innocenti Sent: 11 January 2008 15:41 To: ML Bioconductor Subject: Re: [BioC] nsFilter and GSEA Hi, thanks for the prompt reply. I am a bit confused now. Sean Davis wrote: > Sounds like you probably need to take a closer look at the data. I > have not used the nsFilter function, but it looks like the default > variance function is IQR (interquartile range) and the default cutoff > is 0.5 for that function value is 0.5. If nearly 99% of your probes > have an IQR<0.5, I would look at the data quality closely to see if > there are data quality issues or preprocessing steps that do not make > sense (can't tell what was done before RMA). Boxplot, hist, RLE, NUSE, MAplot, RNAdeg: they all look fine (except for one chip that is *a bit* strange, but that should just increase the variance (?) . Can you suggest me other tests (and how to interpret them)? And there is no preprocessing except for RMA (maybe is this the wrong step?): miame <- read.MIAME("miame") phenodata<- read.AnnotatedDataFrame("phenodata",sep=" ") mydata <- ReadAffy(sampleNames=sampleNames(phenodata), phenoData=phenodata, description=miame) eset <- rma(mydata) eset.f <- nsFilter(eset)$eset What if the problem is that the data are TOO good? Makes sense to guess that, if data mirror exactly the biology of the sample, I am expecting heaps of genes with the exactly the same expression level, and "a few" genes with differential expression? (the experimental design was virginVSmated female flies: mating is expected to promote some change in female physiology, probably affecting more that 60 genes, though). Cheers, Paolo _______________________________________________ Bioconductor mailing list Bioconductor at stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/bioconductor Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor ADD REPLY 0 Entering edit mode @paolo-innocenti-2191 Last seen 7.8 years ago Hi again, I tried with a different normalisation method, and I was pretty surprised by the results: > eset.mas <- mas5(mydata) background correction: mas PM/MM correction : mas expression values: mas background correcting...done. 14010 ids to be processed | | |####################| > eset.mas.f <- nsFilter(eset.mas) > eset.mas.f$filter.log $numDupsRemoved [1] 1098$numLowVar [1] 1 $feature.exclude [1] 3$numRemoved.ENTREZID [1] 786 > eset.rma <- rma(mydata) Background correcting Normalizing Calculating Expression > eset.rma.f <- nsFilter(eset.rma) > eset.rma.f$filter.log$numDupsRemoved [1] 3 $numLowVar [1] 13047$feature.exclude [1] 3 $numRemoved.ENTREZID [1] 786 > dim(eset.rma.f$eset) Features Samples 171 15 > dim(eset.mas.f$eset) Features Samples 12122 15 I don't understand how is it possible. Any suggestion about what to do? Should I lower the cutoff for the rma, or that processing method doesn't work for my dataset? Paolo PS: I tried also a really low cutoff, but the situation doesn't change, unless I choose a cutoff=0.1: > eset.filter <- nsFilter(eset,var.cutoff=0.2) > eset.filter$filter.log $numDupsRemoved [1] 69$numLowVar [1] 10560 $feature.exclude [1] 3$numRemoved.ENTREZID [1] 786
0
Entering edit mode
Hi, It looks like something fairly odd is going on, and that we are not seeing all of the code that is being run. What chip are you using? What is very odd is that in your first example 1098 "duplicate" probes are found, but in the second run only 3. Basically this cannot happen (since the probes are the same) and suggests that some piece of code has manipulated the names, and at that point I think fairly bad things are going to happen. So this would be one place to try and fix things. Second, nsFilter filters by default at the median, so you should retain about 0.5 of your probe sets. But since you loose so many (you didn't tell us the chip so I can't be sure) but it looks like all of the values are corrupt for that example as well. So, I think that you are looking in the wrong place. Your problem is probably earlier on. best wishes Robert Paolo Innocenti wrote: > Hi again, > > I tried with a different normalisation method, and I was pretty > surprised by the results: > > > eset.mas <- mas5(mydata) > background correction: mas > PM/MM correction : mas > expression values: mas > background correcting...done. > 14010 ids to be processed > | | > |####################| > > eset.mas.f <- nsFilter(eset.mas) > > eset.mas.f$filter.log >$numDupsRemoved > [1] 1098 > > $numLowVar > [1] 1 > >$feature.exclude > [1] 3 > > $numRemoved.ENTREZID > [1] 786 > > > eset.rma <- rma(mydata) > Background correcting > Normalizing > Calculating Expression > > eset.rma.f <- nsFilter(eset.rma) > > eset.rma.f$filter.log > $numDupsRemoved > [1] 3 > >$numLowVar > [1] 13047 > > $feature.exclude > [1] 3 > >$numRemoved.ENTREZID > [1] 786 > > > dim(eset.rma.f$eset) > Features Samples > 171 15 > > dim(eset.mas.f$eset) > Features Samples > 12122 15 > > I don't understand how is it possible. Any suggestion about what to do? > Should I lower the cutoff for the rma, or that processing method doesn't > work for my dataset? > > Paolo > PS: I tried also a really low cutoff, but the situation doesn't change, > unless I choose a cutoff=0.1: > > > eset.filter <- nsFilter(eset,var.cutoff=0.2) > > eset.filter$filter.log >$numDupsRemoved > [1] 69 > > $numLowVar > [1] 10560 > >$feature.exclude > [1] 3 > > $numRemoved.ENTREZID > [1] 786 > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor > -- Robert Gentleman, PhD Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M2-B876 PO Box 19024 Seattle, Washington 98109-1024 206-667-7700 rgentlem at fhcrc.org ADD REPLY 0 Entering edit mode Dear Robert and BioC Mailing list, The chips are Affymetrix Drosophila genome 1.0 (annotation drosgenome1). I am even more confused: to make sure that was not my fault, I copied the .CEL files in a new directory, started a fresh R session from there and run *just* the following code. Same results: > library(affy) Loading required package: Biobase Loading required package: tools Welcome to Bioconductor Vignettes contain introductory material. To view, type 'openVignette()'. To cite Bioconductor, see 'citation("Biobase")' and for packages 'citation(pkgname)'. Loading required package: affyio Loading required package: preprocessCore > mydata <- ReadAffy() > eset.rma <- rma(mydata) Background correcting Normalizing Calculating Expression > eset.mas <- mas5(mydata) background correction: mas PM/MM correction : mas expression values: mas background correcting...done. 14010 ids to be processed | | |####################| > library(genefilter) Loading required package: survival Loading required package: splines > eset.rma.f <- nsFilter(eset.rma) > eset.mas.f <- nsFilter(eset.mas) > eset.rma.f$eset ExpressionSet (storageMode: lockedEnvironment) assayData: 171 features, 15 samples element names: exprs phenoData sampleNames: dta_2a.CEL, dta_2b.CEL, ..., virgin_4b.CEL (15 total) varLabels and varMetadata description: sample: arbitrary numbering featureData featureNames: 147260_at, 142359_at, ..., 145988_at (171 total) fvarLabels and fvarMetadata description: none experimentData: use 'experimentData(object)' Annotation: drosgenome1 $filter.log$filter.log$numDupsRemoved [1] 3$filter.log$numLowVar [1] 13047$filter.log$feature.exclude [1] 3$filter.log$numRemoved.ENTREZID [1] 786 > eset.mas.f$eset ExpressionSet (storageMode: lockedEnvironment) assayData: 12122 features, 15 samples element names: exprs, se.exprs phenoData sampleNames: dta_2a.CEL, dta_2b.CEL, ..., virgin_4b.CEL (15 total) varLabels and varMetadata description: sample: arbitrary numbering featureData featureNames: 153135_at, 154994_at, ..., 152360_at (12122 total) fvarLabels and fvarMetadata description: none experimentData: use 'experimentData(object)' Annotation: drosgenome1 $filter.log$filter.log$numDupsRemoved [1] 1098$filter.log$numLowVar [1] 1$filter.log$feature.exclude [1] 3$filter.log$numRemoved.ENTREZID [1] 786 > sessionInfo() R version 2.6.1 (2007-11-26) i486-pc-linux-gnu locale: LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US .UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US. UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8 ;LC_IDENTIFICATION=C attached base packages: [1] splines tools stats graphics grDevices utils datasets [8] methods base other attached packages: [1] drosgenome1_2.0.1 genefilter_1.16.0 survival_2.34 [4] drosgenome1cdf_2.0.0 affy_1.16.0 preprocessCore_1.0.0 [7] affyio_1.6.1 Biobase_1.16.1 loaded via a namespace (and not attached): [1] annotate_1.16.1 AnnotationDbi_1.0.6 DBI_0.2-4 [4] rcompgen_0.1-17 RSQLite_0.6-4 > Could be the CEL files that are damaged? Thanks, best wishes, Paolo Robert Gentleman wrote: > Hi, > It looks like something fairly odd is going on, and that we are not > seeing all of the code that is being run. > > What chip are you using? What is very odd is that in your first > example 1098 "duplicate" probes are found, but in the second run only 3. > Basically this cannot happen (since the probes are the same) and > suggests that some piece of code has manipulated the names, and at that > point I think fairly bad things are going to happen. So this would be > one place to try and fix things. > > Second, nsFilter filters by default at the median, so you should retain > about 0.5 of your probe sets. But since you loose so many (you didn't > tell us the chip so I can't be sure) but it looks like all of the values > are corrupt for that example as well. > > So, I think that you are looking in the wrong place. Your problem is > probably earlier on. > > best wishes > Robert > > > Paolo Innocenti wrote: >> Hi again, >> >> I tried with a different normalisation method, and I was pretty >> surprised by the results: >> >> > eset.mas <- mas5(mydata) >> background correction: mas >> PM/MM correction : mas >> expression values: mas >> background correcting...done. >> 14010 ids to be processed >> | | >> |####################| >> > eset.mas.f <- nsFilter(eset.mas) >> > eset.mas.f$filter.log >> $numDupsRemoved >> [1] 1098 >> >>$numLowVar >> [1] 1 >> >> $feature.exclude >> [1] 3 >> >>$numRemoved.ENTREZID >> [1] 786 >> >> > eset.rma <- rma(mydata) >> Background correcting >> Normalizing >> Calculating Expression >> > eset.rma.f <- nsFilter(eset.rma) >> > eset.rma.f$filter.log >>$numDupsRemoved >> [1] 3 >> >> $numLowVar >> [1] 13047 >> >>$feature.exclude >> [1] 3 >> >> $numRemoved.ENTREZID >> [1] 786 >> >> > dim(eset.rma.f$eset) >> Features Samples >> 171 15 >> > dim(eset.mas.f$eset) >> Features Samples >> 12122 15 >> >> I don't understand how is it possible. Any suggestion about what to >> do? Should I lower the cutoff for the rma, or that processing method >> doesn't work for my dataset? >> >> Paolo >> PS: I tried also a really low cutoff, but the situation doesn't >> change, unless I choose a cutoff=0.1: >> >> > eset.filter <- nsFilter(eset,var.cutoff=0.2) >> > eset.filter$filter.log >> $numDupsRemoved >> [1] 69 >> >>$numLowVar >> [1] 10560 >> >> $feature.exclude >> [1] 3 >> >>$numRemoved.ENTREZID >> [1] 786 >> >> _______________________________________________ >> Bioconductor mailing list >> Bioconductor at stat.math.ethz.ch >> https://stat.ethz.ch/mailman/listinfo/bioconductor >> Search the archives: >> http://news.gmane.org/gmane.science.biology.informatics.conductor >> >
0
Entering edit mode
Hi Paolo, Thanks for doing that, and an apology as I misremembered having ported a bug fix back to the release branch. This is a bug(let) that is fixed in the devel version, and that I will shortly port back to release. The problem is that the 0.5 default in the call to nsFilter was meant to be interpreted as a quantile, not as a value, but the in the implementation it was implemented as a value. So, my recommendation is to do something like rmaIQRs = apply(exprs(eset.mas), 1, IQR) med1 = median(rmaIQRs) nsFilter(eset.mas, var.cutoff = med1) and then something similar for the rma version, and then things should line up somewhat better. let us know if that is not clear, or if anything else comes up Robert Paolo Innocenti wrote: > Dear Robert and BioC Mailing list, > > The chips are Affymetrix Drosophila genome 1.0 (annotation drosgenome1). > I am even more confused: to make sure that was not my fault, I copied > the .CEL files in a new directory, started a fresh R session from there > and run *just* the following code. Same results: > > > library(affy) > Loading required package: Biobase > Loading required package: tools > > Welcome to Bioconductor > > Vignettes contain introductory material. To view, type > 'openVignette()'. To cite Bioconductor, see > 'citation("Biobase")' and for packages 'citation(pkgname)'. > > Loading required package: affyio > Loading required package: preprocessCore > > mydata <- ReadAffy() > > eset.rma <- rma(mydata) > Background correcting > Normalizing > Calculating Expression > > eset.mas <- mas5(mydata) > background correction: mas > PM/MM correction : mas > expression values: mas > background correcting...done. > 14010 ids to be processed > | | > |####################| > > library(genefilter) > Loading required package: survival > Loading required package: splines > > eset.rma.f <- nsFilter(eset.rma) > > eset.mas.f <- nsFilter(eset.mas) > > eset.rma.f > $eset > ExpressionSet (storageMode: lockedEnvironment) > assayData: 171 features, 15 samples > element names: exprs > phenoData > sampleNames: dta_2a.CEL, dta_2b.CEL, ..., virgin_4b.CEL (15 total) > varLabels and varMetadata description: > sample: arbitrary numbering > featureData > featureNames: 147260_at, 142359_at, ..., 145988_at (171 total) > fvarLabels and fvarMetadata description: none > experimentData: use 'experimentData(object)' > Annotation: drosgenome1 > >$filter.log > $filter.log$numDupsRemoved > [1] 3 > > $filter.log$numLowVar > [1] 13047 > > $filter.log$feature.exclude > [1] 3 > > $filter.log$numRemoved.ENTREZID > [1] 786 > > > > eset.mas.f > $eset > ExpressionSet (storageMode: lockedEnvironment) > assayData: 12122 features, 15 samples > element names: exprs, se.exprs > phenoData > sampleNames: dta_2a.CEL, dta_2b.CEL, ..., virgin_4b.CEL (15 total) > varLabels and varMetadata description: > sample: arbitrary numbering > featureData > featureNames: 153135_at, 154994_at, ..., 152360_at (12122 total) > fvarLabels and fvarMetadata description: none > experimentData: use 'experimentData(object)' > Annotation: drosgenome1 > >$filter.log > $filter.log$numDupsRemoved > [1] 1098 > > $filter.log$numLowVar > [1] 1 > > $filter.log$feature.exclude > [1] 3 > > $filter.log$numRemoved.ENTREZID > [1] 786 > > > > sessionInfo() > R version 2.6.1 (2007-11-26) > i486-pc-linux-gnu > > locale: > LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_ US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_U S.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF -8;LC_IDENTIFICATION=C > > attached base packages: > [1] splines tools stats graphics grDevices utils datasets > [8] methods base > > other attached packages: > [1] drosgenome1_2.0.1 genefilter_1.16.0 survival_2.34 > [4] drosgenome1cdf_2.0.0 affy_1.16.0 preprocessCore_1.0.0 > [7] affyio_1.6.1 Biobase_1.16.1 > > loaded via a namespace (and not attached): > [1] annotate_1.16.1 AnnotationDbi_1.0.6 DBI_0.2-4 > [4] rcompgen_0.1-17 RSQLite_0.6-4 > > > > > Could be the CEL files that are damaged? > Thanks, > best wishes, > Paolo > > > > Robert Gentleman wrote: >> Hi, >> It looks like something fairly odd is going on, and that we are not >> seeing all of the code that is being run. >> >> What chip are you using? What is very odd is that in your first >> example 1098 "duplicate" probes are found, but in the second run only 3. >> Basically this cannot happen (since the probes are the same) and >> suggests that some piece of code has manipulated the names, and at that >> point I think fairly bad things are going to happen. So this would be >> one place to try and fix things. >> >> Second, nsFilter filters by default at the median, so you should retain >> about 0.5 of your probe sets. But since you loose so many (you didn't >> tell us the chip so I can't be sure) but it looks like all of the values >> are corrupt for that example as well. >> >> So, I think that you are looking in the wrong place. Your problem is >> probably earlier on. >> >> best wishes >> Robert >> >> >> Paolo Innocenti wrote: >>> Hi again, >>> >>> I tried with a different normalisation method, and I was pretty >>> surprised by the results: >>> >>> > eset.mas <- mas5(mydata) >>> background correction: mas >>> PM/MM correction : mas >>> expression values: mas >>> background correcting...done. >>> 14010 ids to be processed >>> | | >>> |####################| >>> > eset.mas.f <- nsFilter(eset.mas) >>> > eset.mas.f$filter.log >>>$numDupsRemoved >>> [1] 1098 >>> >>> $numLowVar >>> [1] 1 >>> >>>$feature.exclude >>> [1] 3 >>> >>> $numRemoved.ENTREZID >>> [1] 786 >>> >>> > eset.rma <- rma(mydata) >>> Background correcting >>> Normalizing >>> Calculating Expression >>> > eset.rma.f <- nsFilter(eset.rma) >>> > eset.rma.f$filter.log >>> $numDupsRemoved >>> [1] 3 >>> >>>$numLowVar >>> [1] 13047 >>> >>> $feature.exclude >>> [1] 3 >>> >>>$numRemoved.ENTREZID >>> [1] 786 >>> >>> > dim(eset.rma.f$eset) >>> Features Samples >>> 171 15 >>> > dim(eset.mas.f$eset) >>> Features Samples >>> 12122 15 >>> >>> I don't understand how is it possible. Any suggestion about what to >>> do? Should I lower the cutoff for the rma, or that processing method >>> doesn't work for my dataset? >>> >>> Paolo >>> PS: I tried also a really low cutoff, but the situation doesn't >>> change, unless I choose a cutoff=0.1: >>> >>> > eset.filter <- nsFilter(eset,var.cutoff=0.2) >>> > eset.filter$filter.log >>>$numDupsRemoved >>> [1] 69 >>> >>> $numLowVar >>> [1] 10560 >>> >>>$feature.exclude >>> [1] 3 >>> >>> \$numRemoved.ENTREZID >>> [1] 786 >>> >>> _______________________________________________ >>> Bioconductor mailing list >>> Bioconductor at stat.math.ethz.ch >>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>> Search the archives: >>> http://news.gmane.org/gmane.science.biology.informatics.conductor >>> > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor > -- Robert Gentleman, PhD Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M2-B876 PO Box 19024 Seattle, Washington 98109-1024 206-667-7700 rgentlem at fhcrc.org