как скачать полную последовательность генома в biopython entrez.esearch

Мне нужно загрузить только полные последовательности геномов из NCBI (GenBank (полный) формат). Меня интересует «полная генеама», а не «весь геном».

мой сценарий:

from Bio import Entrez Entrez.email = "asiakXX@wp.pl" gatunek='Escherichia[ORGN]' handle = Entrez.esearch(db='nucleotide', term=gatunek, property='complete genome' )#title='complete genome[title]') result = Entrez.read(handle) 

В результате я получаю лишь небольшие фрагменты геномов размером около 484 п.о.:

 LOCUS NZ_KE350773 484 bp DNA linear CON 23-AUG-2013 DEFINITION Escherichia coli E1777 genomic scaffold scaffold9_G, whole genome shotgun sequence. 

Я знаю, как сделать это вручную через веб-сайт NCBI, но это очень трудоемкий вопрос, который я использую там:

 escherichia[orgn] AND complete genome[title] 

и в результате я получаю несколько геномов с размерами около 5,154,862 п.о., и это то, что мне нужно сделать через ENTREZ.esearch.

3 Solutions collect form web for “как скачать полную последовательность генома в biopython entrez.esearch”

Ваш вопрос ясен, но полный ответ длинный. Код, который я предоставляю, генерирует файл .fasta для каждой из ваших желательных последовательностей генома E.Coli, да только « Полные геномы » в NCBI.

Вы увидите, что в NCBI имеется только шесть полных эталонных геномов E.Coli ( http://www.ncbi.nlm.nih.gov/genome/167 ):

введите описание изображения здесь

Чтобы помочь вам, вот ссылки Genbank / Refseq на их геномы:

  1. http://www.ncbi.nlm.nih.gov/nuccore/NC_000913.3

  2. http://www.ncbi.nlm.nih.gov/nuccore/NC_002695.1

  3. http://www.ncbi.nlm.nih.gov/nuccore/NC_011750.1

  4. http://www.ncbi.nlm.nih.gov/nuccore/NC_011751.1

  5. http://www.ncbi.nlm.nih.gov/nuccore/NC_017634.1

  6. http://www.ncbi.nlm.nih.gov/nuccore/NC_018658.1

Вот мой код для полной последовательности геномов, анализирующих файлы .FASTA …

 # Imports from Bio import Entrez from Bio import SeqIO ############################# # Retrieve NCBI Data Online # ############################# Entrez.email = "asiak@wp.pl" # Always tell NCBI who you are genomeAccessions = ['NC_000913', 'NC_002695', 'NC_011750', 'NC_011751', 'NC_017634', 'NC_018658'] search = " ".join(genomeAccessions) handle = Entrez.read(Entrez.esearch(db="nucleotide", term=search, retmode="xml")) genomeIds = handle['IdList'] records = Entrez.efetch(db="nucleotide", id=genomeIds, rettype="gb", retmode="text") ############################### # Generate Genome Fasta files # ############################### sequences = [] # store your sequences in a list headers = [] # store genome names in a list (db_xref ids) for i,record in enumerate(records): file_out = open("genBankRecord_"+str(i)+".gb", "w") # store each genomes .gb in separate files file_out.write(record.read()) file_out.close() genomeGenbank = SeqIO.read("genBankRecord"+str(i)+".gb", "genbank") # parse in the genbank files header = genome.features[0].qualifiers['db_xref'][0] # name the genome using db_xfred ID sequence = genome.seq.tostring() # obtain genome sequence headers.append('>'+header) # store genome name in list sequences.append(sequence) # store sequence in list fasta_out = open("genome"+str(i)+".fasta","w") # store each genomes .fasta in separate files fasta_out.write(header) # >header ... followed by: fasta_out.write(sequence) # sequence ... fasta_out.close() # close that .fasta file and move on to next genome records.close() 

Дайте мне знать, как это происходит! Энди

Вы сделали сложную часть и разработали запрос,

 escherichia[orgn] AND complete genome[title] 

Поэтому используйте это как поисковый запрос через Biopython!

 from Bio import Entrez Entrez.email = "asiakXX@wp.pl" search_term = "escherichia[orgn] AND complete genome[title]" handle = Entrez.esearch(db='nucleotide', term=search_term) result = Entrez.read(handle) handle.close() print result['Count'] 

В настоящее время это дает мне 140 результатов, начиная с 545778205, что совпадает с сайтом: http://www.ncbi.nlm.nih.gov/nuccore/?term=escherichia%5Borgn%5D+AND+complete+genome% 5Btitle% 5D

Это работает для меня …

 search_term = 'escherichia coli[orgn] AND complete genome[title]' handle = Entrez.esearch(db='nucleotide', term=search_term) genome_ids = Entrez.read(handle)['IdList'] for genome_id in genome_ids: record = Entrez.efetch(db="nucleotide", id=genome_id, rettype="gb", retmode="text") filename = 'generated/genBankRecord_{}.gb'.format(genome_id) print('Writing:{}'.format(filename)) with open(filename, 'w') as f: f.write(record.read()) 
  • Деревья здания Phylo BioPython
  • type object 'RestrictionType' не имеет атрибута 'size'
  • Преобразование dna-выравнивания в массив numpy с использованием biopython
  • Subprocess.call или Subprocess.Popen не могут использовать исполняемые файлы, которые находятся в PATH (Linux / Windows)
  • возврат наружной функции
  • Извлечение последовательностей из файла FASTA на основе записей в отдельном файле
  • Использование поисковых запросов с Biopython для возврата номеров доступа
  • urllib2.HTTPError Python
  • Python - лучший язык программирования в мире.