Utilisation de beadarray via la méthode readBeadSummaryData
Le contenu de cette page est inspirée des vignettes Analysis of Bead-summary Data using bead array (1) et Analysis of Bead-level Data using beadarray (2) du package beadarray
(3) de Bioconductor
Introduction
Cette méthode demande au minimum deux fichiers:
- Le premier fichier est celui contenant les données résumées pour toutes les sondes portant un signal pour un gène spécifique. Selon le service utilisé, le nom du fichier va varier mais vous devriez y retrouver deux mots clés:
probe
etsample
. Dans le cas de notre exemple, il s'appellesample_probe_report.txt
. - Le deuxième fichier est celui contenant les données résumées pour toutes les sondes de contrôle de la puce, sondes pour les valeurs négatifs tout comme les sondes pour les contrôles négatifs. Ces valeurs sont importantes pour générer les valeurs de contrôle de qualité des résultats obtenus.
Un point important s'appliquant aux deux fichiers: la méthode readBeadSummaryData
s'attend à trouver les valeurs nécessaires dans un certain ordre. Le problème est que la nature de l'en-tête peut varier d'un service à l'autre, basé sur la configuration de BeadStudio. Il faut donner à la méthode comme paramètre la valeur du nombre de ligne à ne pas lire avant d'arriver aux données en tant que tel. L'en-tête à l'air de ceci:
[Header] Normalization none [Sample Probe Profile] Blablabla...
La méthode lit à partir de [Sample Probe Profile]
donc il faut lui dire de ne pas lire les trois premières lignes.
Autre point: la méthode peut utiliser les annotations contenus dans divers packages Bioconductor pour les diverses plateformes. Assurez-vous de les avoir installer localement (via biocLite
) et de les charger dans R.
Finalement, les annotations créés dans les packages R s'attendent à avoir des identificateurs uniques de type “ILMN_123456”. Il faut donc s'assurer que le bon identifiacteur de colonne est donné pour le paramètre ProbeID
.
Procédure
- Assurez vous de vous placer dans le répertoire contenant les deux fichiers requis. Démarrez R et chargez les libraries nécessaires:
% R // Blablabla... > library("beadarray") // Chargeons les annotations // Nous assumons que nous avons utiliser la // dernière version de la plateforme Illumina (Human-HT12v4) > library("illuminaHumanv4.db"))
- Invoquons la méthode
readBeadSummaryData
pour lire les données des fichiers. Note: il existe d'autres paramètres à cette méthode mais dans la plupart des cas, les valeurs par défaut (compatibles avec la version 3 de BeadStudio) sont suffisantes. Seulement si par exemple le nom des colonnes attendus ont été changés est il alors nécessaire d'utiliser ces paramétres.
// Nous créons un objet de classe ExpressionSetIllumina > r.bead <- readBeadSummaryData( "sample_probe_report.txt", skip=3, ProbeID="PROBE_ID", qcFile="control_probe_report.txt", qc.skip=3, illuminaAnnotation="Humanv4")
- Après quelques secondes/minutes, le résultat est un objet de la classe
ExpressionSetIllumina
qui est ensuite utilisable pour toute autre procédure (après cette étape, on imaginerait l'évaluation de la qualité viaarrayQualityMetrics
).
Procédure annexe: addition d'annotations supplémentaires
Il est très utile d'ajouter des annotations disponibles dans le package approprié à nos données d'expression. Pour ce faire, la première chose est de connaitre les annotations disponibles; dans le cas précis ci-dessus, nous avons utilisé le package illuminaHumanv4.db
:
> illuminaHumanv4() ####Mappings based on RefSeqID#### Quality control information for illuminaHumanv4: This package has the following mappings: illuminaHumanv4ACCNUM has 37881 mapped keys (of 48107 keys) illuminaHumanv4ALIAS2PROBE has 66610 mapped keys (of 103735 keys) illuminaHumanv4CHR has 34320 mapped keys (of 48107 keys) illuminaHumanv4CHRLENGTHS has 93 mapped keys (of 93 keys) illuminaHumanv4CHRLOC has 33761 mapped keys (of 48107 keys) illuminaHumanv4CHRLOCEND has 33761 mapped keys (of 48107 keys) illuminaHumanv4ENSEMBL has 33476 mapped keys (of 48107 keys) illuminaHumanv4ENSEMBL2PROBE has 23350 mapped keys (of 28553 keys) illuminaHumanv4ENTREZID has 34321 mapped keys (of 48107 keys) illuminaHumanv4ENZYME has 3754 mapped keys (of 48107 keys) illuminaHumanv4ENZYME2PROBE has 969 mapped keys (of 975 keys) illuminaHumanv4GENENAME has 34321 mapped keys (of 48107 keys) illuminaHumanv4GO has 29136 mapped keys (of 48107 keys) illuminaHumanv4GO2ALLPROBES has 18790 mapped keys (of 18826 keys) illuminaHumanv4GO2PROBE has 14671 mapped keys (of 14714 keys) illuminaHumanv4MAP has 34032 mapped keys (of 48107 keys) illuminaHumanv4OMIM has 23815 mapped keys (of 48107 keys) illuminaHumanv4PATH has 9990 mapped keys (of 48107 keys) illuminaHumanv4PATH2PROBE has 229 mapped keys (of 229 keys) illuminaHumanv4PMID has 33866 mapped keys (of 48107 keys) illuminaHumanv4PMID2PROBE has 424611 mapped keys (of 432400 keys) illuminaHumanv4REFSEQ has 34321 mapped keys (of 48107 keys) illuminaHumanv4SYMBOL has 34321 mapped keys (of 48107 keys) illuminaHumanv4UNIGENE has 33429 mapped keys (of 48107 keys) illuminaHumanv4UNIPROT has 30321 mapped keys (of 48107 keys) Additional Information about this package: DB schema: HUMANCHIP_DB DB schema version: 2.1 Organism: Homo sapiens Date for NCBI data: 2014-Sep19 Date for GO data: 20140913 Date for KEGG data: 2011-Mar15 Date for Golden Path data: 2010-Mar22 Date for Ensembl data: 2014-Aug6 ####Custom Mappings based on probe sequence#### illuminaHumanv4ARRAYADDRESS() illuminaHumanv4NUID() illuminaHumanv4PROBEQUALITY() illuminaHumanv4CODINGZONE() illuminaHumanv4PROBESEQUENCE() illuminaHumanv4SECONDMATCHES() illuminaHumanv4OTHERGENOMICMATCHES() illuminaHumanv4REPEATMASK() illuminaHumanv4OVERLAPPINGSNP() illuminaHumanv4ENTREZREANNOTATED() illuminaHumanv4GENOMICLOCATION() illuminaHumanv4SYMBOLREANNOTATED() illuminaHumanv4REPORTERGROUPNAME() illuminaHumanv4REPORTERGROUPID() illuminaHumanv4ENSEMBLREANNOTATED()
Toutes ces lignes contiennent des annotations supplémentaires. Pour les ajouter à notre structure de données, il faut utiliser la méthode addFeatureData
:
> r.bead <- addFeatureData(r.bead,toAdd=c("SYMBOL","PROBEQUALITY","PROBESEQUENCE","GENOMICLOCATION")) > head(fData(r.bead)) Row.names ProbeID TargetID PROBE_ID SYMBOL.x Status ILMN_1762337 ILMN_1762337 ILMN_1762337 7A5 ILMN_1762337 7A5 regular ILMN_2055271 ILMN_2055271 ILMN_2055271 A1BG ILMN_2055271 A1BG regular ILMN_1736007 ILMN_1736007 ILMN_1736007 A1BG ILMN_1736007 A1BG regular ILMN_2383229 ILMN_2383229 ILMN_2383229 A1CF ILMN_2383229 A1CF regular ILMN_1806310 ILMN_1806310 ILMN_1806310 A1CF ILMN_1806310 A1CF regular ILMN_1779670 ILMN_1779670 ILMN_1779670 A1CF ILMN_1779670 A1CF regular SYMBOL.y PROBEQUALITY ILMN_1762337 MACC1 Perfect ILMN_2055271 <NA> Bad ILMN_1736007 <NA> Perfect*** ILMN_2383229 A1CF Perfect ILMN_1806310 A1CF Perfect ILMN_1779670 A1CF Perfect PROBESEQUENCE ILMN_1762337 GTGTTACAAGACCTTCAGTCAGCTTTGGACAGAATGAAAAACCCTGTGAC ILMN_2055271 GGGATTACAGGGGTGAGCCACCACGCCCAGCCCCAGCTTAGTTTTTTAAA ILMN_1736007 GCAGAGCTGGACGCTGTGGAAATGGCTGGATTCCTCTGTGTTCTTTCCCA ILMN_2383229 TGCTGTCCCTAATGCAACTGCACCCGTGTCTGCAGCCCAGCTCAAGCAAG ILMN_1806310 GAGGTCTACCCAACTTTTGCAGTGACTGCCCGAGGGGATGGATATGGCAC ILMN_1779670 GGCACATGCCCAGAGCCAGAAGCGAGCATGAGCACAGCAATTCCTGGCCT GENOMICLOCATION ILMN_1762337 chr7:20180663:20180712:- ILMN_2055271 chr19:58856730:58856779:- ILMN_1736007 chr19:58857369:58857418:- ILMN_2383229 chr10:52566587:52566636:- ILMN_1806310 chr10:52566496:52566545:- ILMN_1779670 chr10:52610480:52610529:-