파일에서 간격 패턴 제거 [닫기]

파일에서 간격 패턴 제거 [닫기]

공백(-)을 제거하고 싶습니다. 동일한 위치의 모든 >Tems에서 10개 이상의 간격이 연속적으로 발견되면 모든 간격이 제거되고 시퀀스 또는 간격이 Tem의 동일한 위치에 있는 쿼리에서 제거됩니다. 예 첫 번째 템플릿에는 공백이 있지만 두 번째 템플릿에는 공백이 없으면 공백이 제거되지 않습니다.
입력 파일 예

>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)

이제 해야 할 일은 입력 파일을 구문 분석하고 출력 파일의 형식을 지정하는 것뿐입니다.

관련 정보