コンティグ (incon= 初期コンティグ; DNA シーケンス) を受け取る DNA シーケンスを使用して辞書を作成するプログラムに関数を追加し、辞書のキーの形で重複部分を見つけて値を連結することにより、右に拡張します。 「+」演算子。
簡単な例を挙げます:
初期コンティグとして GATTTGAAGC
ATTTGAAGC:A は、ディクショナリ内の多数のエントリの 1 つです。
関数で、辞書のキーである重複部分 (昨日ここで質問したところ、それ自体と特定の値では正常に機能しましたが、変数を持つ関数内では機能しませんでした) を検索し、そのキーの値を連結して、最初のシーケンス(コンティグを右に拡張)し、新しいシーケンスを保存してから、incon
この辞書エントリを削除し、エントリがなくなるまで繰り返します(この部分はまだ試していません)。
まず、長さ 1 の値を持つ長さ 9 のキー (ATTTGAAGC:A) を検索し、長さ 2 の値を持つ長さ 8 のキーの重複部分がない場合 (fe ATTTGAAG:TG) などを検索する関数が必要です。
追加情報: 辞書 "suffixDicts" には、長さが 1 (キーの長さは 14) から 10 (キーの長さは 5) の値を持つエントリがあります。
「読み取り」は、シーケンスのリストが保存される場所です
ステップを次々と実行しようとすると、いくつかの作業(検索など)とそうでないものがありますが、そこから関数を構築しようとすると、文字通り何も起こりません。この関数は、可能な限り最小の拡張子を返すことになっています。
def extendContig (incon, reads, suffixDicts):
incon = reads[0]
for x in range(1,len(incon)):
for key in suffixDicts.keys():
if incon[x:] == key:
incon = incon+suffixDicts['key']
print(incon)
else:
print("n")
return()
私はPythonに非常に慣れていないので、おそらく私が犯した非常に悲惨な間違いがあるので、それらを指摘してもらいたい. 私はこれで頭がいっぱいであることを知っていますが、既存のコードのほとんどの部分を理解していますが、おそらく間違ったシンタックスが原因で、自分で何かを実装する際にまだ問題があります. 使用できるプログラムがあることは知っていますが、その背後にあるすべてを理解したいと思います。
編集:求められたように、すでに与えられた機能を追加します。それらのいくつかは、与えられたコードに基づいて私が書いたいくつかの部分がすでに書かれていました(基本的に、いくつかの微調整を加えてコピーしました)。警告: かなり多いです:
Fasta ファイルの読み取り: 追加情報: Fasta ファイルには、大量の配列が次の形式で含まれています。
"> 1を読む
TTATGAATATTACCGCAATGGACGTCCAAGGTACAGCGTATTTGTACGCTA
"> 2 を読む
AACTGCTATCTTTCTTGTCCACTCGAAAATCCATAACGTAGCCCATAACG
"> 3を読む
TCAGTTATCCTATATACTGGATCCCGACTTTAATCGGCGTCGGAATTACT
ここにファイルをアップロードしました: http://s000.tinyupload.com/?file_id=52090273537190816031
編集: コードの大きなブロックを編集しましたが、必要ないようです。