[BioC] Missing probesets when creating Affymetrix GeneChip miRNA 4.0 CDF package using makecdfenv package

James W. MacDonald jmacdon at u.washington.edu
Wed Jan 15 23:40:08 CET 2014


Hi Lei,

Without exploring further I have to make guesses. However, my best 
guess is that you are losing probesets for which the probes completely 
overlap between probesets.

Remember that this array is pretty crazy. Mature miRNA transcripts are 
only 21-23 bases long, and the Affy probes are all 25-mers, so a 
probeset usually consists of something like 9 identical probes. In 
addition, an miRNA for one species is often identical to the miRNA from 
another, so you could hypothetically have two probesets that are 
supposed to measure miRNA from two different species, but the two 
probesets would just be made up of the same 9 identical probes!

So here is an example. If I use the affxparser package to read in the 
cdf you gave me, I have the 36k probesets you are expecting. If I then 
use makecdfenv to create a cdf package, I only have the 25k you are 
seeing.

Now if we look at let-7-5p in mirBase, we have this page:

http://www.mirbase.org/cgi-bin/query.pl?terms=let-7-5p&submit=Search

You can see that there are 7 mature miRNAs, from seven different 
species. All of these exist on the cdf, but when we run it through 
makecdfenv, the only one that survives is MIMAT0030474_st

If I write a little function to parse out the (x,y) coordinates for all 
seven of these probesets, I get this:

$MIMAT0000001_st
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x  450  143  279   51  381  163  497   16  366
y   57   60  164  276  277  390  390  493  495

$MIMAT0000396_st
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x   13  480  125  234  434   29  445  174  317
y   62   85   89  186  300  309  382  393  528

$MIMAT0004190_st
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x   13  480  125  234  434   29  445  174  317
y   62   85   89  186  300  309  382  393  528

$MIMAT0008354_st
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x  447  206  250   36  400  202  438  352  255
y   85   98  174  280  324  425  435  498  540

$MIMAT0014366_st
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x  255   50  376   97  531  225  413  125  473
y   61  202  203  312  317  411  428  510  530

$MIMAT0021417_st
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x  450  143  279   51  381  163  497   16  366
y   57   60  164  276  277  390  390  493  495

$MIMAT0030474_st
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x  289  468  153   25  302  413   41  172  458
y  103  198  201  205  328  425  434  536  536

So at least some of these probesets are really just the same thing 
twice. Without going deeper, I can't say for sure that this is the only 
thing going on, but you now see how crazy this array really is.

Best,

Jim



On Wednesday, January 15, 2014 3:53:25 PM, Huang, Lei [BSD] - CRI wrote:
> Thanks a lot Jim! Do you think the problems you found also contribute to the missing probesets when building cdf package from makecdfenv?
>
> Best,
>
> Lei
> On Jan 15, 2014, at 2:30 PM, James W. MacDonald <jmacdon at u.washington.edu> wrote:
>
>> Hi Lei,
>>
>> It turns out that there are at least two differences between the miRNA 4.0 array and those that came before it.
>>
>> First, there are now no MM probes at all (for the 3.0, for example, there were 180 MM probes). This is the cause of the error you see when trying to make the pd.mirna.4.0 package. The code expects MM probes and thus tries to put those probes into the 'mmfeature' table of the database, and errors when there are none. This is pretty easy to fix - you can just put a test for MM probes into the code, and if there are no MM probes you just skip that step. Hypothetically I could have patched the code and sent you a pd.mirna.4.0 package that would work (and then sent the patch to Benilton Carvalho).
>>
>> However, there is a bigger problem that will require more effort, and should be handled by Benilton. Prior versions of the miRNA arrays never shared probes between probesets, so the code for building the pd package for the existing miRNA arrays is a modification of the code used to create pd packages for the Exon ST arrays, which also never share probes among probesets.
>>
>> The miRNA 4.0 array is now like the Gene ST arrays, which also share probes between probesets, so the code will have to be modified to account for that fact. This will take more than a couple of simple changes, so you (we) will have to wait for Benilton to fix it.
>>
>> Best,
>>
>> Jim
>>
>> On 1/15/2014 1:15 AM, Lei Huang [guest] wrote:
>>> Dear all,
>>>
>>> I am working on a set of Affymetrix GeneChip miRNA 4.0 microarray data and would like to perform differential expression analysis using Bioconductor packages. Since this is a fairly new platform, no CDF and annotation packages are available in bioconductor repository at the moment. Affymetrix folks kindly provided me miRNA 4.0 CDF file as well as sample CEL data. So I desided to create a CDF package by my own using make.cdf.package() from makecdfenv package. I was able to make the package and install it without trouble. However, after I read the raw CEL files and normalized the affybatch with vsnrma()/rma(), I found the number of probesets is only 25065 while the number is 36249 in original Affymetrix miRNA 4.0 CDF file. I am aware that from version 4, Affymetrix changed their naming convention for the probeset IDs, but this shouldn't cause the problem of missing probesets. What I did wrong? I would really appreciate if anyone could give me some hints/advices on solving this
>>>   problem.
>>>
>>> -Lei
>>>
>>> --
>>> Lei Huang
>>> Center for Research Informatics
>>> Biological Science Division
>>> University of Chicago
>>> http://cri.uchicago.edu
>>> --
>>>
>>> P.S. The following are the code and output from my R session:
>>>
>>>> setwd("~/Documents/Project/mirna/GeneChip 4-0 Array Sample Data")
>>>> library(affy)
>>>> library(makecdfenv)
>>> Loading required package: affyio
>>>> pkgpath <- tempdir()
>>>> pname <- cleancdfname(whatcdf("20131118_Human-Brain-AM7962-130ng_rep1_(miRNA-4_0).CEL"))
>>>> make.cdf.package("miRNA-4_0-st-v1.cdf", cdf.path="~/Documents/Project/mirna/miRNA-4_0-st-v1_CDF",
>>> +                  compress=FALSE, species = "", packagename=pname, package.path = pkgpath)
>>> Reading CDF file.
>>> Creating CDF environment
>>> Wait for about 251 dots.............................................................................................................................................................................................................................................................
>>> Creating package in /var/folders/rh/rrlg3bcs6kgcj89zm4mgjjxh0000gq/T//RtmpRos3Be/mirna40cdf
>>>
>>> README PLEASE:
>>> A source package has now been produced in
>>> /var/folders/rh/rrlg3bcs6kgcj89zm4mgjjxh0000gq/T//RtmpRos3Be/mirna40cdf.
>>> Before using this package it must be installed via 'R CMD INSTALL'
>>> at a terminal prompt (or DOS command shell).
>>> If you are using Windows, you will need to get set up to install packages.
>>> See the 'R Installation and Administration' manual, specifically
>>> Section 6 'Add-on Packages' as well as 'Appendix E: The Windows Toolset'
>>> for more information.
>>>
>>> Alternatively, you could use make.cdf.env(), which will not require you to install a package.
>>> However, this environment will only persist for the current R session
>>> unless you save() it.
>>>
>>> ## install the cdf package from shell
>>> ## cd to mirna40cdf location
>>> ## R CMD INSTALL mirna40cdf
>>>
>>>> library(limma)
>>>> library(vsn)
>>>> library(mirna40cdf)
>>>>
>>>> affybatch <- ReadAffy(filenames=list.files())
>>>> affybatch at cdfName
>>> [1] "miRNA-4_0"
>>>
>>> ## normalization
>>>> eset.norm <- vsnrma(affybatch)
>>> vsn2: 292681 x 8 matrix (1 stratum).
>>> Please use 'meanSdPlot' to verify the fit.
>>> Calculating Expression
>>>
>>> ## only 25,065 probesets, the original Affymetrix cdf file contains 36,249 probesets
>>>> dim(eset.norm)
>>> Features  Samples
>>>     25065        8
>>>
>>>
>>>   -- output of sessionInfo():
>>>
>>>> sessionInfo()
>>> R version 3.0.2 (2013-09-25)
>>> Platform: x86_64-apple-darwin10.8.0 (64-bit)
>>>
>>> locale:
>>> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
>>>
>>> attached base packages:
>>> [1] parallel  stats     graphics  grDevices utils     datasets  methods   base
>>>
>>> other attached packages:
>>> [1] mirna40cdf_1.38.0    AnnotationDbi_1.24.0 vsn_3.30.0
>>> [4] limma_3.18.9         makecdfenv_1.38.0    affyio_1.30.0
>>> [7] affy_1.40.0          Biobase_2.22.0       BiocGenerics_0.8.0
>>>
>>> loaded via a namespace (and not attached):
>>>   [1] BiocInstaller_1.12.0  compiler_3.0.2        DBI_0.2-7
>>>   [4] grid_3.0.2            IRanges_1.20.6        lattice_0.20-24
>>>   [7] preprocessCore_1.24.0 RSQLite_0.11.4        stats4_3.0.2
>>> [10] tools_3.0.2           zlibbioc_1.8.0
>>>
>>>
>>> --
>>> Sent via the guest posting facility at bioconductor.org.
>>
>> --
>> James W. MacDonald, M.S.
>> Biostatistician
>> University of Washington
>> Environmental and Occupational Health Sciences
>> 4225 Roosevelt Way NE, # 100
>> Seattle WA 98105-6099
>>
>>
>
>
> ________________________________
> This email is intended only for the use of the individual or entity to which it is addressed and may contain information that is privileged and confidential. If the reader of this email message is not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication is prohibited. If you have received this email in error, please notify the sender and destroy/delete all copies of the transmittal.
>
> Thank you.

--
James W. MacDonald, M.S.
Biostatistician
University of Washington
Environmental and Occupational Health Sciences
4225 Roosevelt Way NE, # 100
Seattle WA 98105-6099



More information about the Bioconductor mailing list