-1
A
答えて
4
簡単な方法は、それぞれ「X」の文字の最初の分割になり、その後、空の結果フィルタリングします:ここで
sequences = filter(None, my_sequence.split("x"))
、唯一truthy値を維持する手段をフィルタリングする
None
引数を - 空文字列は
false
と扱われ、結果から削除されます。
注:イテレータを返すfilter
のPython 3では、あなたがリスト、使用したい場合:たとえば
sequences = list(filter(None, my_sequence.split("x")))
:
In [5]: filter(str, my_sequence.split("x"))
Out[5]:
['atccagcaaaaacgctccaaggattctcgactggactcattacttaatcagtattcgcaagcggacgccgaggtcgtaaaggctgaaaccgcacaatcggatgcgcccagtgatgacgcact',
'cgccttgcccacccaccgacaaccggtgagtgaaaaattggaacggtgattaaa',
'ttgtgctttatttctggagggcggtgtttaggggtaggcgcgccatgttttttgccttcagcgatcccaggtacaaccagtccccatattcgcgcactgtcgtgatcggcgagtaattacctgtgctcgcatcttgcaggttggcaatcaccttgccgtccaagtccagacccagtgcaaaggcacgcttttccatgggtttgggcagtaccgtcaatgcccgaacaatcattttgc']
別の解決策は、正規表現を使用することですが。シーケンスの間に可変量の "x"文字がある場合は、x+
パターンで分割できます。パターンは、1つ以上のxの行に一致します。例えば
:
In [6]: import re
In [7]: p = re.compile(r'x+')
In [8]: p.split(my_sequence)
Out[8]:
['atccagcaaaaacgctccaaggattctcgactggactcattacttaatcagtattcgcaagcggacgccgaggtcgtaaaggctgaaaccgcacaatcggatgcgcccagtgatgacgcact',
'cgccttgcccacccaccgacaaccggtgagtgaaaaattggaacggtgattaaa',
'ttgtgctttatttctggagggcggtgtttaggggtaggcgcgccatgttttttgccttcagcgatcccaggtacaaccagtccccatattcgcgcactgtcgtgatcggcgagtaattacctgtgctcgcatcttgcaggttggcaatcaccttgccgtccaagtccagacccagtgcaaaggcacgcttttccatgggtttgggcagtaccgtcaatgcccgaacaatcattttgc']
+2
あなたはそれをPython 3ユーザーの' list'にキャストできますか? –
+0
@ Ev.Kounis完了 - 提案に感謝します! –
2
あなたは正規表現を使用することができXSの各シーケンスのための単一のエントリを持つようにしたい場合:ここで
import re
x = 'atccagcaaaaacgctccaaggattctcgactggactcattacttaatcagtattcgcaagcggacgccgaggtcgtaaaggctgaaaccgcacaatcggatgcgcccagtgatgacgcactxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcgccttgcccacccaccgacaaccggtgagtgaaaaattggaacggtgattaaaxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxttgtgctttatttctggagggcggtgtttaggggtaggcgcgccatgttttttgccttcagcgatcccaggtacaaccagtccccatattcgcgcactgtcgtgatcggcgagtaattacctgtgctcgcatcttgcaggttggcaatcaccttgccgtccaagtcc
agacccagtgcaaaggcacgcttttccatgggtttgggcagtaccgtcaatgcccgaacaatcattttgc'
re.split(r'x+', x)
>['atccagcaaaaacgctccaaggattctcgactggactcattacttaatcagtattcgcaagcggacgccgaggtcgtaaaggctgaaaccgcacaatcggatgcgcccagtgatgacgcact',
'cgccttgcccacccaccgacaaccggtgagtgaaaaattggaacggtgattaaa',
'ttgtgctttatttctggagggcggtgtttaggggtaggcgcgccatgttttttgccttcagcgatcccaggtacaaccagtccccatattcgcgcactgtcgtgatcggcgagtaattacctgtgctcgcatcttgcaggttggcaatcaccttgccgtccaagtccagacccagtgcaaaggcacgcttttccatgggtttgggcagtaccgtcaatgcccgaacaatcattttgc']
r'x+'
は、私が上の元の文字列を分割することを意味1つまたは複数のxのシーケンス。
1
希望の出力を得る別の方法はlist comprehension
です。
これは一例です:
# Or maybe a generator
# data = (k for k in my_sequence.split("x") if k)
data = [k for k in my_sequence.split("x") if k]
for k,v in enumerate(data):
print("{0} >>> {1}".format(k,v))
出力:
0 >>> atccagcaaaaacgctccaaggattctcgactggactcattacttaatcagtattcgcaagcggacgccgaggtcgtaaaggctgaaaccgcacaatcggatgcgcccagtgatgacgcact
1 >>> cgccttgcccacccaccgacaaccggtgagtgaaaaattggaacggtgattaaa
2 >>> ttgtgctttatttctggagggcggtgtttaggggtaggcgcgccatgttttttgccttcagcgatcccaggtacaaccagtccccatattcgcgcactgtcgtgatcggcgagtaattacctgtgctcgcatcttgcaggttggcaatcaccttgccgtccaagtccagacccagtgcaaaggcacgcttttccatgggtttgggcagtaccgtcaatgcccgaacaatcattttgc
関連する問題
- 1. ImmutableJS:私は以下の持っていると仮定すると、彼らに
- 2. は、我々は彼らの私が持っている
- 3. ログは次のように私はメソッドを持っている彼らは
- 4. 私は次のフィールドを持つフィードモデルを持っている彼らのForeignKey値
- 5. RET、RETN、RETF - 私は、次のasmコードを持っているか、彼らに
- 6. 私は彼と同じ問題が持っているのPython
- 7. Vimは私はこの問題を持っているテキスト
- 8. は、私はこのパターンでファイルを持っているテキスト
- 9. は、私はこのテキストを持っている
- 10. 持っIBOutletが、私はこのコードを持っていることに
- 11. はそう、彼らは私は2つのdiv要素を持っている
- 12. 私はこのフォーム内のテキストを持っているPHP
- 13. Hibernateはシーケンス私はこのようなクラスを持っている
- 14. コーデックシェフと彼のシーケンス
- 15. は、どのように私は以下のクラスを持っているシーケンス
- 16. は、私は彼らがログインしている場合は、ユーザーが特定のアクションを実行することを可能にするページ上のリンクを持っている。彼らは私にはログインしていない場合はページ戦略
- 17. MVC5主キーは常に私は私のモデルに新しい行を作成しようとしていますここでmvc5アプリケーションを持っているシーケンス
- 18. 私はこのテキスト持って前に/ String.indexof後のC#
- 19. C#の:彼らは私は現在、このようSystem.Windows.Forms.Control上の拡張メソッドを持っている
- 20. Scalaはどのように私のように定義された機能を持っている彼らに
- 21. Pythonは、私はこのテキストを持っている私の正規表現
- 22. アッカ:私はこのメッセージのシーケンスを持っている私の俳優でpipetoの自己と親
- 23. だから私はこのような何か持っている直接テキスト
- 24. にStackOverflowError私はのは、彼らがこれらのように見えると仮定しましょう、2つのクラスを持っているParcelable
- 25. ライトキャンバス(onDrawビュー)とテキスト私はこの見解を持っている
- 26. テキスト変換私はここのWordPressサイトを持って
- 27. 私は彼らが私は彼らが入力したテキストを処理し、送信ボタンを押すと、ユーザーが</p> <p>にいくつかのテキストを入力するのEditTextを持っているAndroidデバイス
- 28. 私はローカライズされたプロパティが入ってくるのファイルを持っている彼らの文字
- 29. SQL - 私は私のデータベースにこれらのテーブルを持っているクエリ
- 30. 私はここにシェルスクリプトを持っているシェルスクリプトのディレクトリ
第一ステップ:パーサーFASTAファイルの 'biopython'。 –
第2ステップ: 'split'関数または' regex'を使用します –
第3ステップでは、保存とフォーマット出力のために 'biopython'を使います。 –