Как сохранить Protein ID при получении кодирующих последовательностей с помощью Rentrez
У меня есть несколько идентификаторов белков, и мне нужно получить соответствующие кодирующие последовательности (CDS). Мне удалось получить CDS, но имена каждой последовательности меняются с XP* на XM*, и мне нужно сохранить заголовок XP* для каждой последовательности.
В основном это выглядит так:
library(renters)
search1 <- entrez_search(db="protein", term="XP_012370245[Accn]")
links <- entrez_link(dbfrom="protein", db="nuccore", id=search1$ids)
rec <- entrez_fetch(db="nuccore", rettype="fasta", id=links$links$protein_nuccore_mrna[1])
И вывод выглядит так:
> rec
[1] ">XM_012514791.1 PREDICTED: Octodon degus Hermansky-Pudlak syndrome 6 (Hps6), mRNA
\nATGCAGAGGAAAAACTTTATGTCATTCTTCACAGGCTTCCTGGAGAAGCGGGCCTGGCCGGAGGCCCGCG\nCCGCGCCGCTGGACGCCTTCTTCCTGGCGTGGCCGGCGCAGCCCGCGGTGGCGCTGGTGTGGGAGAGCGG (...)
Есть ли способ сохранить идентификатор белка (XP_012370245) вместо идентификатора нуклеотида (XM_012514791.1)? Что-то вроде:
> rec
[1] ">XP_012370245
\nATGCAGAGGAAAAACTTTATGTCATTCTTCACAGGCTTCCTGGAGAAGCGGGCCTGGCCGGAGGCCCGCG\nCCGCGCCGCTGGACGCCTTCTTCCTGGCGTGGCCGGCGCAGCCCGCGGTGGCGCTGGTGTGGGAGAGCGG (...)
Я сделал это с пакетом BioMart R (biomaRt), но с Rentrez, кажется, сложнее.
Любое предложение очень приветствуется, спасибо!
1 ответ
Это ответ Дэвида Винтера из репозитория rentrez github:
Я не думаю, что есть какой-либо способ сделать это на конце NCBI (нуклеотидные записи имеют идентификаторы нуклеотидов).
Вы, вероятно, можете что-то приготовить, чтобы заменить идентификаторы через stringr или функции манипулирования базовой строкой. Это работает для вашего примера (хотя вы, вероятно, захотите добавить некоторые проверки, чтобы убедиться, что вы действительно находите последовательности CDS и т. Д.):
fetch_cds <- function(prot_acc){
search1 <- entrez_search(db="protein", term=paste0(prot_acc, "[Accn]"))
links <- entrez_link(dbfrom="protein", db="nuccore", id=search1$ids)
rec <- entrez_fetch(db="nuccore", rettype="fasta", id=links$links$protein_nuccore_mrna[1])
sub("XM_\\d+\\.\\d", prot_acc, rec)
}
cat(substr(fetch_cds("XP_012370245"), 1, 500), "\n")
>XP_012370245 PREDICTED: Octodon degus Hermansky-Pudlak syndrome 6 (Hps6), mRNA
ATGCAGAGGAAAAACTTTATGTCATTCTTCACAGGCTTCCTGGAGAAGCGGGCCTGGCCGGAGGCCCGCG
CCGCGCCGCTGGACGCCTTCTTCCTGGCGTGGCCGGCGCAGCCCGCGGTGGCGCTGGTGTGGGAGAGCGG
CCTGGCGGAGCTCTGGGGTGCCGACCTGGGGTCCGCCTGGAGGCGGCTTCACGCCACCGAACTGTGTCCG
CGCGGCGCAGTCCGCGTGGTGGCAGCGGTGGCGCCGCGGGGCCGCCTGGTGTGGTGCGAGGAGCGCCCGG
GCGCGGGCGGACGCCGCGTGTGCGTCCGCACCCTAGAGCCTGGCGGCGAGACTGGTGCCCGCCTGGGCCG
CACGCACGTCCTGCTGCACCACTGCCCGCCCTTCCACCTGCTGGCCTCGCGCAAGGACGTCTTCC