Finden Sie alle Muster in einer Multifasta-Datei, auch überlappende MotivePython

Python-Programme
Anonymous
 Finden Sie alle Muster in einer Multifasta-Datei, auch überlappende Motive

Post by Anonymous »

Ich habe eine Multifasta-Datei, sie sieht so aus:

Code: Select all

>NP_001002156.1
MKTAVDRRKLDLLYSRYKDPQDENKIGVDGIQQFCDDLMLDPASVSVLIVAWKFRAATQCEFSRQEFLDG
MTDLGCDSPEKLKSLLPRLEQELKDSGKFRDFYRFTFSFAKSPGQKCLDLEMAVAYWNLILSGRFKFLGL
WNTFLLEHHKKSIPKDTWNLLLDFGNMIADDMSNYAEEGAWPVLIDDFVEFARPIVTAENLQTL
>NP_957070.2
MAKDAGLKETNGEIKLFINQSPGKAAGVLQLLTVHPASITTVKQILPKTLTVTGAHVLPHMVVSTPQRPT
IPVLLTSPHTPTAQTQQESSPWSSGHCRRADKSGKGLRHFSMKVCEKVQKKVVTSYNEVADELVQEFSSA
DHSSISPNDAVSSCHVYDQKNIRRRVYDALNVLMAMNIISKDKKEIKWIGFPTNSAQECEDLKAERQRRQ
ERIKQKQSQLQELIVQQIAFKNLVQRNREVEQQSKRSPSANTIIQLPFIIINTSKKTIIDCSISNDKFEY
LFNFDSMFEIHDDVEVLKRLGLALGLESGRCSAEQMKIATSLVSKALQPYVTEMAQGSVNQPMDFSHVAA
ERRASSSTSSRVETPTSLMEEDEEDEEEDYEEEDD
>NP_123456.1
MALLLLLGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
...
Obwohl es ein großartiges Python-Skript gibt, um Motivsuchen in einer Multifasta-Datei durchzuführen (https://www.biostars.org/p/14305/), würde es bei Verwendung des Musters „[KHR]{3}“ nur eine Motivliste und viele leere Ergebnisse zurückgeben:

Code: Select all

>NP_001002156.1
:['RRK']
>NP_001002156.1
:[]
>NP_001002156.1
:['HHK']
>NP_957070.2
:[]
>NP_957070.2
:['RRR']
...
und einige Motive (HKK) wurden in der gleichen Reihenfolge durchgesickert.

Hier habe ich ein weiteres Python-Skript gefunden:

Code: Select all

#coding:utf-8
import re
pattern = "[KHR]{3}"
with open('seq.fasta') as fh:
fh.readline()
seq = ""
for line in fh:
seq += line.strip()
rgx = re.compile(pattern)
result = rgx.search(seq)
patternfound = result.group()
span = result.span()
leftpos = span[0]-10
if leftpos < 0:
leftpos = 0
print(seq[leftpos:span[0]].lower() + patternfound + seq[span[1]:span[1]+10].lower())
Es gibt das erste übereinstimmende Motiv zurück, das in einem Kontext gefunden wurde (10 Aminosäuren vorwärts nach dem übereinstimmenden Motiv
und 10 Aminosäuren rückwärts vor dem übereinstimmenden Motiv) für nur eine Fasta-Sequenz (die erste), für die erste Fasta-
Sequenz NP_001002156.1 unter Verwendung des Skripts das zurückgegebene Ergebnis:

Code: Select all

mktavdRRKldllysrykd
aber es hat keinen Dateikopf „>NP_001002156.1“ und andere 2 Motive im Kontext wurden alle weggelassen:

Code: Select all

glwntfllehHHKksipkdtwnl
lwntfllehhHKKsipkdtwnll
Hier möchte ich, dass das gewünschte Skript ein passendes Motiv mit seiner Position im Kontext jeder Fasta-
Sequenz in der Multifasta-Datei zurückgibt und die Ergebnisse wie folgt darstellt:

Code: Select all

>NP_001002156.1_matchnumber_1_(7~9)
mktavdrRRKldllysrykd
>NP_001002156.1_matchnumber_2_(148~150)
glwntfllehHHKksipkdtwnl
>NP_001002156.1_matchnumber_3_(149~151)
lwntfllehhHKKsipkdtwnll
>NP_957070.2_matchnumber_1_(163~165)
chvydqknirRRRvydalnvlma
>NP_123456.1
no match found
Hinweis:Die Position des übereinstimmenden Musters ist nicht die Position des Kontexts.

Könnte mir jemand helfen? Vielen Dank im Voraus.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post