Los Ensembl IDs son identificadores estables que se usan en las bases de datos para etiquetar inequivocamente, genes, transcripciones, exones o proteínas. A diferencia de los nombres de los genes que pueden cambiar como resultado de las mejoras en el conocimiento científico.
Cargar datos
Para el ejemplo vamos a utilizar un dataset de Drosophila melanogaster.
En ocasiones el servidor y sus mirrors pueden estar caidos. Es cuestion de esperar un tiempo.
Observando los resultados de la consulta, se muestra que el nombre de los genes (external_gene_name) puede aparece duplicado, mientras que el esembl_gene_id es unico.
El dataset original (df.mcf) tiene 11342 genes, mientras que la consulta tiene 10474, luego hay genes que no han podido ser traducidos.
dim(df.mcf)
[1] 11342 9
dim(genesBM)
[1] 10474 3
Por ultimo, vamos a unir los resultados de la consulta al dataset original. Es evidente que no podemos añadirlos como columnas nuevas, ya que no tienen la misma longitud. Además nos tenemos que asegurar que añadimos los datos de manera que los ensembles coincidan.
En este caso vamos a usar la funcion merge() para unir los dataset. Lo vamos a realizar haciendo un left join, es decir vamos a conservar todas las observaciones del primer dataset (df.mcf) añadiendo las observaciones del segundo (genesBM) donde encuentre coincidencias. Si una observación del primer dataset no tiene coincidencia en el segundo las variables se añadiran con valores NA
Al realizar la consulta puede ocurrir que se generen duplicados.
head(df[duplicated(df$ensembl_gene_id), ], 10)
ensembl_gene_id
entrezgene_id
external_gene_name
SRX008026
SRX008174
SRX008201
SRX008239
SRX008008
SRX008168
SRX008211
SRX008255
SRX008261
560
FBgn0003356
43543
Jon99Cii
922.5669
798.7539
839.3100
743.956
2329.09100
1962.368879
1923.834097
1667.50630
2474.319
562
FBgn0003357
43544
Jon99Ciii
3832.7272
3050.6082
3209.8945
2984.222
6375.41557
5092.932163
5578.572854
4558.38713
6456.564
758
FBgn0004403
47219
RpS14a
8884.1384
8935.2133
9724.8054
9143.730
8642.69277
8314.117015
9362.537932
8565.81671
9098.186
760
FBgn0004404
47218
RpS14b
735.3163
699.4738
814.1307
748.855
1044.88456
1008.370910
979.207894
1024.35666
1019.226
847
FBgn0004828
33736
His3.3B
3911.1111
3983.2399
4044.5417
4150.897
3700.56397
3830.820860
3873.149440
3760.85230
3823.748
1298
FBgn0013674
19893533
mt:CoI
0.0000
0.0000
0.0000
0.000
1.98333
1.647665
5.460267
2.19505
0.000
1336
FBgn0013981
3771938
His4r
4156.2165
4078.0073
4099.5631
4080.210
3043.75105
3193.174549
2952.184395
2960.39074
3125.919
1337
FBgn0013981
318846
His4r
4156.2165
4078.0073
4099.5631
4080.210
3043.75105
3193.174549
2952.184395
2960.39074
3125.919
1338
FBgn0013981
3771893
His4r
4156.2165
4078.0073
4099.5631
4080.210
3043.75105
3193.174549
2952.184395
2960.39074
3125.919
1339
FBgn0013981
3771908
His4r
4156.2165
4078.0073
4099.5631
4080.210
3043.75105
3193.174549
2952.184395
2960.39074
3125.919
Tambien se puede dar el caso de datos faltantes de los genes que no se han ‘traducido’.
head(df[!complete.cases(df),])
ensembl_gene_id
entrezgene_id
external_gene_name
SRX008026
SRX008174
SRX008201
SRX008239
SRX008008
SRX008168
SRX008211
SRX008255
SRX008261
21
FBgn0000054
NA
NA
457.86190
497.9050
494.26034
468.90923
582.10747
604.69301
526.00573
566.32290
633.98924
35
FBgn0000099
NA
NA
83.36073
84.2377
85.79613
82.58401
74.37489
72.49725
91.00445
82.68022
92.45676
49
FBgn0000142
NA
NA
903.90400
812.2921
934.43182
930.11996
537.81309
486.06114
587.88875
561.20111
576.75410
58
FBgn0000171
NA
NA
8949.45833
8890.0860
8856.58579
9277.40418
6353.92949
6338.56682
5791.52327
6530.27370
7053.13026
66
FBgn0000210
NA
NA
314.78006
371.5484
361.83587
328.93633
99.16652
102.15522
96.46472
109.02082
112.26893
75
FBgn0000242
NA
NA
255.05894
221.1240
224.74857
235.85435
79.00266
80.73558
89.18436
93.65547
118.87298
dim(df[!complete.cases(df),])
[1] 909 12
AnnotationDbi
Bioconductor proporciona varias fuentes de anotaciones, entre ellos hay varios paquetes. Los paquetes a nivel de organismo (p. ej.org.Mm.eg.db) usan un identificador de gen central (p. ej. Entrez Gene id) y contiene asignaciones entre este y otros tipos de identificadores. El nombre de los paquetes es del tipo org.<Ab>.<id>.db (p. ej. org.Mm.eg.db), donde <Ab> es una abreviatura de 2 letras del organismo (p. ej. Mm, mus musculus), y <id> es una abreviatura en minuscula que describe el tipo de indentificador central (p. ej. eg, entrez gene).
En nuestro caso nos interesa el paquete org.Dm.eg.db.