ambiguous symbols (IUPAC)のdna配列を含むFASTAファイルを入力して関数を書く必要があります。 FASTAファイルの名前とあいまいなDNA文字列が与えられているので、与えられたシーケンスがサブシーケンスである可能性のあるシーケンス('>'
ヘッダ)の識別子を書きたいと思います。私は可能なすべてのシーケンスを生成せずにこれを実装したいと思います。サブシーケンスはFASTAファイル内のシーケンスと同様にあいまいなシンボルを持つことがあります。例:シーケンス "ACC"は "CGMBHTW"のサブシーケンスである可能性があります。 誰かが私を助けることができますか?fasta配列内のヌクレオチド部分配列を見つける
0
A
答えて
0
「一般化された」ヌクレオチドをそれが表す文字のセットとして定義してから、そのようなセットのリストでシーケンスを変換し、一方のシーケンスをスキャンして、他方と互換性のある位置が存在するか調べることができます。
ここでは、最も効率的なコードではないかもしれないが、うまくいくように見えます(しかし、私はループインデックスを得ています...)。
A = {"A"}
C = {"C"}
G = {"G"}
T = {"T"}
R = A | G
Y = C | T
S = G | C
W = A | T
K = G | T
M = A | C
B = C | G | T
D = A | G | T
H = A | C | T
V = A | C | G
N = {"A", "C", "G", "T"}
letter2nucl = {
"A" : A,
"C" : C,
"G" : G,
"T" : T,
"R" : R,
"Y" : Y,
"S" : S,
"W" : W,
"K" : K,
"M" : M,
"B" : B,
"D" : D,
"H" : H,
"V" : V,
"N" : N}
def is_subseq(seq1, seq2):
l1 = len(seq1)
l2 = len(seq2)
nucls1 = [letter2nucl[letter] for letter in seq1]
nucls2 = [letter2nucl[letter] for letter in seq2]
i = 0
while i < 1 + l2 - l1:
subseq = True
for j, nucl in enumerate(nucls1):
if not (nucls2[i+j] & nucl):
# empty set intersection
subseq = False
break
if subseq:
return True
i += 1
return False
seq1 = "ACC"
seq2 = "CGMBHTW"
if is_subseq(seq1, seq2):
print("%s is subsequence of %s" % (seq1, seq2))
seq1 = "GRT"
seq2 = "AATCBAT"
if is_subseq(seq1, seq2):
print("%s is subsequence of %s" % (seq1, seq2))
結果は以下のとおりです。
ACC is subsequence of CGMBHTW
GRT is subsequence of AATCBAT
その後、あなたは配列にこれを使用することができますBiopythonのSeqIO
機能を使用して読み取ります。
関連する問題
- 1. インデックスを持つ配列の最大部分配列を見つける
- 2. 大きな2D配列の内部にある2D配列を見つける
- 3. 配列の中で最大の部分を見つける
- 4. 配列内の配列要素のインデックスを見つける
- 5. ルビ配列内の空の配列を見つけるRails 4
- 6. 配列内のevensを見つける
- 7. 配列内のモードを見つける
- 8. 配列内の値を見つける
- 9. 配列内のパターンを見つける
- 10. PHP多次元配列内の配列を見つける
- 11. 配列内の反復された値の大部分を見つけるアルゴリズム
- 12. 配列内の配列をjavacriptで見つけよう
- 13. 配列 - 配列内に見つからない数字を見つける
- 14. Java:文字列配列内の文字列の一部を見つけて新しい配列を作る
- 15. PostgreSQLの配列列内の文字列を見つける
- 16. ヌクレオチドと配列を数える
- 17. 文字列内の配列を見つける
- 18. ポインタで配列内の文字列を見つける
- 19. 配列内の文字列を見つける
- 20. 最大の和を持つ配列内の部分配列を探します。
- 21. Lodash _.filter配列の配列内の兄弟を見つける方法
- 22. 配列の配列を別の配列の中に見つける
- 23. カスタム配列リストの配列のインデックスを見つける方法...?
- 24. 配列内の値を1つずつ見つける
- 25. 2次元配列で最も長くなる部分配列を見つける
- 26. ハッシュ内の配列内の要素を見つける
- 27. MySQL JSONオブジェクトまたは配列の共通部分を見つける
- 28. Javaが配列内に3つのnumを見つける
- 29. 配列の範囲を見つける
- 30. 配列のパターンを見つけるヒント
あなたの試行は何ですか? - >これまでのコードを表示 – shash678
私たちは*始めるにあたり*任意の*コードを提供できますか?私にとって、私はこの質問の背後にある生物学については全く知らないので、あなたが解決しようとしている問題についてはっきりさせることも助けになります。 – davedwards
各テストの入力と正しい出力を示すいくつかのテスト例を提供できますか? – Steve