web-dev-qa-db-ja.com

Ensembl IDをRの遺伝子記号に変換するにはどうすればよいですか?

Ensembl IDを1列に含むdata.frameがあります。その列の値に対応する遺伝子シンボルを見つけて、データフレームの新しい列に追加したいと思います。 bioMaRtを使用しましたが、Ensembl IDが見つかりませんでした。

これが私のサンプルデータです(df[1:2,]):

row.names organism    gene
41  Homo-Sapiens ENSP00000335357
115 Homo-Sapiens ENSP00000227378

そして、私はこのようなものを得たいです

row.names organism    gene         id
41  Homo-Sapiens ENSP00000335357   CDKN3
115 Homo-Sapiens ENSP00000227378   HSPA8

そしてこれが私のコードです:

library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df$id <- NA
G_list <- getBM(filters= "ensembl_gene_id", attributes= c("ensembl_gene_id",
"entrezgene", "description"),values=genes,mart= mart)

次に、G_listを確認するとこれが表示されます

[1] ensembl_gene_id entrezgene      description  <0 rows> (or 0-length row.names)

だから私は自分のdfにG_listを追加できませんでした!追加するものがないからです!

前もって感謝します、

11
user3576287

これは、gene列にある値が遺伝子IDではなく、ペプチドIDであるためです(それらはENSPで始まります)。必要な情報を取得するには、ensembl_gene_idensembl_peptide_idに置き換えてみてください。

G_list <- getBM(filters = "ensembl_peptide_id", 
                attributes = c("ensembl_peptide_id", "entrezgene", "description"),
                values = genes, mart = mart)

また、あなたが本当に探しているのはhgnc_symbolです

出力を取得するための合計コードは次のとおりです。

library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df<-df[,-4]
G_list <- getBM(filters= "ensembl_peptide_id", attributes= c("ensembl_peptide_id","hgnc_symbol"),values=genes,mart= mart)
merge(df,G_list,by.x="gene",by.y="ensembl_peptide_id")
16
NicE

私はいくつかのRパッケージ(mygene、org.Hs.eg.db、biomaRt、EnsDb.Hsapiens.v79)を試してEnsembl.geneをgene.symbolに変換し、EnsDb.Hsapiens.v79パッケージ/遺伝子データベースが最高の変換品質(Ensembl.geneのほとんどをgene.symbolに変換できるという点で)。

次のコマンドを実行してインストールしていない場合は、パッケージをインストールします:BiocManager :: install( "EnsDb.Hsapiens.v79")

library(EnsDb.Hsapiens.v79)

# 1. Convert from ensembl.gene to gene.symbol
ensembl.genes <- c("ENSG00000150676", "ENSG00000099308", "ENSG00000142676", "ENSG00000180776", "ENSG00000108848", "ENSG00000277370", "ENSG00000103811", "ENSG00000101473")

geneIDs1 <- ensembldb::select(EnsDb.Hsapiens.v79, keys= ensembl.genes, keytype = "GENEID", columns = c("SYMBOL","GENEID"))

# 2. Convert from gene.symbol to ensembl.gene
geneSymbols <-  c('DDX26B','CCDC83',  'MAST3', 'RPL11', 'ZDHHC20',  'LUC7L3',  'SNORD49A',  'CTSH', 'ACOT8')

geneIDs2 <- ensembldb::select(EnsDb.Hsapiens.v79, keys= geneSymbols, keytype = "SYMBOL", columns = c("SYMBOL","GENEID"))

変換に使用できる他のRパッケージ/遺伝子データベースは、 このGitHubページ を参照できます。

bioinformatics.stackexchange の同様の質問に対する私の回答。

2
Good Will