vignettes/topic1_09_gene_id.Rmd
topic1_09_gene_id.Rmd
Gene ID type conversion is a very common task in gene set enrichment analysis. There are two types of packages for gene ID conversion: biomaRt which uses the Ensembl biomart web service and org.*.db family packages where the source information is from NCBI. Here we only introduce the org.*.db packages because they should be enough in applications.
We take org.Hs.eg.db (for human) as an example.
library(org.Hs.eg.db)
## Loading required package: AnnotationDbi
## Loading required package: stats4
## Loading required package: BiocGenerics
##
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:stats':
##
## IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
##
## anyDuplicated, aperm, append, as.data.frame, basename, cbind,
## colnames, dirname, do.call, duplicated, eval, evalq, Filter, Find,
## get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply,
## match, mget, order, paste, pmax, pmax.int, pmin, pmin.int,
## Position, rank, rbind, Reduce, rownames, sapply, saveRDS, setdiff,
## table, tapply, union, unique, unsplit, which.max, which.min
## Loading required package: Biobase
## Welcome to Bioconductor
##
## Vignettes contain introductory material; view with
## 'browseVignettes()'. To cite Bioconductor, see
## 'citation("Biobase")', and for packages 'citation("pkgname")'.
## Loading required package: IRanges
## Loading required package: S4Vectors
##
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:utils':
##
## findMatches
## The following objects are masked from 'package:base':
##
## expand.grid, I, unname
##
Note: it is the same for the OrgDb
objects for other orgainsms on AnnotationHub.
We need the following three types of information:
keys
: Gene IDs in one ID type;keytypes
: The name of the input ID type;columns
: The name of the output ID type;To get the valid name of ID types:
keytypes(org.Hs.eg.db)
## [1] "ACCNUM" "ALIAS" "ENSEMBL" "ENSEMBLPROT" "ENSEMBLTRANS"
## [6] "ENTREZID" "ENZYME" "EVIDENCE" "EVIDENCEALL" "GENENAME"
## [11] "GENETYPE" "GO" "GOALL" "IPI" "MAP"
## [16] "OMIM" "ONTOLOGY" "ONTOLOGYALL" "PATH" "PFAM"
## [21] "PMID" "PROSITE" "REFSEQ" "SYMBOL" "UCSCKG"
## [26] "UNIPROT"
columns(org.Hs.eg.db)
## [1] "ACCNUM" "ALIAS" "ENSEMBL" "ENSEMBLPROT" "ENSEMBLTRANS"
## [6] "ENTREZID" "ENZYME" "EVIDENCE" "EVIDENCEALL" "GENENAME"
## [11] "GENETYPE" "GO" "GOALL" "IPI" "MAP"
## [16] "OMIM" "ONTOLOGY" "ONTOLOGYALL" "PATH" "PFAM"
## [21] "PMID" "PROSITE" "REFSEQ" "SYMBOL" "UCSCKG"
## [26] "UNIPROT"
For example, we want to convert the following two genes into Entrez IDs.
genes = c("TP53", "MDM2")
select()
. The following function call can be read as “select ‘ENTREZID’ for the genes where their ‘SYMBOL’ are in ‘gene’”.map = select(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", columns = "ENTREZID")
## 'select()' returned 1:1 mapping between keys and columns
map
## SYMBOL ENTREZID
## 1 TP53 7157
## 2 MDM2 4193
What if we convert them to Ensembl gene IDs:
map = select(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", columns = "ENSEMBL")
## 'select()' returned 1:1 mapping between keys and columns
map
## SYMBOL ENSEMBL
## 1 TP53 ENSG00000141510
## 2 MDM2 ENSG00000135679
If you want to map to multiple ID types:
## 'select()' returned 1:1 mapping between keys and columns
## SYMBOL ENTREZID ENSEMBL
## 1 TP53 7157 ENSG00000141510
## 2 MDM2 4193 ENSG00000135679
Note the argument is named column
instead of columns
, so you can only map to one gene ID type.
mapIds(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", column = "ENTREZID")
## 'select()' returned 1:1 mapping between keys and columns
## TP53 MDM2
## "7157" "4193"
mapIds(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", column = "ENSEMBL")
## 'select()' returned 1:1 mapping between keys and columns
## TP53 MDM2
## "ENSG00000141510" "ENSG00000135679"
Now there might be some problems if the mapping is not 1:1.
genes = c("TP53", "MMD2")
map = select(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", columns = "ENTREZID")
## 'select()' returned 1:many mapping between keys and columns
map
## SYMBOL ENTREZID
## 1 TP53 7157
## 2 MMD2 221938
## 3 MMD2 100505381
Usually it is hard to pick one unique gene for such 1:mapping case, but we can add an additional column “GENETYPE” when querying:
## 'select()' returned 1:many mapping between keys and columns
map
## SYMBOL ENTREZID GENETYPE
## 1 TP53 7157 protein-coding
## 2 MMD2 221938 protein-coding
## 3 MMD2 100505381 unknown
For “MMD2”, adding the “GENETYPE” column works because the second hit of it is annotated to “unknown”. We can simply remove it.
map[map$GENETYPE == "protein-coding", ]
## SYMBOL ENTREZID GENETYPE
## 1 TP53 7157 protein-coding
## 2 MMD2 221938 protein-coding
And it is always a good idea to only inlucde protein-coding genes in gene set enrichment analysis.
But for mapIds()
, it is not as flexible as select()
. The multiVals
argument controls how to select the gene when the mapping is not 1-vs-1.
mapIds(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", column = "ENTREZID", multiVals = "first")
## 'select()' returned 1:many mapping between keys and columns
## TP53 MMD2
## "7157" "221938"
mapIds(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", column = "ENTREZID", multiVals = "asNA")
## 'select()' returned 1:many mapping between keys and columns
## TP53 MMD2
## "7157" NA
mapIds(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", column = "ENTREZID", multiVals = "list")
## 'select()' returned 1:many mapping between keys and columns
## $TP53
## [1] "7157"
##
## $MMD2
## [1] "221938" "100505381"
mapIds(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", column = "ENTREZID", multiVals = "filter")
## 'select()' returned 1:many mapping between keys and columns
## TP53
## "7157"
gene_type = as.list(org.Hs.egGENETYPE)
# this is very slow
mapIds(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", column = "ENTREZID",
multiVals = function(x) {
x2 = x[sapply(as.list(gene_type[x]), function(y) y == "protein-coding")]
if(length(x2)) {
x2[1]
} else {
NA
}
})
## 'select()' returned 1:many mapping between keys and columns
## TP53 MMD2
## "7157" "221938"
In org.*.db, there are also pre-generated objects that already contains mapping between EntreZ IDs to a specific gene ID type.
ls(envir = asNamespace("org.Hs.eg.db"))
## [1] "datacache" "org.Hs.eg"
## [3] "org.Hs.eg_dbconn" "org.Hs.eg_dbfile"
## [5] "org.Hs.eg_dbInfo" "org.Hs.eg_dbschema"
## [7] "org.Hs.eg.db" "org.Hs.egACCNUM"
## [9] "org.Hs.egACCNUM2EG" "org.Hs.egALIAS2EG"
## [11] "org.Hs.egCHR" "org.Hs.egCHRLENGTHS"
## [13] "org.Hs.egCHRLOC" "org.Hs.egCHRLOCEND"
## [15] "org.Hs.egENSEMBL" "org.Hs.egENSEMBL2EG"
## [17] "org.Hs.egENSEMBLPROT" "org.Hs.egENSEMBLPROT2EG"
## [19] "org.Hs.egENSEMBLTRANS" "org.Hs.egENSEMBLTRANS2EG"
## [21] "org.Hs.egENZYME" "org.Hs.egENZYME2EG"
## [23] "org.Hs.egGENENAME" "org.Hs.egGENETYPE"
## [25] "org.Hs.egGO" "org.Hs.egGO2ALLEGS"
## [27] "org.Hs.egGO2EG" "org.Hs.egMAP"
## [29] "org.Hs.egMAP2EG" "org.Hs.egMAPCOUNTS"
## [31] "org.Hs.egOMIM" "org.Hs.egOMIM2EG"
## [33] "org.Hs.egORGANISM" "org.Hs.egPATH"
## [35] "org.Hs.egPATH2EG" "org.Hs.egPFAM"
## [37] "org.Hs.egPMID" "org.Hs.egPMID2EG"
## [39] "org.Hs.egPROSITE" "org.Hs.egREFSEQ"
## [41] "org.Hs.egREFSEQ2EG" "org.Hs.egSYMBOL"
## [43] "org.Hs.egSYMBOL2EG" "org.Hs.egUCSCKG"
## [45] "org.Hs.egUNIPROT"
The following six objects can be used to convert between major gene ID types:
org.Hs.egENSEMBL
: Entrez -> Ensemblorg.Hs.egENSEMBL2EG
: Ensembl -> Entrezorg.Hs.egREFSEQ
: Entrez -> RefSeqorg.Hs.egREFSEQ2EG
: RefSeq -> Entrezorg.Hs.egSYMBOL
: Entrez -> Symbolorg.Hs.egSYMBOL2EG
: Symbol -> Entrezorg.Hs.egSYMBOL
## SYMBOL map for Human (object of class "AnnDbBimap")
If you have a single gene, you can use [[
:
org.Hs.egSYMBOL2EG[["TP53"]]
## [1] "7157"
If you have multiple genes, use [
+ as.list()
:
lt = as.list(org.Hs.egSYMBOL2EG)
lt[genes]
## $TP53
## [1] "7157"
##
## $MMD2
## [1] "221938" "100505381"
# or
as.list(org.Hs.egSYMBOL2EG[genes])
## $TP53
## [1] "7157"
##
## $MMD2
## [1] "221938" "100505381"
You can also use toTable()
, but it is less used for converting gene IDs:
tb = toTable(org.Hs.egSYMBOL2EG)
As you can see, the drawback is you cannot use additional information to filter genes, such as gene types.
If the mappig is 1:1, all the methods metioned is OK. When the mapping is 1:many, use select()
+ filtering by the “GENETYPE” column is safer.
In the GSEAtraining package, there is one such function. It also automatically detect the input gene ID type.
library(GSEAtraining)
convert_to_entrez_id(genes)
In the object diff_gene
from the following code, there is a vector of gene symbols (human), try to convert them to EntreZ IDs (do not use convert_to_entrez_id()
).
lt = readRDS(system.file("extdata", "ora.rds", package = "GSEAtraining"))
diff_gene = lt$diff_gene
head(diff_gene)
## [1] "FGR" "NIPAL3" "LAP3" "CASP10" "CAMKK1" "PRSS22"
Now we know gene ID mapping between different ID types is not always 1:1. Count how many (the percent) gene symbols can not be uniquely mapped to EntreZ IDs, and how many (the percent) Ensembl IDs can not be uniquely mapped to EntreZ IDs. And recalculate these two numbers only taking into account the protein-coding genes.
all_symbols = keys(org.Hs.eg.db, keytype = "SYMBOL")
# use select
map = select(org.Hs.eg.db, keys = all_symbols, keytype = "SYMBOL", columns = "ENTREZID")
## 'select()' returned 1:many mapping between keys and columns
## [1] 8.799081e-05
# use mapIds
map = mapIds(org.Hs.eg.db, keys = all_symbols, keytype = "SYMBOL", column = "ENTREZID",
multiVals = "list")
## 'select()' returned 1:many mapping between keys and columns
## [1] 8.799081e-05
# use org.Hs.egSYMBOL2EG
lt = as.list(org.Hs.egSYMBOL2EG)
n = sapply(lt, length)
sum(n > 1)/length(n)
## [1] 8.799081e-05
Only protein-coding genes:
# use select
map = select(org.Hs.eg.db, keys = all_symbols, keytype = "SYMBOL",
columns = c("ENTREZID", "GENETYPE"))
## 'select()' returned 1:many mapping between keys and columns
## [1] 0
Ensembl -> Entrez
all_ids = keys(org.Hs.eg.db, keytype = "ENSEMBL")
# use select
map = select(org.Hs.eg.db, keys = all_ids, keytype = "ENSEMBL", columns = "ENTREZID")
## 'select()' returned 1:many mapping between keys and columns
## [1] 0.01731188
##
## ENSG00000276700 ENSG00000277739 ENSG00000278189 ENSG00000278233 ENSG00000288326
## 208 208 208 208 208
## ENSG00000288387
## 208
Only protein-coding genes:
# use select
map = select(org.Hs.eg.db, keys = all_ids, keytype = "ENSEMBL", columns = c("ENTREZID", "GENETYPE"))
## 'select()' returned 1:many mapping between keys and columns
## [1] 0.01828566
Last, we add a SYMBOL column in the map table and check what are these Ensembl genes which map to so many Entrez genes:
map = select(org.Hs.eg.db, keys = all_ids, keytype = "ENSEMBL",
columns = c("ENTREZID", "SYMBOL", "GENETYPE"))
## 'select()' returned 1:many mapping between keys and columns
## ENSEMBL ENTREZID SYMBOL GENETYPE
## 6361 ENSG00000258992 7258 TSPY1 protein-coding
## 6362 ENSG00000258992 64591 TSPY2 protein-coding
## 6363 ENSG00000258992 728137 TSPY3 protein-coding
## 6364 ENSG00000258992 728403 TSPY8 protein-coding
## 6365 ENSG00000258992 124905614 LOC124905614 protein-coding
## 6366 ENSG00000258992 124905615 LOC124905615 protein-coding
## 6367 ENSG00000258992 124905616 LOC124905616 protein-coding
## 6368 ENSG00000258992 124905617 LOC124905617 protein-coding
## 6369 ENSG00000258992 124905618 LOC124905618 protein-coding
## 6370 ENSG00000258992 124905619 LOC124905619 protein-coding
## 6371 ENSG00000258992 124905620 LOC124905620 protein-coding
## 6372 ENSG00000258992 124905621 LOC124905621 protein-coding
## 6373 ENSG00000258992 124905623 LOC124905623 protein-coding
## 6374 ENSG00000258992 124905624 LOC124905624 protein-coding
## 6375 ENSG00000258992 124905625 LOC124905625 protein-coding
## 6376 ENSG00000258992 124905626 LOC124905626 protein-coding
## 6377 ENSG00000258992 124905627 LOC124905627 protein-coding
## 6378 ENSG00000258992 124905628 LOC124905628 protein-coding
## 6379 ENSG00000258992 124905629 LOC124905629 protein-coding
## 6380 ENSG00000258992 124908978 LOC124908978 protein-coding
## 6381 ENSG00000258992 124908979 LOC124908979 protein-coding
## 6382 ENSG00000258992 124908980 LOC124908980 protein-coding
## 6383 ENSG00000258992 124908981 LOC124908981 protein-coding
## 6384 ENSG00000258992 124908988 LOC124908988 protein-coding
## 6385 ENSG00000258992 124909015 LOC124909015 protein-coding
## 6386 ENSG00000258992 124909084 LOC124909084 protein-coding
## 6387 ENSG00000258992 124909294 LOC124909294 protein-coding
## 6388 ENSG00000258992 124909306 LOC124909306 protein-coding
## 6389 ENSG00000258992 124909318 LOC124909318 protein-coding
## 6390 ENSG00000258992 124909320 LOC124909320 protein-coding
## 6391 ENSG00000258992 124909330 LOC124909330 protein-coding
## 6392 ENSG00000258992 128966595 LOC128966595 protein-coding
## 6393 ENSG00000258992 128966599 LOC128966599 protein-coding
## 6394 ENSG00000258992 128966647 LOC128966647 protein-coding
## 6395 ENSG00000258992 128966655 LOC128966655 protein-coding
## 6396 ENSG00000258992 128966656 LOC128966656 protein-coding
## 26612 ENSG00000284234 646066 TAF11L5 protein-coding
## 26613 ENSG00000284234 124906475 LOC124906475 protein-coding
## 26614 ENSG00000284234 124906476 LOC124906476 protein-coding
## 26615 ENSG00000284234 124906477 LOC124906477 protein-coding
## 26616 ENSG00000284234 124906478 LOC124906478 protein-coding
## 26617 ENSG00000284234 124906479 LOC124906479 protein-coding
## 26618 ENSG00000284234 124906480 LOC124906480 protein-coding
## 26619 ENSG00000284234 124906481 LOC124906481 protein-coding
## 26620 ENSG00000284234 124906482 LOC124906482 protein-coding
## 26621 ENSG00000284234 124906483 LOC124906483 protein-coding
## 26622 ENSG00000284234 124906484 LOC124906484 protein-coding
## 26623 ENSG00000284234 124906485 LOC124906485 protein-coding
## 26624 ENSG00000284234 124906486 LOC124906486 protein-coding
## 26625 ENSG00000284234 124906487 LOC124906487 protein-coding
## 26626 ENSG00000284234 124906488 LOC124906488 protein-coding
## 26627 ENSG00000284234 124906489 LOC124906489 protein-coding
## 26628 ENSG00000284234 124906490 LOC124906490 protein-coding
## 26629 ENSG00000284234 124906491 LOC124906491 protein-coding
## 26630 ENSG00000284234 128966665 LOC128966665 protein-coding
## 26631 ENSG00000284234 128966671 LOC128966671 protein-coding
## 26632 ENSG00000284234 128966672 LOC128966672 protein-coding
## 26633 ENSG00000284234 128966673 LOC128966673 protein-coding
## 26634 ENSG00000284234 130160542 LOC130160542 protein-coding
## 26635 ENSG00000284234 130160543 LOC130160543 protein-coding
## 26636 ENSG00000284234 130160544 LOC130160544 protein-coding
## 26637 ENSG00000284234 130160545 LOC130160545 protein-coding
## 26638 ENSG00000284234 130160546 LOC130160546 protein-coding
## 26639 ENSG00000284234 130160547 LOC130160547 protein-coding
## 26640 ENSG00000284234 130160548 LOC130160548 protein-coding
## 26641 ENSG00000284234 130160549 LOC130160549 protein-coding
## 27433 ENSG00000228927 728137 TSPY3 protein-coding
## 27434 ENSG00000228927 100289087 TSPY10 protein-coding
## 27435 ENSG00000228927 124905614 LOC124905614 protein-coding
## 27436 ENSG00000228927 124905615 LOC124905615 protein-coding
## 27437 ENSG00000228927 124905616 LOC124905616 protein-coding
## 27438 ENSG00000228927 124905617 LOC124905617 protein-coding
## 27439 ENSG00000228927 124905618 LOC124905618 protein-coding
## 27440 ENSG00000228927 124905619 LOC124905619 protein-coding
## 27441 ENSG00000228927 124905620 LOC124905620 protein-coding
## 27442 ENSG00000228927 124905621 LOC124905621 protein-coding
## 27443 ENSG00000228927 124905624 LOC124905624 protein-coding
## 27444 ENSG00000228927 124905625 LOC124905625 protein-coding
## 27445 ENSG00000228927 124905626 LOC124905626 protein-coding
## 27446 ENSG00000228927 124905627 LOC124905627 protein-coding
## 27447 ENSG00000228927 124905628 LOC124905628 protein-coding
## 27448 ENSG00000228927 124905629 LOC124905629 protein-coding
## 27449 ENSG00000228927 124908978 LOC124908978 protein-coding
## 27450 ENSG00000228927 124908979 LOC124908979 protein-coding
## 27451 ENSG00000228927 124908980 LOC124908980 protein-coding
## 27452 ENSG00000228927 124908981 LOC124908981 protein-coding
## 27453 ENSG00000228927 124909197 LOC124909197 protein-coding
## 27454 ENSG00000228927 124909294 LOC124909294 protein-coding
## 27455 ENSG00000228927 124909306 LOC124909306 protein-coding
## 27456 ENSG00000228927 124909318 LOC124909318 protein-coding
## 27457 ENSG00000228927 124909320 LOC124909320 protein-coding
## 27458 ENSG00000228927 124909330 LOC124909330 protein-coding
## 27459 ENSG00000228927 128966595 LOC128966595 protein-coding
## 27460 ENSG00000228927 128966599 LOC128966599 protein-coding
## 27461 ENSG00000228927 128966647 LOC128966647 protein-coding
## 27462 ENSG00000228927 128966655 LOC128966655 protein-coding
## 27463 ENSG00000236424 728137 TSPY3 protein-coding
## 27464 ENSG00000236424 100289087 TSPY10 protein-coding
## 27465 ENSG00000236424 124905614 LOC124905614 protein-coding
## 27466 ENSG00000236424 124905615 LOC124905615 protein-coding
## 27467 ENSG00000236424 124905616 LOC124905616 protein-coding
## 27468 ENSG00000236424 124905617 LOC124905617 protein-coding
## 27469 ENSG00000236424 124905618 LOC124905618 protein-coding
## 27470 ENSG00000236424 124905619 LOC124905619 protein-coding
## 27471 ENSG00000236424 124905620 LOC124905620 protein-coding
## 27472 ENSG00000236424 124905621 LOC124905621 protein-coding
## 27473 ENSG00000236424 124905624 LOC124905624 protein-coding
## 27474 ENSG00000236424 124905625 LOC124905625 protein-coding
## 27475 ENSG00000236424 124905626 LOC124905626 protein-coding
## 27476 ENSG00000236424 124905627 LOC124905627 protein-coding
## 27477 ENSG00000236424 124905628 LOC124905628 protein-coding
## 27478 ENSG00000236424 124905629 LOC124905629 protein-coding
## 27479 ENSG00000236424 124908978 LOC124908978 protein-coding
## 27480 ENSG00000236424 124908979 LOC124908979 protein-coding
## 27481 ENSG00000236424 124908980 LOC124908980 protein-coding
## 27482 ENSG00000236424 124908981 LOC124908981 protein-coding
## 27483 ENSG00000236424 124909093 LOC124909093 protein-coding
## 27484 ENSG00000236424 124909197 LOC124909197 protein-coding
## 27485 ENSG00000236424 124909294 LOC124909294 protein-coding
## 27486 ENSG00000236424 124909306 LOC124909306 protein-coding
## 27487 ENSG00000236424 124909318 LOC124909318 protein-coding
## 27488 ENSG00000236424 128966595 LOC128966595 protein-coding
## 27489 ENSG00000236424 128966599 LOC128966599 protein-coding
## 27490 ENSG00000236424 128966647 LOC128966647 protein-coding
## 27491 ENSG00000236424 128966655 LOC128966655 protein-coding
## 27692 ENSG00000292275 728753 FAM90A19 protein-coding
## 27693 ENSG00000292275 124906721 LOC124906721 protein-coding
## 27694 ENSG00000292275 124906751 LOC124906751 protein-coding
## 27695 ENSG00000292275 124906752 LOC124906752 protein-coding
## 27696 ENSG00000292275 124906754 LOC124906754 protein-coding
## 27697 ENSG00000292275 124906756 LOC124906756 protein-coding
## 27698 ENSG00000292275 124906758 LOC124906758 protein-coding
## 27699 ENSG00000292275 124906759 LOC124906759 protein-coding
## 27700 ENSG00000292275 124906760 LOC124906760 protein-coding
## 27701 ENSG00000292275 124906763 LOC124906763 protein-coding
## 27702 ENSG00000292275 124906764 LOC124906764 protein-coding
## 27703 ENSG00000292275 124906767 LOC124906767 protein-coding
## 27704 ENSG00000292275 128966593 LOC128966593 protein-coding
## 27705 ENSG00000292275 128966604 LOC128966604 protein-coding
## 27706 ENSG00000292275 128966605 LOC128966605 protein-coding
## 27707 ENSG00000292275 130160541 LOC130160541 protein-coding
## 44024 ENSG00000284356 112488738 TAF11L10 protein-coding
## 44025 ENSG00000284356 124906475 LOC124906475 protein-coding
## 44026 ENSG00000284356 124906476 LOC124906476 protein-coding
## 44027 ENSG00000284356 124906477 LOC124906477 protein-coding
## 44028 ENSG00000284356 124906478 LOC124906478 protein-coding
## 44029 ENSG00000284356 124906479 LOC124906479 protein-coding
## 44030 ENSG00000284356 124906480 LOC124906480 protein-coding
## 44031 ENSG00000284356 124906481 LOC124906481 protein-coding
## 44032 ENSG00000284356 124906482 LOC124906482 protein-coding
## 44033 ENSG00000284356 124906483 LOC124906483 protein-coding
## 44034 ENSG00000284356 124906484 LOC124906484 protein-coding
## 44035 ENSG00000284356 124906485 LOC124906485 protein-coding
## 44036 ENSG00000284356 124906486 LOC124906486 protein-coding
## 44037 ENSG00000284356 124906487 LOC124906487 protein-coding
## 44038 ENSG00000284356 124906488 LOC124906488 protein-coding
## 44039 ENSG00000284356 124906489 LOC124906489 protein-coding
## 44040 ENSG00000284356 124906490 LOC124906490 protein-coding
## 44041 ENSG00000284356 124906491 LOC124906491 protein-coding
## 44042 ENSG00000284356 128966665 LOC128966665 protein-coding
## 44043 ENSG00000284356 128966671 LOC128966671 protein-coding
## 44044 ENSG00000284356 128966672 LOC128966672 protein-coding
## 44045 ENSG00000284356 128966673 LOC128966673 protein-coding
## 44046 ENSG00000284356 130160542 LOC130160542 protein-coding
## 44047 ENSG00000284356 130160543 LOC130160543 protein-coding
## 44048 ENSG00000284356 130160544 LOC130160544 protein-coding
## 44049 ENSG00000284356 130160545 LOC130160545 protein-coding
## 44050 ENSG00000284356 130160546 LOC130160546 protein-coding
## 44051 ENSG00000284356 130160547 LOC130160547 protein-coding
## 44052 ENSG00000284356 130160548 LOC130160548 protein-coding
## 44053 ENSG00000284356 130160549 LOC130160549 protein-coding