Entfernen Sie das Lückenmuster aus Dateien

Entfernen Sie das Lückenmuster aus Dateien

Ich möchte Lücken (-) entfernen. Wenn eine Lücke kontinuierlich >10 in allen >Tem an derselben Position gefunden wird, dann werden alle Lücken entfernt und auch die Sequenzen oder Lücken aus der Abfrage an derselben Position entfernt, die in Tem sind. Beispiel: Wenn eine Lücke in der 1. Vorlage und keine Lücke in der 2. Vorlage ist, dann wird die Lücke nicht entfernt.
Beispiel einer Eingabedatei

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

Unsere Datei sollte so aussehen

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

Antwort1

Sie können dies in Python tun:

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)

Jetzt müssen Sie nur noch Ihre Eingabedatei analysieren und Ihre Ausgabedatei formatieren

verwandte Informationen