1
私は特定の遺伝子を抽出したい遺伝子バンクファイル.gbkを持っています。私の問題は次のとおりです。 ファイルを処理するには、各軌跡のヘッダーが特定の形式でなければならず、ファイル内にはありません。私は、ファイルを解析し、次のようにヘッダを置き換えたい:ファイルを解析してPythonの文字列を修正してください
LOCUS NODE_1_length_393688_cov_17.8554393688 bp DNA linear
BCT22-MAY-2017
DEFINITION Escherichia coli strain strain.
ACCESSION
VERSION
KEYWORDS .
SOURCE Escherichia coli
ORGANISM Escherichia coli
Bacteria; Proteobacteria; gamma subdivision; Enterobacteriaceae;
Escherichia.
....
>>Gene data here
....
LOCUS NODE_2_length_278889_cov_17.85545278889 bp DNA linear
BCT22-MAY-2017
DEFINITION Escherichia coli strain strain.
ACCESSION
VERSION
KEYWORDS .
SOURCE Escherichia coli
ORGANISM Escherichia coli
Bacteria; Proteobacteria; gamma subdivision; Enterobacteriaceae;
Escherichia.
....
>>Gene data here
....
LOCUS NODE_3_length_340008_cov_17.855432340008 bp DNA linear
BCT22-MAY-2017
DEFINITION Escherichia coli strain strain.
ACCESSION
VERSION
KEYWORDS .
SOURCE Escherichia coli
ORGANISM Escherichia coli
Bacteria; Proteobacteria; gamma subdivision; Enterobacteriaceae;
Escherichia.
....
>>Gene data here
....
NODE
で始まる文字列はファイル形式の大会のために長すぎると、それはそのように見えるように交換する必要があります
LOCUS NODE_1_393688 bp DNA linear
....
LOCUS NODE_2_278889 bp DNA linear
....
LOCUS NODE_3_340008 bp DNA linear
切り取る必要がある部分は同じ長さである必要はないので、文字列の特定の位置の間のすべてを削除するという固定アプローチは実現できません。私はre.compile()とr.sub()を使っていろいろなアプローチを試みましたが、それまで成功していませんでした。
ご協力いただければ幸いです。 ありがとうございました!
これはいい音ですが、私はこれをループ内に実装して、異なるサブディレクトリにある複数のファイルを解析し、各ファイルの 'LOCUS'で始まる行のすべてのインスタンスを修正するだけです。これを行うためには、ファイル全体で読み込まれた 'content = textwrap.dedent'関数にテキストを埋め込む必要があります。 'textwrap.dedent'できますか? – kruemelprinz