и его применение в биоинформатике
Лекция 9
Евгения Коновалова
31 октября 2025
Что из нижеперечисленного является названием гена.
Некоторые дополнительные (обычно полученнные откуда-то извне) данные, которые дополняют и поясняют ваши экспериментальные данные.
ENSG00000075624, ENTREZ: 60)ACTBactin betaprotein-codingENST00000674681, …P60709chr7Доступ к этим сервисам и базам данных можно получить в том числе с помощью R пакетов из Bioconductor.
С каждой новой версией R выходит и новая версия Bioconductor с новыми версиями пакетов. Поэтому определенной версии R соотвествует определенная версия пакета из Bioconductor. Посмотреть соответствие версий можно на сайте.
Пакеты из Bioconductor предпочтительнее устанавливать с помощью специальной системы управления пакетами - BiocManager.
[1] "BSgenome.Mmusculus.UCSC.mm10" "BSgenome.Mmusculus.UCSC.mm10.masked"
[3] "BSgenome.Mmusculus.UCSC.mm39" "BSgenome.Mmusculus.UCSC.mm8"
[5] "BSgenome.Mmusculus.UCSC.mm8.masked" "BSgenome.Mmusculus.UCSC.mm9"
[7] "BSgenome.Mmusculus.UCSC.mm9.masked" "EnsDb.Mmusculus.v75"
[9] "EnsDb.Mmusculus.v79" "PWMEnrich.Mmusculus.background"
[11] "TxDb.Mmusculus.UCSC.mm10.ensGene" "TxDb.Mmusculus.UCSC.mm10.knownGene"
[13] "TxDb.Mmusculus.UCSC.mm39.knownGene" "TxDb.Mmusculus.UCSC.mm39.refGene"
[15] "TxDb.Mmusculus.UCSC.mm9.knownGene"
Использование пакетов Bioconductor строится на работе с объектами класса S4 (объектно-ориентированное программирование).
Что для нас важно, объекты класса S4 имеют свое название, слоты, в которых хранятся данные, и методы - функции, позволяющие работать с объектами этого класса. Также может быть прописано наследование классов.
[1] "TxDb"
attr(,"package")
[1] "GenomicFeatures"
Reference Class "TxDb":
Class fields:
Name: conn packageName user2seqlevels0 user_seqlevels
Class: SQLiteConnection character integer character
Name: user_genome isActiveSeq
Class: character logical
Class Methods:
"import", ".objectParent", "usingMethods", "show", "getClass", "untrace",
"export", "initialize", ".objectPackage", "callSuper", "copy",
"initFields", "getRefClass", "trace", "field", "finalize"
Reference Superclasses:
"AnnotationDb", "envRefClass"
OrgDb object:
| DBSCHEMAVERSION: 2.1
| Db type: OrgDb
| Supporting package: AnnotationDbi
| DBSCHEMA: HUMAN_DB
| ORGANISM: Homo sapiens
| SPECIES: Human
| EGSOURCEDATE: 2023-Sep11
| EGSOURCENAME: Entrez Gene
| EGSOURCEURL: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA
| CENTRALID: EG
| TAXID: 9606
| GOSOURCENAME: Gene Ontology
| GOSOURCEURL: http://current.geneontology.org/ontology/go-basic.obo
| GOSOURCEDATE: 2023-07-27
| GOEGSOURCEDATE: 2023-Sep11
| GOEGSOURCENAME: Entrez Gene
| GOEGSOURCEURL: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA
| KEGGSOURCENAME: KEGG GENOME
| KEGGSOURCEURL: ftp://ftp.genome.jp/pub/kegg/genomes
| KEGGSOURCEDATE: 2011-Mar15
| GPSOURCENAME: UCSC Genome Bioinformatics (Homo sapiens)
| GPSOURCEURL:
| GPSOURCEDATE: 2023-Aug20
| ENSOURCEDATE: 2023-May10
| ENSOURCENAME: Ensembl
| ENSOURCEURL: ftp://ftp.ensembl.org/pub/current_fasta
| UPSOURCENAME: Uniprot
| UPSOURCEURL: http://www.UniProt.org/
| UPSOURCEDATE: Mon Sep 18 16:12:39 2023
Пакет AnnotationDbi предоставляет методы для работы данными из orgDb, TxDb, EnsDb и Go.db.
keys() возвращает Entrez идентификаторы, доступные в аннотацииkeytypes() и columns() возвращают доступные для конвертации идентификаторыselect()По вектору из идентификаторов можно запросить информацию из аннотации org.Hs.eg.db с помощью функции
select(annotationDb, keys, columns, keytype), где
Установите и подгрузите пакет org.Hs.eg.db.
С помощью него и функции select() из пакета AnnotationDbi переведите ENSEMBL идентификаторы генов в символьные названия (SYMBOL), а также достаньте из аннотации полные названия этих генов (GENENAME) и ассоциацию с заболеваниями по базе данных OMIM.
# BiocManager::install("org.Hs.eg.db")
library(org.Hs.eg.db)
gene_info <- select(org.Hs.eg.db,
keys = ens_genes,
columns = c("SYMBOL", "GENENAME", "OMIM"),
keytype = "ENSEMBL")
gene_info %>% head() ENSEMBL SYMBOL GENENAME OMIM
1 ENSG00000167107 ACSF2 acyl-CoA synthetase family member 2 610465
2 ENSG00000181798 LINC00471 long intergenic non-protein coding RNA 471 <NA>
3 ENSG00000280639 LINC02204 long intergenic non-protein coding RNA 2204 <NA>
4 ENSG00000198218 QRICH1 glutamine rich 1 617387
5 ENSG00000198218 QRICH1 glutamine rich 1 617982
6 ENSG00000284269 MIR7855 microRNA 7855 <NA>
mapIds()Работает аналогично функции select(), но только с одной аннотацией (column вместо columns) и позволяет с помощью параметра multiVals указать, как вести себя, если одному гену соответствует несколько аннотаций.
Пакеты TxDb и EnsDb содержат генные разметки - координаты генов, транскриптов и экзонов в геноме.
entrez_genes <- mapIds(org.Hs.eg.db, ens_genes, "ENTREZID", "ENSEMBL")
select(
txdb,
entrez_genes,
c("TXNAME", "TXCHROM", "TXSTART", "TXEND", "TXSTRAND"),
"GENEID") %>%
head() GENEID TXNAME TXCHROM TXSTRAND TXSTART TXEND
1 80221 ENST00000510410.5 chr17 + 50426158 50474670
2 80221 ENST00000504945.1 chr17 + 50426218 50461048
3 80221 ENST00000503408.5 chr17 + 50426218 50461265
4 80221 ENST00000506582.5 chr17 + 50426218 50462426
5 80221 ENST00000504392.5 chr17 + 50426218 50474670
6 80221 ENST00000300441.9 chr17 + 50426218 50474837
Дает доступ к большему количеству ресурсов и версий баз данных. Облегчает работу с немодельными организмами. Обеспесчивает большую воспроизводимость.
AnnotationHub with 71082 records
# snapshotDate(): 2023-10-23
# $dataprovider: Ensembl, BroadInstitute, UCSC, ftp://ftp.ncbi.nlm.nih.gov/g...
# $species: Homo sapiens, Mus musculus, Drosophila melanogaster, Rattus norv...
# $rdataclass: GRanges, TwoBitFile, BigWigFile, EnsDb, Rle, OrgDb, SQLiteFil...
# additional mcols(): taxonomyid, genome, description,
# coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags,
# rdatapath, sourceurl, sourcetype
# retrieve records with, e.g., 'object[["AH5012"]]'
title
AH5012 | Chromosome Band
AH5013 | STS Markers
AH5014 | FISH Clones
AH5015 | Recomb Rate
AH5016 | ENCODE Pilot
... ...
AH116479 | Ensembl 111 EnsDb for Xiphophorus maculatus
AH116480 | Ensembl 111 EnsDb for Xenopus tropicalis
AH116481 | Ensembl 111 EnsDb for Zonotrichia albicollis
AH116482 | Ensembl 111 EnsDb for Zalophus californianus
AH116483 | Ensembl 111 EnsDb for Zosterops lateralis melanops
[1] "UCSC"
[2] "Ensembl"
[3] "RefNet"
[4] "Inparanoid8"
[5] "NHLBI"
[6] "ChEA"
[7] "Pazar"
[8] "NIH Pathway Interaction Database"
[9] "Haemcode"
[10] "BroadInstitute"
[11] "PRIDE"
[12] "Gencode"
[13] "CRIBI"
[14] "Genoscope"
[15] "MISO, VAST-TOOLS, UCSC"
[16] "Stanford"
[17] "dbSNP"
[18] "BioMart"
[19] "GeneOntology"
[20] "KEGG"
[21] "URGI"
[22] "EMBL-EBI"
[23] "MicrosporidiaDB"
[24] "FungiDB"
[25] "TriTrypDB"
[26] "ToxoDB"
[27] "AmoebaDB"
[28] "PlasmoDB"
[29] "PiroplasmaDB"
[30] "CryptoDB"
[31] "TrichDB"
[32] "GiardiaDB"
[33] "The Gene Ontology Consortium"
[34] "ENCODE Project"
[35] "SchistoDB"
[36] "NCBI/UniProt"
[37] "GENCODE"
[38] "http://www.pantherdb.org"
[39] "RMBase v2.0"
[40] "snoRNAdb"
[41] "tRNAdb"
[42] "NCBI"
[43] "DrugAge, DrugBank, Broad Institute"
[44] "DrugAge"
[45] "DrugBank"
[46] "Broad Institute"
[47] "HMDB, EMBL-EBI, EPA"
[48] "STRING"
[49] "OMA"
[50] "OrthoDB"
[51] "PathBank"
[52] "EBI/EMBL"
[53] "NCBI,DBCLS"
[54] "FANTOM5,DLRP,IUPHAR,HPRD,STRING,SWISSPROT,TREMBL,ENSEMBL,CELLPHONEDB,BADERLAB,SINGLECELLSIGNALR,HOMOLOGENE"
[55] "WikiPathways"
[56] "VAST-TOOLS"
[57] "pyGenomeTracks "
[58] "NA"
[59] "UoE"
[60] "TargetScan,miRTarBase,USCS,ENSEMBL"
[61] "TargetScan"
[62] "QuickGO"
[63] "CIS-BP"
[64] "CTCFBSDB 2.0"
[65] "HOCOMOCO v11"
[66] "JASPAR 2022"
[67] "Jolma 2013"
[68] "SwissRegulon"
[69] "ENCODE SCREEN v3"
[70] "MassBank"
[71] "excluderanges"
[72] "ENCODE"
[73] "GitHub"
[74] "Stanford.edu"
[75] "Publication"
[76] "CHM13"
[77] "UCSChub"
[78] "MGI"
[79] "The Human Phenotype Ontology"
[80] "ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/"
[81] "Google DeepMind"
[82] "UWashington"
Для поиска нужной базы данных в AnnotationHub есть функция query().
Например, мы хотим воспользоваться базой данных генов человека Ensembl версии 105. В Bioconductor есть пакеты аннотаций EnsDb, но нет нужной нам версии. Однако ее можно найти в AnnotationHub:
AnnotationHub with 1 record
# snapshotDate(): 2023-10-23
# names(): AH98047
# $dataprovider: Ensembl
# $species: Homo sapiens
# $rdataclass: EnsDb
# $rdatadateadded: 2021-10-20
# $title: Ensembl 105 EnsDb for Homo sapiens
# $description: Gene and protein annotations for Homo sapiens based on Ensem...
# $taxonomyid: 9606
# $genome: GRCh38
# $sourcetype: ensembl
# $sourceurl: http://www.ensembl.org
# $sourcesize: NA
# $tags: c("105", "Annotation", "AnnotationHubSoftware", "Coverage",
# "DataImport", "EnsDb", "Ensembl", "Gene", "Protein", "Sequencing",
# "Transcript")
# retrieve record with 'object[["AH98047"]]'
Скачаем и сохраним локально нужную аннотацию:
EnsDb for Ensembl:
|Backend: SQLite
|Db type: EnsDb
|Type of Gene ID: Ensembl Gene ID
|Supporting package: ensembldb
|Db created by: ensembldb package from Bioconductor
|script_version: 0.3.7
|Creation time: Sat Dec 18 14:48:15 2021
|ensembl_version: 105
|ensembl_host: localhost
|Organism: Homo sapiens
|taxonomy_id: 9606
|genome_build: GRCh38
|DBSCHEMAVERSION: 2.2
| No. of genes: 69329.
| No. of transcripts: 268255.
|Protein data available.
Работать со скачанной аннотацией можно с помощью функций пакета AnnotationDbi:
[1] "ENTREZID" "EXONID" "GENEBIOTYPE"
[4] "GENEID" "GENENAME" "PROTDOMID"
[7] "PROTEINDOMAINID" "PROTEINDOMAINSOURCE" "PROTEINID"
[10] "SEQNAME" "SEQSTRAND" "SYMBOL"
[13] "TXBIOTYPE" "TXID" "TXNAME"
[16] "UNIPROTID"
В Ensembl основным идентификатором является ENSEMBL ID (GENEID).
Функции genes(), transcripts() и exons() пакета GenomicFeatures позволяют получать координаты этих участков в геноме в виде GRanges объекта.
GRanges object with 69329 ranges and 9 metadata columns:
seqnames ranges strand | gene_id
<Rle> <IRanges> <Rle> | <character>
ENSG00000223972 1 11869-14409 + | ENSG00000223972
ENSG00000227232 1 14404-29570 - | ENSG00000227232
ENSG00000278267 1 17369-17436 - | ENSG00000278267
ENSG00000243485 1 29554-31109 + | ENSG00000243485
ENSG00000284332 1 30366-30503 + | ENSG00000284332
... ... ... ... . ...
ENSG00000224240 Y 26549425-26549743 + | ENSG00000224240
ENSG00000227629 Y 26586642-26591601 - | ENSG00000227629
ENSG00000237917 Y 26594851-26634652 - | ENSG00000237917
ENSG00000231514 Y 26626520-26627159 - | ENSG00000231514
ENSG00000235857 Y 56855244-56855488 + | ENSG00000235857
gene_name gene_biotype seq_coord_system
<character> <character> <character>
ENSG00000223972 DDX11L1 transcribed_unproces.. chromosome
ENSG00000227232 WASH7P unprocessed_pseudogene chromosome
ENSG00000278267 MIR6859-1 miRNA chromosome
ENSG00000243485 MIR1302-2HG lncRNA chromosome
ENSG00000284332 MIR1302-2 miRNA chromosome
... ... ... ...
ENSG00000224240 CYCSP49 processed_pseudogene chromosome
ENSG00000227629 SLC25A15P1 unprocessed_pseudogene chromosome
ENSG00000237917 PARP4P1 unprocessed_pseudogene chromosome
ENSG00000231514 CCNQP2 processed_pseudogene chromosome
ENSG00000235857 CTBP2P1 processed_pseudogene chromosome
description gene_id_version canonical_transcript
<character> <character> <character>
ENSG00000223972 DEAD/H-box helicase .. ENSG00000223972.5 ENST00000450305
ENSG00000227232 WASP family homolog .. ENSG00000227232.5 ENST00000488147
ENSG00000278267 microRNA 6859-1 [Sou.. ENSG00000278267.1 ENST00000619216
ENSG00000243485 MIR1302-2 host gene .. ENSG00000243485.5 ENST00000473358
ENSG00000284332 microRNA 1302-2 [Sou.. ENSG00000284332.1 ENST00000607096
... ... ... ...
ENSG00000224240 CYCS pseudogene 49 [.. ENSG00000224240.1 ENST00000420810
ENSG00000227629 solute carrier famil.. ENSG00000227629.1 ENST00000456738
ENSG00000237917 poly(ADP-ribose) pol.. ENSG00000237917.1 ENST00000435945
ENSG00000231514 CCNQ pseudogene 2 [S.. ENSG00000231514.1 ENST00000435741
ENSG00000235857 CTBP2 pseudogene 1 [.. ENSG00000235857.1 ENST00000431853
symbol entrezid
<character> <list>
ENSG00000223972 DDX11L1 102725121,100287596,100287102,...
ENSG00000227232 WASH7P <NA>
ENSG00000278267 MIR6859-1 102466751
ENSG00000243485 MIR1302-2HG <NA>
ENSG00000284332 MIR1302-2 100302278
... ... ...
ENSG00000224240 CYCSP49 <NA>
ENSG00000227629 SLC25A15P1 <NA>
ENSG00000237917 PARP4P1 <NA>
ENSG00000231514 CCNQP2 <NA>
ENSG00000235857 CTBP2P1 <NA>
-------
seqinfo: 456 sequences (1 circular) from GRCh38 genome
GRanges object with 15 ranges and 12 metadata columns:
seqnames ranges strand | tx_id
<Rle> <IRanges> <Rle> | <character>
ENST00000499732 11 65422774-65426457 + | ENST00000499732
ENST00000687132 11 65422797-65426532 + | ENST00000687132
ENST00000501122 11 65422798-65445540 + | ENST00000501122
ENST00000685861 11 65422798-65426529 + | ENST00000685861
ENST00000601801 11 65422800-65426405 + | ENST00000601801
... ... ... ... . ...
ENST00000693290 11 65425414-65426529 + | ENST00000693290
ENST00000616315 11 65425551-65426385 + | ENST00000616315
ENST00000687943 11 65431820-65433023 + | ENST00000687943
ENST00000691530 11 65440182-65440864 + | ENST00000691530
ENST00000693747 11 65440182-65440864 + | ENST00000693747
tx_biotype tx_cds_seq_start tx_cds_seq_end gene_id
<character> <integer> <integer> <character>
ENST00000499732 lncRNA <NA> <NA> ENSG00000245532
ENST00000687132 lncRNA <NA> <NA> ENSG00000245532
ENST00000501122 lncRNA <NA> <NA> ENSG00000245532
ENST00000685861 lncRNA <NA> <NA> ENSG00000245532
ENST00000601801 lncRNA <NA> <NA> ENSG00000245532
... ... ... ... ...
ENST00000693290 lncRNA <NA> <NA> ENSG00000245532
ENST00000616315 lncRNA <NA> <NA> ENSG00000245532
ENST00000687943 lncRNA <NA> <NA> ENSG00000245532
ENST00000691530 lncRNA <NA> <NA> ENSG00000245532
ENST00000693747 lncRNA <NA> <NA> ENSG00000245532
tx_support_level tx_id_version gc_content
<integer> <character> <numeric>
ENST00000499732 2 ENST00000499732.3 47.6024
ENST00000687132 <NA> ENST00000687132.1 48.2334
ENST00000501122 <NA> ENST00000501122.2 44.0531
ENST00000685861 <NA> ENST00000685861.1 48.2315
ENST00000601801 4 ENST00000601801.3 48.4393
... ... ... ...
ENST00000693290 <NA> ENST00000693290.1 36.6487
ENST00000616315 2 ENST00000616315.2 36.5234
ENST00000687943 <NA> ENST00000687943.1 33.2226
ENST00000691530 <NA> ENST00000691530.1 45.0952
ENST00000693747 <NA> ENST00000693747.1 45.0952
tx_external_name tx_is_canonical tx_name symbol
<character> <integer> <character> <character>
ENST00000499732 NEAT1-201 0 ENST00000499732 NEAT1
ENST00000687132 NEAT1-211 0 ENST00000687132 NEAT1
ENST00000501122 NEAT1-202 1 ENST00000501122 NEAT1
ENST00000685861 NEAT1-210 0 ENST00000685861 NEAT1
ENST00000601801 NEAT1-203 0 ENST00000601801 NEAT1
... ... ... ... ...
ENST00000693290 NEAT1-214 0 ENST00000693290 NEAT1
ENST00000616315 NEAT1-205 0 ENST00000616315 NEAT1
ENST00000687943 NEAT1-212 0 ENST00000687943 NEAT1
ENST00000691530 NEAT1-213 0 ENST00000691530 NEAT1
ENST00000693747 NEAT1-215 0 ENST00000693747 NEAT1
-------
seqinfo: 1 sequence from GRCh38 genome
AnnotationHub with 1989 records
# snapshotDate(): 2023-10-23
# $dataprovider: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/, NCBI
# $species: Coffea arabica, Escherichia coli, greater Indian_fruit_bat, Zoot...
# $rdataclass: OrgDb, TxDb
# additional mcols(): taxonomyid, genome, description,
# coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags,
# rdatapath, sourceurl, sourcetype
# retrieve records with, e.g., 'object[["AH111588"]]'
title
AH111588 | OrgDb Sqlite file for Coffea arabica
AH111589 | TxDb Sqlite file for Coffea arabica
AH114075 | org.Ag.eg.db.sqlite
AH114076 | org.At.tair.db.sqlite
AH114077 | org.Bt.eg.db.sqlite
... ...
AH116159 | org.Aegialitis_vocifera.eg.sqlite
AH116160 | org.Charadrius_vociferous.eg.sqlite
AH116161 | org.Charadrius_vociferus.eg.sqlite
AH116162 | org.Oxyechus_vociferus.eg.sqlite
AH116163 | org.Drosophila_erecta.eg.sqlite
Раньше Вы занимались пингвинами, но аннотации для пингвина Адели в Bioconductor нынешней версии нет :(
Поэтому рассмотрим кроличьего сыча
AnnotationHub with 1 record
# snapshotDate(): 2023-10-23
# names(): AH115977
# $dataprovider: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/
# $species: Athene cunicularia
# $rdataclass: OrgDb
# $rdatadateadded: 2023-10-20
# $title: org.Athene_cunicularia.eg.sqlite
# $description: NCBI gene ID based annotations about Athene cunicularia
# $taxonomyid: 194338
# $genome: NCBI genomes
# $sourcetype: NCBI/UniProt
# $sourceurl: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/, ftp://ftp.uniprot.org/p...
# $sourcesize: NA
# $tags: c("NCBI", "Gene", "Annotation")
# retrieve record with 'object[["AH115977"]]'
ENTREZID SYMBOL GENENAME
1 113481478 XPO4 exportin 4
2 113482758 LOC113482758 uncharacterized LOC113482758
3 113485059 TNIP1 TNFAIP3 interacting protein 1
4 113481985 SSB small RNA binding exonuclease protection factor La
5 113486688 CASR calcium sensing receptor
biomart version
1 ENSEMBL_MART_ENSEMBL Ensembl Genes 115
2 ENSEMBL_MART_MOUSE Mouse strains 115
3 ENSEMBL_MART_SNP Ensembl Variation 115
4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 115
Данные по каким организмам доступны:
dataset description
1 abrachyrhynchus_gene_ensembl Pink-footed goose genes (ASM259213v1)
2 acalliptera_gene_ensembl Eastern happy genes (fAstCal1.3)
3 acarolinensis_gene_ensembl Green anole genes (AnoCar2.0v2)
4 acchrysaetos_gene_ensembl Golden eagle genes (bAquChr1.2)
5 acitrinellus_gene_ensembl Midas cichlid genes (Midas_v5)
6 amelanoleuca_gene_ensembl Giant panda genes (ASM200744v2)
version
1 ASM259213v1
2 fAstCal1.3
3 AnoCar2.0v2
4 bAquChr1.2
5 Midas_v5
6 ASM200744v2
Для создания mart объекта лучше использовать функцию useEnsembl().
Запрашивать информацию из датасета можно с помощью функции
getBM(attributes, filters, values, mart), где
mart объект который мы только что создали name description page
1 ensembl_gene_id Gene stable ID feature_page
2 ensembl_gene_id_version Gene stable ID version feature_page
3 ensembl_transcript_id Transcript stable ID feature_page
4 ensembl_transcript_id_version Transcript stable ID version feature_page
5 ensembl_peptide_id Protein stable ID feature_page
6 ensembl_peptide_id_version Protein stable ID version feature_page
name description
1 chromosome_name Chromosome/scaffold name
2 start Start
3 end End
4 band_start Band Start
5 band_end Band End
6 marker_start Marker Start
two_genes <- c("NEAT1", "MALAT1")
getBM(
attributes = c("ensembl_gene_id", "external_gene_name", "description"),
filters = "external_gene_name",
values = two_genes,
mart = mart) ensembl_gene_id external_gene_name
1 ENSG00000245532 NEAT1
2 ENSG00000251562 MALAT1
description
1 nuclear paraspeckle assembly transcript 1 [Source:HGNC Symbol;Acc:HGNC:30815]
2 metastasis associated lung adenocarcinoma transcript 1 [Source:HGNC Symbol;Acc:HGNC:29665]
По умолчанию biomaRt предлагает работать с самой свежей версией Ensembl. Однако если вы в своем анализе данных использовали другую версию, то лучше придерживаться именно ее. Доступные предыдущие версии можно вывести с помощью функции listEnsemblArchives().
Явно выбрать используемую версию можно, используя параметр host в функции useEnsembl()
name date url version
1 Ensembl GRCh37 Feb 2014 https://grch37.ensembl.org GRCh37
2 Ensembl 115 Sep 2025 https://sep2025.archive.ensembl.org 115
3 Ensembl 114 May 2025 https://may2025.archive.ensembl.org 114
4 Ensembl 113 Oct 2024 https://oct2024.archive.ensembl.org 113
5 Ensembl 112 May 2024 https://may2024.archive.ensembl.org 112
6 Ensembl 111 Jan 2024 https://jan2024.archive.ensembl.org 111
current_release
1
2 *
3
4
5
6
Установите и подгрузите пакет biomaRt.
С помощью этого пакета добудьте информацию о о GC-составе генов из списка, используя версию Ensembl от мая 2025-го года.
# BiocManager::install("biomaRt")
library(biomaRt)
#mart creation
mart <- useEnsembl("ensembl","hsapiens_gene_ensembl", host = "https://may2025.archive.ensembl.org")
#GC-content attribute name
listAttributes(mart = mart) %>%
dplyr::filter(str_detect(name, "gc"), page == "feature_page") name description page
1 percentage_gene_gc_content Gene % GC content feature_page
gene_info <- getBM(attributes = "percentage_gene_gc_content",
filters = "ensembl_gene_id",
values = ens_genes,
mart = mart)
gene_info percentage_gene_gc_content
1 49.96
2 46.77
3 46.08
4 49.19
5 55.74
getLDS() – удобная функция для сопоставления mart разных организмов, но работает не всегда :(
ensembl <- useEnsembl("ensembl", host = "https://sep2025.archive.ensembl.org")
human <- useDataset("hsapiens_gene_ensembl", mart = ensembl)
chimpz <- useDataset("ptroglodytes_gene_ensembl", mart = ensembl)
hs2pt <- getLDS(
# человек
mart = human,
attributes = c("ensembl_gene_id", "external_gene_name", "chromosome_name"),
# шимпанзе
martL = chimpz,
attributesL = c("ensembl_gene_id", "external_gene_name", "chromosome_name"))
hs2pt %>% head()В mart для H.sapiens есть аттрибуты, связанные с P.troglodytes
ensembl <- useEnsembl("ensembl","hsapiens_gene_ensembl") #mart for H.sapiens
listAttributes(ensembl) %>% dplyr::filter(str_detect(name, "ptroglodytes")) name
1 ptroglodytes_homolog_ensembl_gene
2 ptroglodytes_homolog_associated_gene_name
3 ptroglodytes_homolog_ensembl_peptide
4 ptroglodytes_homolog_chromosome
5 ptroglodytes_homolog_chrom_start
6 ptroglodytes_homolog_chrom_end
7 ptroglodytes_homolog_canonical_transcript_protein
8 ptroglodytes_homolog_subtype
9 ptroglodytes_homolog_orthology_type
10 ptroglodytes_homolog_perc_id
11 ptroglodytes_homolog_perc_id_r1
12 ptroglodytes_homolog_goc_score
13 ptroglodytes_homolog_wga_coverage
14 ptroglodytes_homolog_orthology_confidence
description page
1 Chimpanzee gene stable ID homologs
2 Chimpanzee gene name homologs
3 Chimpanzee protein or transcript stable ID homologs
4 Chimpanzee chromosome/scaffold name homologs
5 Chimpanzee chromosome/scaffold start (bp) homologs
6 Chimpanzee chromosome/scaffold end (bp) homologs
7 Query protein or transcript ID homologs
8 Last common ancestor with Chimpanzee homologs
9 Chimpanzee homology type homologs
10 %id. target Chimpanzee gene identical to query gene homologs
11 %id. query gene identical to target Chimpanzee gene homologs
12 Chimpanzee Gene-order conservation score homologs
13 Chimpanzee Whole-genome alignment coverage homologs
14 Chimpanzee orthology confidence [0 low, 1 high] homologs
Выведем Ensembl ID, имя гена и хромосому, на которой находится ген, для ортологов человека и шимпанзе
#no filters -- all human genes used in search
hs2pt <- getBM(attributes = c("ensembl_gene_id", "external_gene_name", "chromosome_name",
"ptroglodytes_homolog_ensembl_gene",
"ptroglodytes_homolog_chromosome"),
mart = mart)
hs2pt %>% head(n=10) ensembl_gene_id external_gene_name chromosome_name
1 ENSG00000210049 MT-TF MT
2 ENSG00000211459 MT-RNR1 MT
3 ENSG00000210077 MT-TV MT
4 ENSG00000210082 MT-RNR2 MT
5 ENSG00000209082 MT-TL1 MT
6 ENSG00000198888 MT-ND1 MT
7 ENSG00000210100 MT-TI MT
8 ENSG00000210107 MT-TQ MT
9 ENSG00000210112 MT-TM MT
10 ENSG00000198763 MT-ND2 MT
ptroglodytes_homolog_ensembl_gene ptroglodytes_homolog_chromosome
1
2
3
4
5
6 ENSPTRG00000042641 MT
7
8
9
10 ENSPTRG00000042626 MT
Найдем одни и те же ID между OrgDb человека и шимпанзе, основываясь на именах генов
# BiocManager::install("org.Pt.eg.db")
# BiocManager::install("org.Hs.eg.db")
library(org.Hs.eg.db)
library(org.Pt.eg.db)
human_genes <- select(org.Hs.eg.db, keys(org.Hs.eg.db), "SYMBOL", "ENTREZID") %>%
dplyr::rename(hs_entrez = ENTREZID)
gene_names <- human_genes$SYMBOL #get gene names
chimpz_genes <- select(org.Pt.eg.db, gene_names, "ENTREZID", "SYMBOL") %>%
dplyr::rename(pt_entrez = ENTREZID)
hs2pt <- merge(human_genes, chimpz_genes, by = "SYMBOL")
hs2pt %>% head() SYMBOL hs_entrez pt_entrez
1 A-GAMMA3'E 109951028 <NA>
2 A1BG 1 742390
3 A1BG-AS1 503538 <NA>
4 A1CF 29974 466076
5 A2M 2 465372
6 A2M-AS1 144571 <NA>