ファイルから間隔パターンを削除する[閉じる]

ファイルから間隔パターンを削除する[閉じる]

スペース(-)を削除したいです。同じ場所のすべての>Temsで10個以上の間隔が連続して見つかると、すべての間隔が削除され、シーケンスまたは間隔がTemの同じ場所にあるクエリから削除されます。例 最初のテンプレートにはスペースがありますが、2 番目のテンプレートにスペースがない場合はスペースは削除されません。
入力ファイルの例

>Tem1.pdb
------------------------------------------------------------
--------------------------------GETLGEKWKKKLNQLSRKEFDLYKKSGI
TEVDRTEAKEGLKRGETT-HHAVSRGSAKLQWFVERNMVIPEGRVIDLGCGRGGWSYYCA
>Tem2.pdb
------------------------------------------------------------
--------------------------------GRTLGEQWKEKLNAMSREEFFKYRREAI
IEVDRTEARRARRENNIVGGHPVSRGSAKLRWLVEKGFVSPIGKVIDLGCGRGGWSYYAA
>Query_seq
PKFEKQLGQVMLLVLCAGQLLLMRTTWAFCEVLTLATGPILTLWEGNPGRFWNTTIAVST
ANIFRGSYLAGAGLAFSLIKNAQTPRRGTGTTGETLGEKWKRQLNSLDRKEFEEYKRSGI
LEVDRTEAKSALKDGSKI-KHAVSRGSSKIRWIVERGMVKPKGKVVDLGCGRGGWSYYMA

出力ファイルは次のようにする必要があります

>Temp1
--------------------------------GETLGEKWKKKLNQLSRKEFDLYKKSGI
TEVDRTEAKEGLKRGETT-HHAVSRGSAKLQWFVERNMVIPEGRVIDLGCGRGGWSYYCA
>Temp2
--------------------------------GRTLGEQWKEKLNAMSREEFFKYRREAI
IEVDRTEARRARRENNIVGGHPVSRGSAKLRWLVEKGFVSPIGKVIDLGCGRGGWSYYAA
>Query_se
ANIFRGSYLAGAGLAFSLIKNAQTPRRGTGTTGETLGEKWKRQLNSLDRKEFEEYKRSGI
LEVDRTEAKSALKDGSKI-KHAVSRGSSKIRWIVERGMVKPKGKVVDLGCGRGGWSYYMA

答え1

Pythonでは、次のようにできます。

import re

tem1 = [ "------------------------------------------------------------",
    "--------------------------------GETLGEKWKKKLNQLSRKEFDLYKKSGI",
    "TEVDRTEAKEGLKRGETT-HHAVSRGSAKLQWFVERNMVIPEGRVIDLGCGRGGWSYYCA"
]

tem2 = [ "------------------------------------------------------------",
   "--------------------------------GRTLGEQWKEKLNAMSREEFFKYRREAI",
   "IEVDRTEARRARRENNIVGGHPVSRGSAKLRWLVEKGFVSPIGKVIDLGCGRGGWSYYAA"
]

query  = [ "PKFEKQLGQVMLLVLCAGQLLLMRTTWAFCEVLTLATGPILTLWEGNPGRFWNTTIAVST",
    "ANIFRGSYLAGAGLAFSLIKNAQTPRRGTGTTGETLGEKWKRQLNSLDRKEFEEYKRSGI",
    "LEVDRTEAKSALKDGSKI-KHAVSRGSSKIRWIVERGMVKPKGKVVDLGCGRGGWSYYMA"
]

for line in  range(2):
    if re.search("^-*$", tem1[line]) and re.search("^-*$", tem2[line]):
            tem1.pop(line)
            tem2.pop(line)
            query.pop(line)

print(tem1, tem2, query)

今やるべきことは、入力ファイルを解析して出力ファイルをフォーマットすることだけです。

関連情報