Как я могу преобразовать идентификатор Ensembl в символ гена в R?
У меня есть data.frame, содержащий идентификаторы Ensembl в одном столбце; Я хотел бы найти соответствующие символы генов для значений этого столбца и добавить их в новый столбец в моем кадре данных.
Я использовал bioMaRt, но не смог найти ни одного из идентификаторов Ensembl!
Вот мои данные образца (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)
Так что я не мог добавить G_list в свой df! потому что нечего добавлять!
Спасибо, Advance,
Ответы
Ответ 1
Это связано с тем, что значения в вашем столбце gene
- это не идентификаторы генов, а идентификаторы пептидов (они начинаются с ENSP). Чтобы получить необходимую информацию, попробуйте заменить ensembl_gene_id
на ensembl_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")