Probalign är ett sekvensjusteringsverktyg som beräknar en maximal förväntad noggrannhetsjustering med hjälp av partitionsfunktionens posteriora sannolikheter. Basparssannolikheter uppskattas med en uppskattning som liknar Boltzmann-fördelningen . Partitionsfunktionen beräknas med en dynamisk programmeringsmetod .
Algoritm
Följande beskriver algoritmen som används av probalign för att bestämma basparsannolikheterna.
Uppriktningspoäng
För att göra en anpassning av två sekvenser behövs två saker:
- en likhetsfunktion (t.ex. PAM , BLOSUM ,...)
- affin gap penalty:
Poängen för en anpassning a definieras som:
Nu är den viktade boltzmann-poängen för en inriktning a:
Där är en skalningsfaktor.
Sannolikheten för en inriktning under antagande av boltzmann-fördelning ges av
Där är partitionsfunktionen, dvs summan av boltzmannvikterna för alla linjer.
Dynamisk programmering
Låt beteckna partitionsfunktionen för prefixen och . Tre olika fall beaktas:
-
partitionsfunktionen för alla justeringar av de två prefixen som slutar i en matchning.
-
partitionsfunktionen för alla justeringar av de två prefixen som slutar med en infogning .
-
partitionsfunktionen för alla justeringar av de två prefixen som slutar med en radering .
Då har vi:
Initialisering
Matriserna initieras enligt följande:
Rekursion
Partitionsfunktionen för justeringarna av två sekvenser och ges av , som kan beräknas rekursivt:
-
analogt
Sannolikhet för baspar
Slutligen ges sannolikheten att positionerna och bildar ett baspar av:
är respektive värden för den omräknade med inverserade basparsträngar.
Se även
externa länkar