5

わかりましたので、Python (biopython、http://biopython.org/DIST/docs/tutorial/Tutorial.html) を使用して、FASTA ファイルからシーケンスの一部を抽出する必要があります

各配列から最初の 10 塩基を取得し、それらを 1 つのファイルに入れ、FASTA 形式の配列情報を保持する必要があります。最悪の場合、配列情報を保持する方法がない場合は、塩基を使用することもできます. 次に例を示します。

>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG

>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG

>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG

最初の 10 塩基を取得する何らかの方法が必要です (そして、最後の 10 塩基に対して再度実行することを計画していました)。そのチュートリアルサイトはかなり徹底していますが、私はこれに慣れていません。これには触れていないので、可能かどうかさえわかりません. ご協力いただきありがとうございます。

4

2 に答える 2

6

Biopython は、この種のタスクに最適です。-ObjectSeqには、シーケンスとそれに関する情報が格納されます。fasta ファイル形式の読み取りは簡単です。単純なリストのようにシーケンスにアクセスできるため、特定の位置にも簡単にアクセスできます。

from Bio import SeqIO

with open("outfile.txt","w") as f:
        for seq_record in SeqIO.parse("infile.fasta", "fasta"):
                f.write(str(seq_record.id) + "\n")
                f.write(str(seq_record.seq[:10]) + "\n")  #first 10 base positions
                f.write(str(seq_record.seq[-10:]) + "\n") #last 10 base positions
于 2012-10-30T20:31:00.653 に答える
0

Biopython Seq オブジェクトは基本的に配列であるため、そのサブセクションを指定して、これらを新しい Seq オブジェクトに渡すことができます。これらを seqrecord (辞書) に読み込んだと仮定すると、次のコードを使用して、開始位置と終了位置を指定できます。

SeqRecords[Seq][start:end].seq

これにより、整数である開始位置と終了位置の間の SeqRecord のシーケンス オブジェクトが得られます。記憶によると、開始/終了のインデックス作成についてはおかしなところがありますが、アイデアを得るために遊んでみてください。以下も指定できるはずです。

SeqRecords[Seq][:end].seq

SeqRecord の先頭からシーケンスを取得します。

完全を期すために-次のようなファイルを読み込んでください:

inputSeqFile = open(filename, "rU")
SeqDict = SeqIO.to_dict(SeqIO.parse(inputSeqFile, "fasta"))
inputSeqFile.close()

それが役立つことを願っています。

于 2012-10-30T13:13:28.110 に答える