1

したがって、最初の文字列に遭遇した後、さまざまな文字列の繰り返しを見つけなければならないという問題に取り組んでいます。たとえば、ACTGACを使用して、データファイルに次のようなシーケンスが含まれているとします。

AAACTGACACCATCGATCAGAACCTGA

したがって、ACTGACが見つかったら、その文字列で次の10文字を分析して、いくつかのルールに従って文字列が繰り返されるかどうかを分析する必要があります。ルールをコーディングしましたが、必要な文字列を見つけたら、次の10文字のサブ文字列を作成して分析する方法を誰かに教えてもらえますか。文字列を見つけると、str.partition関数がそれを実行できることを知っています。その後、[1:10]は次の10文字を取得できます。

ありがとう!

4

2 に答える 2

4

あなたはすでにそれをほとんど持っています(しかし、Pythonではインデックスはゼロから数え始めることに注意してください)。

このメソッドは、の最初の出現に基づいて、partition文字列をに分割します。head, separator, tailseparator

tailしたがって、 :の最初の10文字のスライスを取得する必要があります。

>>> data = 'AAACTGACACCATCGATCAGAACCTGA'
>>> head, sep, tail = data.partition('ACTGAC')
>>> tail[:10]
'ACCATCGATC'

Pythonでは、スライスの開始インデックス(デフォルトではゼロ-文字列の開始)と終了インデックス(デフォルトでは文字列の長さ)を省略できます。

次のように、操作全体を1行で実行することもできます。

>>> data.partition('ACTGAC')[2][:10]
'ACCATCGATC'
于 2012-01-11T02:04:45.127 に答える
0

したがって、 Pythonでサブストリングのすべての出現箇所を検索するというmarcogの回答に基づいて、私は次のことを提案します。

>>> import re
>>> data = 'AAACTGACACCATCGATCAGAACCTGAACTGACTGACAAA'
>>> sep = 'ACTGAC'
>>> [data[m.start()+len(sep):][:10] for m in re.finditer('(?=%s)'%sep, data)]
['ACCATCGATC', 'TGACAAA', 'AAA']
于 2012-04-10T12:01:02.110 に答える