2016-08-11 11 views
0

コンセンサス配列を解析して解析するプログラムを作成しています。私は正常に解析と解析を行い、プログラムは2つの配列が一致しているかどうかを教えてくれます。文字列内に一致しない位置を表示する

2つの配列が一致しない場合は、2つの配列が一致しない位置を教えてほしいという追加機能を追加します。例えば

シーケンス1の場合:GACTTTTTACTTTTTTG &シーケンス2は、次のとおりです。GACCTTTTACTTTTTTG

は、それがシーケンス1、シーケンス2の一致ではありませんが、私もそれは私に伝えたい私に教えてくれます非一致の位置は4番目の文字です。

これを行うにはどうすればよいですか?ここで

は、私が持っているコードは、これまでのところです:

for (h1,s1),(h2,s2) in combinations(zip(header,sequence),2): 
    if s1[start:stop]==s2[start:stop]: 
     print h1, "is concordant to", h2 
    else: 
     print h1, "is not concordant to", h2 
     nonconcordance_position=[] 
     nonconcordance_position.append(idx2[n-1]) 
     print "position of non concordance:", nonconcordance_position 

私はこれを実行すると、それは動作しますが、しかし、それは正しい位置を与えるものではありません。

+0

場合は、この2つの文字列の共通のプレフィックスを見つけることと同じです。その場合は、http://stackoverflow.com/a/6718435/85337を参照してください。特に 'os.path.commonprefix'を使用しています。 –

答えて

0

else文では、文字列が一致しないときにシーケンス文字列をループしてからインデックスを印刷できます。以下のような

何か:コンコーダンスは、文字列がまったく同じであるかどうかを意味し

else: 
    for i in range(0, len(h1)): 
     if h1[i] == h2[i]: 
      continue 
     else: 
      print i 
      break 
+0

どうすればいいですか? –

+0

答えを更新しました。 –

関連する問題