私は生物学者であり、いくつかのファイルを処理するためのクイックスクリプトを作成する必要があります。Pythonで.strip()を使って文字を取り除くことはできません
ファイル形式は、FASTAある:
>line1
ACCGAGCTACTAGXXXXX
>line2
ACGTAX
エトセトラ。
私はすべてのXの文字を削除し、すぐにこのスクリプトtoghether載せていきたいと思います:
print """Input file must be named FILE.fasta"""
fasta_file = raw_input('Input file name:') # Input fasta file
char = raw_input('Which sequence should be stripped?:')
OutFileName = fasta_file.strip('.fasta') + '_stripped.fasta'
OutFile = open(OutFileName, 'w')
WriteOutFile = True
data = open(fasta_file, "r")
for line in data:
if line.startswith('>'):
OutPut = line
else:
OutPut = line.strip(char)
print OutPut
OutFile.write(OutPut)
print(char)
OutFile.close()
quit()
それが機能しないと、私はその理由を把握することはできません。どんな助け?
P.S.ひどいコードを申し訳ありません。あなたが「他」のセクションに似た何かを行うことができますあなたのケースのために
import re
pattern = re.compile("(\w[^X]+)") # This groups everything but X
stripped = pattern.match(line).group()
:
何が問題なのですか? _ 'シーケンスを削除する必要がありますか:' _ – CristiFati
Xを文字として入力すると、シーケンス行からX-esを削除しません。 基本的に、私が与えられた例のfastaファイルを処理し、charをXと定義すると、出力で何も変わらないでしょう。 – TWV
両方の文字列で 'strip 'を手動で使用しました。おそらく、ファイル内のすべての行が終わると '\ n'をストリップリストに追加する必要があります。 – CristiFati