Anda di halaman 1dari 5

ProyectoBioinformtica(ProgramacinenMatlab)

ImplementacindelalgoritmodeNeedlemanWunschenMatlab

1.Importanciadelalineamientodesecuencias
En biologa molecular, nos encontramos constantemente con secuencias tanto de protenas
como de ADN. Estas secuencias llevan encriptados miles de aos de evolucin, y por ello
resulta fundamental comprender las herramientas bsicas que se utilizan en bioinformtica a
nivel de secuencia, pues nos permiten inferir qu pas, cundo pas y, con esa informacin,
entender,porejemplo,cmofuncionanlasprotenasquelasclulassintetizan.
Paraesteproyecto,vamosasimplificarunaseriedeconceptos,demodoqueelproblemaque
tenemos entre manos pueda ser tratable de un modo razonablemente sencillo. Vamos a
considerar para ello el trmino de evolucin como simple cambio a lo largo del tiempo. Las
secuencias nucleotdicas (y por tanto las proteicas) van cambiando a lo largo de la historia
evolutiva. Estos cambios (que consideraremos, para simplificar, aleatorios) normalmente no
confierenningunaventajaadaptativaalportadordelasecuenciamutada.Enpocasocasiones,
es posible que una mutacin en el ADN simplemente no afecte al individuo o bien afecte
negativamente muy poco. En esos casos podemos considerar que la mutacin tiene
posibilidadesdeextenderseenunapoblacin.
Lateora del relojmolecularvienea decirque estoscambiosneutralesa niveldesecuencia
se van a cumulando a una tasa constante a lo largo de la evolucin. Lo que significa que
especies que divergieron hace mucho, tienen secuencias muy diferentes, mientras que
especiesevolutivamentemscercanas(comoelhombreyelorangutn)tienensecuenciasms
parecidas. Eso sucede en secuencias homlogas, es decir, secuencias que provienen de un
antecesor comn que en algn momento dio lugar a las dos especies que estn siendo
comparadas.Cuantomslejosest(desdeunpuntodevistaevolutivo/temporal),mstiempo
ha transcurrido desde la secuencia ancestral, que era idntica para hombre y orangutn,
hastalassecuenciasactualesdelhombreydelorangutn.
Para poder comparar dos secuencias es importante el poder determinar de una manera
cuantitativadossecuencias,ydeterminarsisonhomlogasono.Elumbralparadecidirsiuna
secuenciaeshomlogaonoescomplicado,ynovamosaentrarendetallesparaesteproyecto.
Sinembargo,loqueresultaevidenteesquenecesitamosunaherramientacapazdecomparar
dossecuencias,yelmejormododehacerlo,esconseguiralinearlas.
2.Alinearsecuenciasnoestrivial
Las mutaciones que van acumulndose a lo largo del tiempo pueden ser (de nuevo,
simplificando en la medida de lo posible) de distintos tipos. Sin embargo, si comparamos dos
residuos (i=1 y j=1) entre las dos secuencias a examen (secuencia s y secuencia t), podemos
encontrarnosconlassiguientesposibilidades:
s(i=1) == t(j=1)
s(i=1) ~= t(j=1)
Sin embargo, estamos dejando de lado la posibilidad de que una mutacin haya dado lugar a
una delecin, es decir, que uno o varios residuos se hayan perdido a lo largo de la evolucin.
Lascombinacionessonahoratres:
a) Alineardosresiduosequivalentes
b) Alineardosresiduosdiferentes
c) Alinearunresiduoconunagujero(quellamaremosgapapartirdeahora)
Ahora,vamosaalineardossecuenciasdeADN:
s=ACGC
t=ACGA
Aunque parezca un problema sencillo, no lo es. Existen muchas maneras de alinear esas dos
secuencias,stossonunosejemplos:
ACGC
ACGA
ACGC-
ACG-A
-ACG-C
A--CGA
AC--GC
ACGA--
A-C-G-C
-A-C-GA

Ntese que no hay en ninguno de estos ejemplos un gap (representado con el smbolo )
alineadoconungap,puesnoaportaningunainformacindecambioconrespectoaltiempo.
Culdeestosalineamientoseselcorrecto?Enrealidad,nosetratadeculeselcorrecto,pues
lo que estamos buscando es retratar de la mejor manera posible lo que les ha sucedido a las
secuencias a lo largo de la evolucin. Estamos interesados en representar informacin
biolgica,esoesalgoquenodebemosolvidarenningnmomento.Desdeesepuntodevista,
los ejemplos anteriores nos dan informacin muy diferente: el primer alineamiento dice ha
habidounamutacindeCaAenlasegundasecuenciaconrespectoalaprimera;elsegundo
nos dice ha habido una delecin de una A y una insercin de una C en la primera secuencia
conrespectoalasegunda;etc
Decidir entre todas las posibles maneras de alinear dos secuencias cul es la biolgicamente
relevante es muy complicado. En lo que a nosotros nos respecta, vamos a imaginar que
conseguimos obtener todos los alineamientos posibles por ahora. Lo que ahora nos preocupa
es cmo puntuar los diferentes alineamientos de una manera lo ms biolgica y
parsimoniosa posible. Esta cuestin es muy compleja, y no es lo que se pretende en este
proyecto. Se sabe que son ms frecuentes las transiciones (mutaciones entre bases
nucleotdicasdelmismotipo)quelastransversiones.AyGsonpurinas,CyTsonpirimidinas.
Lastransicionesson,portanto,mutacionesA/G,G/A,C/TyT/C.Lastransversionessonlasotras
posibilidades:C/A,A/C,C/G,G/C,T/A,A/T,T/G,G/T.Conestaidea(entreotras,quenovamosa
comentar aqu), podemos puntuar los alineamientos: en cada posicin alineada vamos a
puntuar positivamente (+2) el hecho de que los residuos sean iguales, con +1 a transiciones y
negativamentelastransversiones(1). Adems,alinearunresiduoconungaptendrtambin
unapuntuacinnegativa(2).Estossonlosparmetros:
(1)
(2)
Ahorapodemospuntuarlosalineamientosquehemospropuestoanteriormente.

ACGC
ACGA
ACGC-
ACG-A
-ACG-C
A--CGA
AC--GC
ACGA--
A-C-G-C
-A-C-GA
Score
2+2+2-1=
+5
2+2+2-2-2=
+2
-2-2-2-1-2-1=
-10
2-2-2-1-2-1=
-6
-2-2-2-2-2-2-1=
-12

3.NeedlemanWunsch
PorfinentramosenmateriaHemosdejadodeladoenelapartadoanteriorelcmoobtener
todoslosalineamientosposibles.Yesunacosaquenoessencillaenabsoluto.Dehecho,este
proyecto consiste en encontrar el alineamiento ptimo de entre todos los posibles (dada la
matrizdesustitucionesylapenalizacinporgap)implementandoelalgoritmodeNeedleman
Wunsch.
EstealgoritmolopropusieronSaulNeedlemanyChristianWunschen1970[1].Esunalgoritmo
que resuelve el problema de optimizacin almacenando los scores mximos de las soluciones
decadasubproblemaenlugarderecalcularlos.
Elalgoritmonoesexcesivamentecomplicado,vamosairviendoporpasoscmofunciona.En
primerlugarvamosanecesitarcrearunamatrizDdetamao(m+1)x(n+1),dondemynson
las longitudes de las secuencias s y t respectivamente, donde vamos a ir almacenando los
scoresdelosfragmentos(subproblemasdealineamiento).
Atencin: vamos a usar los mismos subndices (i y j) tanto para movernos por las secuencias
s(1im) y t(1jn) como para movernos en la matriz D(0im,0jn). Esto es muy feo
desdeunpuntodevistamatemticoformal,peroesperoquesirvaparaentendermejorcmo
implementarelalgoritmo.
Estamos hablando de alineamientos globales, es decir, alineamientos de las secuencias s y t
completas.ElmejorscoreentrelassecuenciassytvaaserelvalordeD(m,n),elltimovalor
de la tabla. Cada valor D(i,j) va a ser la puntuacin mxima entre el fragmento s(1...i) y el
fragmentot(1...j).Esdecir,encadaposicindelamatrizD,vamosatenerelmximoscorede
losposiblesalineamientoslocaleshastalasposicionesi,j.
(3)
Dicho de otra manera, si tenemos un alineamiento ptimo hasta D(i-1,j-1), slo hay tres
opcionesparaloquevaapasarenlasiguienteposicin:
1. Losresiduosparas(i)yt(j)coinciden
1

2. Seintroduceungapent
3. Seintroduceungapens

i=0 i=1 i=2 i=3 i=m
- A C G C
j=0 - 0 ?
j=1 A ? ?
j=2 C
j=3 G
j=n A

Ntesequesehanaadidodosgapsenlassecuenciasalprincipiodecadauna(deahqueel
tamao de la matriz sea de (m+1)x(n+1)). Esto es por que para calcular los valores en las
posicionesmarcadasconelsigno?enlatablaanteriorsenecesitaalgnvalorparai=0yj=0.
Utilizando los parmetros descritos anteriormente (1) y (2) y la frmula (3), puede rellenarse
todalamatrizD.Consejoprctico1:puedesercmodoinicializarlamatrizconceros.Consejo
prctico2:unbuclepararellenarlaprimeracolumnaylaprimerafilapuedenoestardems.

4.Eltraceback
Obtenidalamatriz,sloquedareconstruirelcaminodesdelaposicinD(m,n)hastalaD(0,0).
Para ello, habr que recalcular los valores de D(i-1,j-1), D(i-1,j) y D(i,j-1), para que
recordemosdequcasillavenaelmximocorrespondienteaD(i,j).
SihabamosvenidodeD(i-1,j-1),losresiduosiyj estnalineados

1
Quecoincidannosignificanecesariamentequeseaniguales,sinoquecoincidanenelalineamiento(quenohaya
ungap).Elhechodequeseanigualesodiferentesesalgoquenotieneimportanciaanivelalgortmico,puesesa
diferenciaestincludaenlamatrizS.
SihabamosvenidodeD(i-1,j),hayqueaadirungapalasecuencias
SihabamosvenidodeD(i,j-1),hayqueaadirungapalasecuenciat
Bsicamente, esto es todo. Por supuesto, puede haber ms de un camino ptimo, para este
proyectoessuficientecondevolverunodeellos.

5.Qudebehacermiscript,concretamente?
En primer lugar, lo ideal sera programar una funcin, no un script. Esta funcin debera
requerircomoinputsdosvectoresconlassecuenciasnucleotdicassyt

ytendraquedevolvercomooutputdosvectoresyunvalorescalar.Losvectorestendrancada
unolassecuenciass'y t',enestecaso

yelescalar,deberacontenerelvalordelscoredeesealineamientoptimo.

6.Estoyperdidooatrancado.Qudebohacer?
Si has empezado con este proyecto, te aconsejo que no te rindas. Al principio puede parecer
algo complicado. En cierto modo as es. Si crees que ests perdido, mndame un email y te
contestarlomsprontoposible.Piensaquesihasentendidobienlabaselgicadelalgoritmo,
el implementarlo es cuestin de sintaxis. Notars que has comprehendido la lgica que
subyaceaestetipodealgoritmos(llamadosalgoritmosdeprogramacindinmica)cuandode
pronto te digas a ti mismo, Eh, hay algo que trasciende las letras y los nmeros en el
algoritmo...Haybellezadetrsdetodoesto!.
Dudas,sugerenciasycomentarios,jklett@cbm.uam.esandacortes@cbm.uam.es.

[1]NeedlemanSB,WunschCD.(1970).Ageneralmethodapplicabletothesearchforsimilaritiesinthe
aminoacidsequenceoftwoproteins".JMolBiol48(3):44353

Anda mungkin juga menyukai