Я хотел бы получить интронные последовательности некоторых генов (например, https://www.ncbi.nlm.nih.gov/nuccore/X62462.1).
. Я могу получить его с базой данных нуклеотидов для некоторых генов, но некоторые из них появляются только в базе данных генов из NCBI.Для этого я использую Biopython.
Здесь фрагмент кода для извлечения интрона из базы данных нуклеотидов.
from Bio.Seq import Seq
from Bio import SeqIO, Entrez
count = 4 # Number of entries to see
genes = ["estrogen receptor"]
shortname = genes[0]
Entrez.email = "email@gmail.com"
handle = Entrez.esearch(db="nucleotide", term="Human[Orgn] AND "+shortname+"[GENE] AND biomol_genomic[PROP] AND nucleotide_protein[Filter]", idtype="acc", retmax=count)
record = Entrez.read(handle)
handle.close()
С помощью этой части я проверяю, какую запись я хочу:
print("Entries:", record["Count"])
seq_records=[]
for i in range(len(record["IdList"])):
idname = record["IdList"][i]
with Entrez.efetch(db="nucleotide", rettype="gb", retmode="text", id=idname) as handle:
seq_record = SeqIO.read(handle, "gb")
seq_records.append(seq_record)
print(i, "--", seq_record.description, seq_record.id)
Записи: 1 0 - H.sapiens 5 'фланкирующая область для гена рецептора эстрогена (молочной железы) X62462.1
А теперь я получаю последовательности интронов для этого гена:
id_chosen = 0
intron = [f for f in seq_records[id_chosen].features if f.type == "intron"]
x=1
for start, end in [(e.location.start.position, e.location.end.position ) for e in intron]:
print(">>>",seq_record.id, "Intron:",x, start+1, end, ",len:",len(seq_record.seq[start:end]))
x += 1
print(seq_record.seq[start:end], "\n")
Выходные данные:> X62462.1 Интрон: 1 911 2933, лен: 2023 GTAGGCTTGTTTTGATTTCTCTCTCTGTAGCTTTAGCATTTTGAGAAAGCAACTTACCTTTCTGGCTAGTGTCTGTATCCTAGTGTGTCTGTATCCTAGCAGTGTGTCTGTATCCTAGCAGGAGGAGGGATGGTG * * * * * * * * * * * *это ... как это сделать с геном, который имеет несколько интронных сплайсингов и появляется в базе данных генов? Как я могу получить доступ к этим функциям?
Пример: https://www.ncbi.nlm.nih.gov/gene/374
Спасибо!