スペース(-)を削除したいです。同じ場所のすべての>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)
今やるべきことは、入力ファイルを解析して出力ファイルをフォーマットすることだけです。