3

NCBI (GenBank(full) 形式) から完全なゲノム配列のみをダウンロードする必要があります。「全ゲノム」ではなく「完全ゲノム」に興味があります。

私のスクリプト:

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 bp のゲノムの小さなフラグメントのみが得られます。

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

NCBI Web サイトを介して手動で行う方法は知っていますが、非常に時間がかかるため、そこで使用するクエリは次のとおりです。

escherichia[orgn] AND complete genome[title]

その結果、サイズ範囲が約 5,154,862 bp の複数のゲノムが得られました。これは、ENTREZ.esearch を介して行う必要があることです。

4

3 に答える 3

1

あなたの質問は明確ですが、完全な答えは長いです。私が提供するコードは、目的の大腸菌ゲノム シーケンスごとに .fasta ファイルを生成します。はい、NCBIの「完全なゲノム」のみです。

NCBI ( http://www.ncbi.nlm.nih.gov/genome/167 )には6 つの完全な大腸菌リファレンス ゲノムしかないことがわかります。

ここに画像の説明を入力

あなたを助けるために、ここに彼らのゲノムへの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()

それがどうなるか教えてください!アンディ

于 2013-11-23T23:35:52.980 に答える
0

これは私のために働く...

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())
于 2014-10-13T19:49:50.620 に答える