Help

profileAlex1
sequencealignmentcpp.tar_.gz

sequenceAlignmentcpp/.cproject

sequenceAlignmentcpp/.project

sequenceAlignmentcpp org.eclipse.cdt.managedbuilder.core.genmakebuilder clean,full,incremental, org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder full,incremental, org.eclipse.cdt.core.cnature org.eclipse.cdt.core.ccnature org.eclipse.cdt.managedbuilder.core.managedBuildNature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature

sequenceAlignmentcpp/data/.length3.seq.swn

sequenceAlignmentcpp/data/.length3.seq.swo

sequenceAlignmentcpp/data/.length3.seq.swp

sequenceAlignmentcpp/data/length10.seq

TKDAKVVVDA DDKLKDVKLL

sequenceAlignmentcpp/data/length100.seq

DVLTADDDKVVTLKKKDAKVLTDALLDKKKDLAVDLVVLKATTDKDVTKKAKVKDTKTKAAKVLATVVAKKLLVDLATDLTKDLDDKAVTLVLAVTTVTD LDAATVDKLVTDTKKKDAVDDKLDDKKVALKKKTKVKALLLDLDLVKADKKDLTDATKVLLTVVLKTALVDDLALKTVAVVTVVDVDLVKDKDKALTKAL

sequenceAlignmentcpp/data/length1000.seq

DDVVKATTLKVTLAKLDVDDTVKLTLTDAKLKLALTVLVTTTKKKALAKDLDLDDDKLDKVLVKATKALLTKTAVKLDLTLDAVTTKVDLAVTTTTAALDATTKVAATKALTDTVDAVADDDTKKVDTAVTDTTKVLVDKLVTKDLDLLLDLLKTKLTKADDKKVLLDKAVADTLTKVLDTKAALLKDAATVDKDDKDTLAVKTLTAADKLATKDDALDATDKTTVATADKKKLVLKATALLAVTTKVKTVTKKVLADVADTTLDTDVVLLKTDLADDKTVVAVDDDAVVTKLDKKKAVVLKLVLDLAAVVAKLVTDAVLVDKTLTLATLKLTTDALAKVDADVLKTDTLDDLLATVLKAKKKAVKKLLALTLDDDVTDLVTDAVVLTDTDLLVAKLKTTDLKKVLAVTLTVLVDVTAKLTDVKTTDAKLKKLDAKKKTVLTATKTVTDATDTDAKDLAVLAVKTVAKKTAVDAVDDAKAVTDLTLKKTADDTVDLVTVALTDDDLKDVVKLKAADAKTKKTLTAALAKTTVAVTDVVVDKLDLTTKAKVLTAVLKDAKAATLVVDAADATDAADKLALLATLVLLTVDTKKVLKDAKKKKLADTAVLATTATLDAAALTKVLAADAADTVLKKVLVTVLKVAVTAKTVLLKLALLTDKTDKVVLAAKTDVTLDALDDTLLLVLTVTLKALDVALTLVDKAKTVTLLDKTTDVLVTADTLTDKTVADDTTVADDALADTTTDDAVTLTVTLVKDTAAALKVKVKTAALVKADVKVDKVTATDADLAVDAVVKDTLKLDALTKAVKVTDVKTDDAKAAVKAKLVKKKKDTADKLKDDALATALDLLVKLVLTDVTDTTALKTLLKVADLKVKATKATKVTALAKTTDLLKVLADKTKLDDTKDKLVVATAADTDALLAKDLTKDVDAVTDLVDVLKKVKATADKTDTDTDLTKDALDDTLTTLVAATALDDALVKLDTVTDKTTTKALLDVKKLLKDDTKK VATKVALLVLAAKADKATDVTKTDKDDKAAKAKADLAKKKTVKLATDAAKAVTAKVALVLALLVDLALAKKKDVVLDLLVDDVTVVVLTLLTDLKVKKLKTDTKLTALTLVADDKDLADATAKLDLDVVLKAVDTDVLVTTDLKTLADLTLVLKKLKTLTATLKLTKAALAVAKVLTKKLKKADAVVKAKALTKDDDLVATKVKVKVKKKAKVADDDDATDLADVKLTLALATTKTTATLADTLLALVAKTVVKAKVADTKAKDVAKADVKTALTDALLTALTKDLKDAVAADTLALKADLAKTTTKKKTVALDALLVTTLALVALLAKDKVDTLAALDKAVDDTLATVKALLKKADVVLVVKTVLDDVTKTVTKLVVLALDVAVTADVVKKDKKDLVTVDDLAVDDTVKDKLKLVVLDKTALTATTLKTLVDADDDKDLLVDAATVAVKKVVATDTDVTKTLLKDLAATLVAVALDKVKDKKVKVAAVAVAVKVDDTDTLTDLTTVVKTKLAVLVAADTVALKLVVTTAVLLDDTTDAKLTDKALLADVDVLKLATLDLADKLLDVVDKKAVTKLKVTVAVLADLVVAVVDLKTDVLTDKTLKLTLLDTDKAAKVTKDDVATTALTVVDVVLTDALTLDDDKVTKDAAKTTDTADTLADKTKVVVKVDKKATVDLLAATADAAKKVADAALAAAKTATLADLLALADLLVVDDADDLTDLKKDLVVKKALDTKVTATVLDTDDDKAKAVVLKKKKLAATVKVKATKTVDVKALAVVTLDKDTVKAKKLKATKALTKVVKLVKKLKALADKVALTKATDDATKVLTVAADKALVKDDVDLAATTTVDLLTTTDTDVAKVDVTKKVTVDVKKTDKTADDLKDKADDKLDDVDDAVVDLAALDDAKKLKAAAVDAKLDVVDTALTAAATKDATTLLTADDALKDDAVVTKATVVAKAATLDAAAKAKTLVAKKDLALTADDVATDDATADKLTDVLDALVLL

sequenceAlignmentcpp/data/length2000.seq

KVADVAKTVKTTTLTVTLDDVKLALLAALTTVVALLKLVDKDALTVAATTLTTKATKDKKVVVKVVVADLLVDTDDADTTDALDTVADTVVALAALVAVLAVKAVDTADDVATDDAAKVVKATVTATALVTKLLDLKAVTVLDLLKAVDKVVTALLKATDATTVAALAVKVVDLLLVVTAVDDDLTLDDTATADTVAAKLVLKLDAATDLVLDVAVVVDDKVDLLVVTKDTLVKDVAVKLKVLATDAVKKKDVVADALTAVKDDVTTKTDKATKLATATDTTALLLATLLVTDVKVADDTVVLKLDKAAKVDADAATKATAATKALTVADDDLLVVAVVLLKTKAKAKDTDLKTTDTDKALDVDTDTLAVKLLTVVATDDKDLAKDVDKTVDVATTDATAAKDAVKDADDVLVTVTKAVDKLKDKDTLTKLVVADTKKDKTTKKKLDAADDTTKDDDDTKLTAKTLDKKALVKALKKTVDLTDKKKKTDTALKVTTTKVAALAVDTDDALATKVADLTAKLVDVVDVTVKDKLKKVTKVKKAKKTDADALADAAKVVKVAVTATAVVTAVAAVLKKKTKKKLVDDVLVDTKVVDATKTKKKVVKLTKDDVDALKVVVTTDLALLLVLTTVLAVADKAALLDKLDKDATTLTADTDLLTLTKALDVKKTKLDLLDTKVTTVAKKDKLDKVDTVALKLLTAAKVLAALADALLAVAKLTDDAKDVVKALKKDLDKDKLLLLVTLVVLVKAAVLLKVKLDKTLTDTVTLDKAKLTATVALKDDKALDDLALKVVDLDDAATAVVDAAADADDKLDKVDVLTTKTDKVVLAKLTKLKKATVALDVTLLALVLKDAKAAKAVKKDAAVAALLAVDLAVDLLATTTKTALLVLVATVAVVVLDKDTAVVTTKALVKDALKLDVLKTVDDKTDDDKAVVKLLDLVVALAKAAKKTADKVDLDADVKKTKTDTKDAKDAKAVADTLTTKVVTKKDKVDAVVKKTVTVVKKTDAALTKLTKADAAVKKKLKALDKAATLADLVADLTVTLDTVVTLALVLDADDDTKAVKTALLVTVLDVVLVLATTTDLVVKAAATKVLVTDDALAKKLLVKTAAAKDKKADTVADALLDTKKKKVLLDLATVDAKKDALKAVLDDAALKLDLAVVVADTVKVLVKTKAKKLTLDLKVLADTAKLADLALATTTAVKDDLTVAADADVLTLTLDADADAVLVLKKATLTDAAVTKDVAAKDKAKLDKDDLLKLDATVADLAAATKVVATDTKAVLLADLVVLVTADLLTTDDLLKKVAAKAADALKDTKKAKTKAVTKTVTVTAADVVVDKTTTKTKLVAAKAKATDKVAAADVTLVKDLALTKLLDKAKTTTTLLDVKLDAATKATLVDKDLLDTALKLATDTDAALAKLAVKDKDKLLDAVDDLKVDTKATLAAVTTLAVAAVLADALDVTVVDALTKKLLKAKKDKVTLLVDKVVLAKTDTTVDVKALTVKDDDDKKDKLAKDVKTLVVVVDDATDAADVDLDAADVKDTKAKAKDLDVAAAVTDTLTVKKTVVDDKTLDLTLDDADVLKDTVADDLLTTLKTLAALTVTDKATTKLTDAVLKKVKLDTKLADDAVTATATDTKVTTTKTKAKALDDKVKTLVTTKVAKKLVAVTALKDADAVAKKVKLTKTVDTVTDTTDADATDVLVKDDKVLDALDLLTDALATKLVKAVKTLDALDDKDAKTVDAAVLTTVVLLDLVAVDLKKVTDAKLAVDTKDKKLTVVVTDTKVVAAVTTKALATTVKVKTVKTDALKVDVAVDVDVVDTVDVAVVDLKKVAVLVDLKVLVALVAVKVLTTLALDLVDDAVKVDTALKDLKDAKATVALKLLDVKAKAKLTTAKDKTDAAVKALDTVKADTAKAVDLDKADVDVDKKTVTVKVKVLVAKDDKKTVAKVATAAKKLTALKKKLKVLLDDAAKVDDDTAVVVVTKDLKKKALLTVTKALDLVKLKKTTVK DKDKTLTDTDVVDTTDLAAKATAKLDTDDLKTLVVAVALLDATVLLDTKDAKVVALLTVVLALVKATLTDDDLTALDKAALLDTTKDTAVLKLTTATVDVTLDKTTKKTDVKDVKLLADLLTATVAATAVAVVLLTTTTLDALDKTKKADDLKAVKVTDDATVVKLLAVLTAAKTTKVADATVTTKDDVTTDDAKDVDAKTVADVKKLTLVLVVKVLTTVDDVVVTAKTDLTDVVDAAVATAVDDLDALTLLADLVKLDVALLAADKDTTLKAVVAKTDKALLTLDTLVKDTDAADVTVLKKVVKKVTVAKTVDALDDAKDVDDTAALTKLKDDVKADVDTTLDDKLAAVVTVKTALDTVLLTTATATLTLLVKTLKAKKALLVTTTVAKVKTKDLTVTALKVDVKLLADATDADKKVADAAAVDDKKLVTTDDVDAKDDDTTKDTKLDLAVAKKVDTKDVTAKALLDLTADLTTTKLVKLDTLAVDVVKDATDKAKDVDTAAATVTATLDTLKDDTVDKLVDDVKLLLKVDKKVDAVLVDLLKVTKDVVTKDVKTTDAKAADVVADKKLLDADTLLDLDDVTTVKVLAVLDTTTTLLVLAVKTADAALDATLDTKKVAVVVAVKDDALVKVDDLAKADVVKKVDTDKVAVVLTDVAKLTLTDLDAALTVLADLLKKLLADADVVVLTVDVTTLADLLKTAAATTTTDDKLTVDLDLDTLTDTVVVTTKALADKVLVAAVDLLDTAVTVTKKAADVAVKDAAADKKLVATTDTDLLKKADTLVTDKTTALVKLLADAVALDVKDAADAAVDAAKDLLLVDTKLKKTLVDTTLDVALTLLLVKDKVTVAKADDDLDKLVKTTAKALAKTKLATDVATKVTAKKLAAAKTDVTKTAVVDKDAALLLAVDKDTTKDAKADDTLVKDVLVKAAVKVTDATVLLKLAVTKDLVLVLVALVATTLKLLALLVKAKATVKALVDKTADLDVAVLTVDVLKKLATVKLVALATKDKADLKDADDAKTLTDKVTLDLTVDTKKKKKTKVATVKKLLLADTDVDKLLDTLALVTTVKVAVKDKALDAKDALKTKLAVTATKLLLTLLTVVKTTKTATTADTTAKAVATADVLTLVAADATKDAKTLTDAAKKVAVAALTDVTKAKLTDALLALDVAKLATLKDTLAVALDAVTDLTVLVKLLKLLTTVLAKLVKAVTLTKVTDDAKALKLAAKTDALVVTKDAAVKATKVKAVDLAVKTTTDLVLATTTLVTVTAALDTTVATATATVTTTTADLTKKKKVTALATDKLTDVLDVLDVDTDTVDDTVADDDDVLLLTLTKVKVADTKKALTLKKKAVDVTLTTLAVAKVVVTTAALLTTDLTDDVDDLVTLDVVVATDKAKTKALATTVDATAAKVLLLKKLVDTKTLDALVKDTLAVDVLKLTAKTDVDTLVKADTDDAKVTTTDKTLATDKDKKKDKLDTDLLAVTTVVAKKLADTLVDALKDATLVDDVTVKTTVALAADKKLLKVDLTKTKKDTLVLDTDATVLALKLTDDAAVKDTLKLLAAKDLKLVVTAKVVVALDLKADKLVTKAKKVKLAVLDTDKVKKAVLDDKLKDALDLKDADVKTLLTTLLLAAKDATDLTLVVKALTTKAKDLKDTAAVDLTVTKTTVKTTLVKDAKATTALDDVALDVKAVLTDTTLAVLVAALTVLDDVTLTATTDLVVVTATTDADDKALDDVADVTKTVVALTVKLTDTALVTKKKAADKDADAALALLVVKKLATAVKADVVDADAVLKDTKTLKVDLAAAVADATKLKALADTVAKTDVDTTKDTKLTLAALLVLVADDKKATAAKKKLLLDVLDTVLLDDKKKKLVVVVDKAKVVKVDLTDATLTVAKLLAAAKKDLTAADALDDVATLLTLDLVVKVLAKDTAVDLLADVLAVKALTDLDVAAALVTDALTDVKLALLTDTVKVVLDKTAAKVVAVAVAAKVDADKVTKTTATDADLL

sequenceAlignmentcpp/data/length3.seq

DVL DAV

sequenceAlignmentcpp/data/length3000.seq

LKVTKVDLLTDTAKADADVKDTTAVTTAKTLTAVLVTLLVLTVKTVLDADDVVDVKKVALAVDTTTKADVDKVTADLDVTVKKKKAVLKKAAAKKDTTVTAADTVLDKVKDKDVKAVKLTLALLVKAKLTVVTTLKATTAKKKVVDKVVLDKTVLVAVVKAKDKKDKALDLKKKLKKLAVLVTLLVVLAKLDAATTTVALAKLTVKTKTTLKLKVKTDKKDTTVVVKLTDLTDTTLKLDKKAADKVTLLDKVDDLKTVTKADADVLDLAVDTLLKLVTAADVAVDAKKADVVTVDVKAALLAAVVKLALVVDKVALDLVDAVALVLKDDDVTDKKDTAATTVADKDDTDAVDKATADATKKDDVKDKVDLDDDDKVLTKTVVVDVKVADKKVKKTAVVAKLKAKADLKTVKDDTLKAALALTVVLVDALKKKATKTKKVLDTLVLKVDKVDADTLTLKLLLKLATTDKTLVKAAKTTDVDDKDALVTVKVLVKALAVTAAVTVTATAKTDLTLVTDKDAKTDAVKDKKLAVVVTATKDALAAKKVKTKDAVTKDATKADAVTLKALLTTLKDADTLAKDDDLDLTADVADLTTLTKAAVLDTLTKADAKVDKKDTADKATAKTVDTTDATKLATTAADKTKDLAKKVKLLVTVLVDVDLTLVKLKVLTTATTTKVKTTLKLATAKDKKVAAVDKVLAAVLVKDATTTTAKAATVDTKKTDADVAAATTADVTKDVTVKTATLADLAVLAVAVVKVTKTVKDVKLTDLKDVDVTAALVATKDVKDDAKLLALAKAVLKDLTLALATLTVLLLALDVVKKALDADTTVDAKKLLVDKDVVVLAATKLDKVKDVDATDLVLATAAKATVDALKTAAKVKVKVLKDAAKDLDTDLKKVTDALADLTVVKDTLKDADDAKVVDALTVAVKVALLKTLALLLALDKDKVKDADTDADKKKDALVKLLALKKKDTLKAATKKLTAKKKVAVVLDALTTTATDADVLKAKLATTKDAVTDLKKTKTAKVALTATLALADDKTTDTTVLLDTATDLVDLTAVDKVAKTLTLVLTTKDDTLTTLLVVVKALVDVDLVLTADALAVLDKLTATVLTDTTKVKLLDLLKKDKVLALDADAVTVADVLKVKALAKVKADTKAAKTLDDATKTTTTDTKDKALDVVTTADVADDLAVLKKTLDLVATDDTKKKVVKKLTDAVLDKKTLKDDALKLDATDTVKTLAVALLAKTVVKDVTTAVAAAVKTKLLTDKLALDTDAVDLDLDLALADDLATLLLDLAVTAKAVLVLVKTDVVDLDVTALKLDVTADKLATDAAAKVVVKTKDDLLLVKLVVKLKAAVTLDDAVDLKDTTLAVKDAVLLTTDVLKKTKADKADKTKTKVADLKALADVDVDALVLDVTTKADATKVTAADDKKVLTTLLTLLAKKKALVDADAVVLDKLAVLAATTLKTKDADVTAKTLDKVTVKLLDALDDVLVVDATKKLTTVDKTVVVTLALLAVLTLKAKKKDAKLADTAKVDDDATTLTVTADVDVVKVLDKLLVATDLAVDAKVKVTLVKDLKTLDALKAAKKVDLKVATVAKVDKAVTTLTLKAAVTKKVDAKKALKLLVTTTVVLKTLVKDKKKAAVKVATVLTLTVVVDVLTDVKDAKLDTDATDVVVATKKLLDKKLDLTDVATVVKKKTAAVATADTVDDKTAKALVDTTVDKKAVKLLVDDADTKKALVDKAKKALKLLTAKLKATVKTKTLVVKLAKVTKLTLTALTLVVADLALVLLKKLTDVATTDVDDDTDDTKATDDVKDDKADLDDDVADKDLLDDKAKADDTAAVVTDTLALDTDKLKVAATKKKKVTLTDKTVVDTAKLVKLVKDATLTALDTALLLLLDKKTDDAVVVTKTKKLTKLVVDAKLVADLAKKLLVAAKDKDVATVLVLVVAVVADLVLTAAVKKAVVLKVLLVALTAATVATTAVAKKTTKLDTAVVLVDLLAKVVKDVAKVDTLALTKTDKADAVDKVDLKKDTTTLLADTTKLDDADKLDVVVLKVVKKLLVAAVKDTTLVKKVLLAVAATVTVAVLDAAKVAADLAVVLDTTLDATVATLKDVDAADTTVAKAAKKAKDDLKALKATAVAADKAVVKAKAAKTVDKTTKDVTKAVADVKDVDAAKLALDTVTTTALTDAKDDDDKKLAVVDVLATLDLKTKATTKATVDALADDTKKLKAKKALDADDVKLTKLDTKTVATLLDVDDAVVDTDKVKLATKLVTLLVVVKVATDKDAAKVKATLVDALDTLLKTAVVAKAAATTVAVATTTLATLKTLTDLLDVALVVLKLKKLTVVTKVKLALKLKTLLTTKAVLKDTKLLDAATVKTTLVDKLTLLDKLTKDLATTTAATTLDDDKATVTVAKVKDLTVLTVADLKDALTVLATVKAVLKDTDLTTVVTVTDAVKLDAVKKLTTLDTVDKVADLLDTLVDKLDDLDDVKKAAAVDAVLTKLDDLDVKAVLKTVDDLTKDTVLKAATDDLAVVVADKALDAKTVTTVLAKTTLLTAVDTADAADDLAKTVKATTDVAKLTVDVATTATTKDVDLKDLDKKKVTKDKVDKVLTDVDVTKTVVDTDVDVDTVKKTVTKDLVTTLKKKATLKTTKKVLTLVKKVLDDVLKLDTTVKKLLTAADKKLDDLLVADKVTAKTAVTTTDLLAVATKKADLKAKAALKVKTTLDDTVVVATDVLDVTDLAVLDLVLVKVLTVALVKTKAKDDVDDDDLVVLTDTLKLLDLKLDVKALLAVVLTDVKDLAAKTTAVKDAVAAKDLTLVTVDKVDLKKVKDVDVADKLLAVLAVLDVALKLDDVDALTKDTDADTVAVKALKVKKTTAVKAKVLTTTKDKADAAVVALAADATDLAVLAKKDTLDKADTLDVKVDALVVTTDKTVKLAKLLVKVLLALAKAVDLDAKKTKDADKKDVVAAVDTLKVLLDTKATVLKAVLDDTTDVDAKAVAADTDALTA LALADVTTLKTLVDAATKKVDTKADAVVLKTVTDLTKADVTDVLVKVTDTLDVVKVLTLKDLLTVLLTKAVAVDAAVDLKTALLLDVLVKLKTVTKDDLKKLTDLATKKKVKDLDVADDVADKLVLTTDLTALAVDKDDKLTATDTLKLDDADLDLLKADTTAVKKALDLVLDKADVLDTVKVTDDKATTTKTLADLVDDTTAKVDKVALVTALVLVTDVDLTKLKDATTATVVLVVLDAKKAVAVTLKVVALKATLAVATDTVDTLLTATDADAALLVLLATDTDTTLALKAVKTDDTAAVDLKKTDDDLDDADKVVTLVTAKLAVLDLTLDAVLDVTALVKTATALKDLVDLDAKLLTLAVDDALTDAKDDADLVDTLKDKAALTLLVDKADKAKLDKLVADKLVKADADAVTVAAKLTVDDDALDALVVDAVTVVADTLALTAKAKKTLVVVATADTTTLTLVKLDTVDKLKVALKAALDAAVKVTDTTTVAATKKTVDVKVAALVTKVAVVTVDDVKVVDDVVVDAVLKTKTAKLLDLVVLVDTKVTDVVDTTADTDLAKKKKVAALDLLVTVLDADDLVLADDADLTKDTAKTVAKALVVVLLDKVAKLVADKVKKTDLLKTKVLKVTTDTDLTLTATADDKTLTAVATLTVDVTTDTVTKTVTKTLLDAAAADLAKKVLLDAKKTKDVTLKVVVDKLVVKKTLDLTTDKLAVKALTDDDDLDKTTKLKVKADADDKTKATADLLTDLAKLKKLVKVAVVDVTTATALTKLVVLALLVLVDLDATTDTVLVLTLADADVTVATAVVDLLLVKDKVDKLDDTATTVLTDLLDAVAVLLAVLKALVLTVTKKTDKAAVDVLLDVATTTLVLTDVADDTDDTVAAVAVVLKLVDLVKAATKDKLAVKLATKLKVLTTVLVTLKTDKLVLDKAVKVDATVKKLVTAKVDALTLLLVTTTDAVDAVADLADTDDDTLKKLVAAKAVVAAVDTVTVTLTVDAADADVLAVDKVKLDVTLVKKTTAALDVAKKTKVADAAVVKLTVTLVKDDVVDDKATDLALTKTALLADKDDDTVLVVVAATTKAALVLVVKLVLLLLAAKDKTAKTAKATDAKDADAKKLKLVLAVDDKAATTLDTKVKLTDVTDTDVKTATLTKVDKKDVKKTVLVTVLKVADTATALDATVVTVALAKLALTKKKTALKDDLLALVVTTKATKLALKLLVATDDDLLDTTAKVTDTKATDDLLAKLKLVVDVDKKLTVVDATLTADDTLAATVKDVAADLKDATALTKDLTTTLDLVTDKALLADLAADAVKTKDVLVVDVKKADKLDDVVDDVTVLVKVTAVDTATTVVDKLTTDADVKDVTTKALKDTDTATKLDKTVDTTTKLDLTLVADLVVVVDKKKKVAKATVKVLAVDTLTDLVKADKAKAVTLADDTKLLALAAVVDADKDTDTKAADDDDDTKVAVLVVALATDLLAAAKVAKVVKLKVTDTKLLDALLVKTLTKKLLLTTKLDLLDLKAKDDLKDKKATVKDTLKVTAVTTDKAAADDKTKTLTVDTKLTALKLDLTKKATATLKDVTTLKALAALKDDKVLDLDLKAVVVAAVVKADKKTKDVDVTDDVDKALDKATATVDKTDAVTKLTKADKAVDLATTAADKAAAADKALAKAKATAVLTLVDTLLVLATVKVVVLLLLKTDKAKAADDVKVKDLTVTKAKATKKVADDDALTADTVDDTALVLKTLVLKKKLVAADDDKDKDADAVTADVDDVKAVKKDLLTVVKAALAKLTKTAVKLLKVDKDKTVTVTATTALLTVVLDTDDKVKLAKTTKTALAKVAKVADDLLTKLAATKDLTKTDLKLLDTLVVDLDVVTADDLKLLAAKDDKTAADVKDTTLAKTVDTVDVTKADTDKTTALVKLLKLKDKAVTATTLDKVDALLKLLVAADLTKLDATLDKDDDDDTDADKALTADKKLTTLAATVVDVADKAALTADTLKAADKKKTKVTKKKLVVDDDDDKAADLAKVLLKLVTLDDVKAADTLAVTKDDKKDDTALTDKKDVDTDTTLLKAVVKTDLLAALVTTVTVVLTTVLVATLDVALLLVLVVTKDTLATKATLVTKATKLKLKDTTTVDKKLKKDVVKVTLDTVLTKDADAKDVAAATKDLLKLTTAAKAVKAAVDVLTLLLKLKLTLDKTLVLVKDAAAVKLVTLKDTDTAATDDLDVDTLVKKAVVTTKTDLDDLLKTDLVAATTDATKDVATDTTDLTVDKTKAALKLLVVDVADLLAKADLVLTATTLDAATLDLKDTVDDAVTKDDVVDLKTDLTVLATDTVVLVLLAVKLDAKTKDKTTALTAVDKAKATVVDALTKDKKALVDLKKVVVATVDKLLAKDTTTKTAKDLADKTVALADDKDATDVADKVAVKVVVVAVKDDVATVAAVVLTTAKDLVTTVLALAVKLKVKKALKVTAALDDADTDAVLLDDVTVLTLTLVKVKALTTATLKAVKAAAKTDDDADKKDDVDAADAKTVDTTKVDKATVKDKKVLATLVTALLALDKKVVLKKVKATDTVLALLAKDLKDLAALLVLALAVDVTLDDAAVLDAKVDALVLKKLTTAVKATLLLVLKTTTLLKAKTDTVDLVLVLVTVAVLVLDVLVLDKLDLAATLKLKVKAVAVAKATLKLTKTVDLLTTKKKTAKTDLTAKVVVAVKKAKLDTATATKAAAAAKLVVTKKKDDDAALDTATDLLVLDKDTDVDKVATAVKATATTKTAKDLKVDVTDTDAVTLDLDLKLVKALDLDVDLTVTKAVTVVDAKLLDVLDTVVDALTTTVLDADVTAKKTDTKKLTKLVTTAAVAVDVLTVLKALLTLADTAKDKLDAKLVADVKDKKVKADDVDLDKVTKALLADTDKAAVLALVVLVVAVLVDVLKTKTLKKVKKDDVKDTVTLATLAKDDLTKDATVDLDDLTKLDDVDTLDLAKDKTLTTKADAVDDKKTKTKDVLKLTD

sequenceAlignmentcpp/data/length4000.seq

TAVLVVVLVATTDVDLTVLDKDVLTTAAVLKLKVTTADDLLAVKTTTLTTVKADDVKVTDKDDALVVADVADKDTAATATLVDLAVTDVTAKVTTVLKDALVVKDLTATLLAKKTKAVAKVVLLVKLTVTVATLDALKKDTLTDDKDVLVLTLAKALKALVVLVTDKAALADLDKDTLDTTKDDLVATVADDVVAAATVLVTVVVTTDLVDVTVTAALKLVKLATADKVDDATVAAVDVDTKVKDTVLLVVKVDVKLDLKLLTVTLKDVLLTTTKLKVKKATLKTKVVLVVAKVDKLTKKVLDKATKKVDVKTDDVDVAKKTTVKKLALALLATAALALKADTVTALDTKTLDAKLAVAKDATADDTDLKLAVLATLTKAAKKKKTVKALVAVKTKTLKKDKTTALVKDDKTLTDTVKKVDAKTLLLLVDKLDLLDKKKAKLDKVVLDLATLLLAKKDLALAADDADTTVTADDKDTVKDDKKVATTDTAAKAKDDTLAKLLTDAAVKDDLLLTLVVDLDADTLVKKADTLLDDVVKTATATTLALAKVTKDTKLDAKKATTKVALVTTKLAVVVKLVAAVLLTKKAVAATTVAKDKTVDATKVKVVLLLLDDDTVADTVDLTDAADLLAVALKATKLATKLAVADLALDTKLVVDTTTTTDAVTDTAKKKKAKLKKDTKAVDVLVVDVVDLDVLKDTTDADVDKVAALDATTKTTKDAKTDKLTAVDKLDVLDLVLDVDTTTKLVLADTDAVDKDLVAKTLDALLLVLVTKDKDKAKDLDDVKDLKVVALVVTLKTADKATVDTAAKVVKDTVVTDKDTVTTDLVLDVDKLTLKLTDKAADVLDLKVVVDKKKKDTVDLATTTLDLTDTAKDLKLTADVTVTLDVTTKTVTDKVKVKDVVDKADVTLDLDDVKKAAKDLVKAAVLKVTALDLLTVTAAVVDVTATKLDLDLKDVKAAADLKKLKAVLLVAVVLVKTTAVKTDVVVVTDDVDKTVVLVAVVVKKVDLKVDKVVLKTDLTKTTKALAAADVDAALVDLTLLKLVVLLTVVTTVTAKTKLTALDKTVTVALLVTVKTDKTKLLAVADVTTKTVTKALLVTLVKTTLLKLLKAVTVDDKVAVDKKTAKLLADVLKLDVLLTTDTKKKDVLLVADTLDLDVVLDATLVVKTTDTTTTKTVTKATDTVTDATDVKTTDTKAADDLLKADTKKVKTAATAKDLADTADDKAKKTDTKALDAKLVLVLDKKKVAADVTVDDLLTLADDLKKDLDDKVDKLKAALDKKKKDLTLKKLADAKVTTTLDVTADDVVLTVADVLVTLTVKTVALDDTTLVKATTAKDTVLLTLVKLDKLVVALLALKTDVAKDKLTTALLADKLLTVKLDAKLTKKLDTLVTLDVLVKAKKAAVKVADLKKKVLVAKDVLLKVATTVTDADVVKTALALTKADTKTALLDADDALVDLTLVVVKDTVKLDTKKTTLTKLLLTKKDTVKLLKLKTADLLLVAALLVKTVKDVKALAAVVLTVADTKTVVVADLKKKVVAKKDKDDKDAAKVTTTKDDTLLALALDDALVLDTDDDVVAVLDKTDVDDVKAADTLADTKTDLKDLTLKTLTKAKKLATDKDVVDDVDTALKKAAVKVDLDLTKKLKVLKVAKAAVLLTLVVLLVTVKLLAAVLLAAVDVKLDTALAADVLTLADVKTVKAALTTTTKVKKDKLKLVDLKLADAVALDDLKKATTVLLDLKVVDLVKAKALAVVVDKLTATLLKLALVVVVLVLVDLVVDTKTLADLATTLTKVVAKVVVAAADLDKVDTTLVKDDLAKVLALTKTTLDVKKKDLALKATTTAALTVATTVKTTLATKAKLKTVDVKALKLVTVVKLDKLLKTDVTVLKLVVTVDLLDDDAKKLKDADVALVDTKKLAKLKLATTDKTLKTALKKTTLLAVVDTTLDVTAAKADDAVVKDADVDKDVATLATKKTKTLDTDLVAKALKTVLKLVVAAAKALKALVVVLATADKLAVATVDTAATTDDADLDVVLVALVVTLVVKLLVTKKKLKLAKKADVVALVDDAKVDAVTKVVLDKDDKDADKDVTADALDVLVTLVLTKDLLLLVDAVTKKKTKVDDDLKALTDLDAVTKAVLVVLVLVDVVTDLADKDVTLDAAAVKAKDKLTLVKAVADTTLVTATKKVKKTDDDATVAAKLLDAVVDATKLVLATTDVLVTALVVAVLDTTDDLLKDDVVLDLKADLAKDVKAAVDTTDAALALDTKLADTALLTDVKDDTALVKKLKATVTLDALVKATADVKVTKVATKVAKTKTKDTDKLLLKTDVTVAKVLATAKTTAKADLLVKVKKKAKKKTVKVDKDKVAVVTKTVTLDDTKKTTTLLALLDLDDVDKVATDAKKATKDDDDAKVTTATKLTVDAVALVVVVVALTVVLTVDLLDVTTKKTDAKAAKTTTAKDKTDLAVLTLAATDVKDDDLAKVTLTADADVALVKALTTADVKADVATDAVLVLLLDAVKVVLTATALTTAKKDATLDDLAKTTKAAALDKATTDDDKVALDDALVKTLAKKVTLKDVVTADDADALKKATVKVDTLLADTKAVTVTTKKLVKLLLADDLKLAVAAAAVLDLKVLAVKDTKVTDLVDDTTLAKDVDVVDVDALDVVKAKLATLVTVDTLDKDALATLLVVKLTTLTLTTLLKTLTKTTAALTLTADLDKKTKLKDKLVDDTDTDAVDTKDLTDVVTKKKVDVLDVLTDDDDDTLDLTLDDTLDVDLTTADDVADDKAKLKAKVVKTVTLTKVVALAVLKTLLKTALKVKAKTVKVKTAKVDDLDVTTVDATVTAVKTDTDKDVAAVLVVKLLTDATVVTDKLATDADLKKKAAKTTTVTLVKTDALKVDADVDVLLTLAKKKTVDKLDAVTAVKDAAKAADKKDDAKKTKKTTVKTTDLKVAAKDDVAKLAAVVKLDVVVLDKVLAKDDVDAVVTLAVAVKAALVTKKLKDDLDLLVVLLAKTVDVTAKATVDDKDDDKTLTLKDDLDKKTTTTKKAADVVVVVDAVVKVKTKALLVATKVLDLVDTTTTDLKDDLLALAVDVLLDAATAKDLKTDKTTKALTDVTVTKTKTAVLTTKLDDVVDDLLKKKDKALKVDTKKKATVVVTKDVVTVDKKVTAVAVKTLLTLVLDLVTKDLALKLTKTDAVKALLADAAVTDDATLAKTLKKTAKLTTDVTTDATTVVLLLVKDLALLLLAKKTKVDKDTKDATLLKTTLATVTDDADVTALKKDLVVDVAVVKKLVTKVKVTAKKAKKLLDAVTALTVTKDTKDDDLVKDTTKTAAKDDAAKKDLDVTVVTLLDVLVKADTDDVAVLKDDDKVAVLDKVLKDLDVTDAVLTKAAVLDKTLTDKLAVDTKDLVVAVAKDKLDADKLTAVKVTLDTLTLLLDKVLTALTVTKKALDLDLKKTALKLTKDDVKKVKDDADTALKAVKLVATATADKAATTATLVTADTADKTVDDLDLDDTDAAADDTDKKTDVLLDTALTKKLAKDALDKTLTTTLKTTVLTDKATVVAKDDVVVVLVLVDAVLLAKTKLDTAAAVKALKDKLKKADLTTAAKKTDLDAKDKDTTVTLDATKDATLTVDTTKLATVADADKLAAKATATKLDTALADKDVKVALDLDVDKTVVTLAAVKVLTLDAVVDKKTKATAAVDAVTDALDLADVVLAVDLATDVKDLTVDAAKVLKLTAVVLLLVDLDKAVTKLKDLDDATVTKAVTAKTLDTTTTVDLLKLDLKALKLLTTDDLAKDLKTLKTLKTDALLKVDTVVLTATTVLDVAKAKDADLDDAKVVTKVAVKATKKVKDKATLDKALDTATAVLTVLTDKKLTVVVVADDDKVKTTADLTDDDLATVTKDALDLVALDTTADTADAVTDVKKTKTLVTAKTAKVALVALVVAALDVTATKTAKATVAKAAAVVKVVATAVLTKDKKATATTAVDDTDVDTKKKVDATLLALVAV LTDLTKVLLAKKTALVDTDKLAKTKAKTTVTTKTDVDAKVAKDVKLVTDTDTVTADKVKVTALLAAKKAALTKAAAVADLADTTKVLTLALAAVTVLKVVKALDTVVDADVTADLDVDDKLTVTKADVAVKKDDATLDVDDLALVVALATVVLATDKKATKKAKKTALALATDDVTTAVALATDVTTDATKLLALVLLKLKLDLDKDAKTTKAKAADDVAAVTTLAKTVVLDLADKLLDLATVLVVVVVATVTDLDALLAKTKKLTLADKDVAKKVVTVTLKKDKVTKALLTADVDLTTVADVDAADLLLVVLDDDLDVAALLTKLKAVADTAVTLDKKVDVTDVLKALTDLVVTDTVDVLKKDADKDTALADDLLKKLTVVKVKKKVTKLKLDDKAKTAVKDKAALDDKAKTLKKVKLKDVKTDLKTKTKTDDADLVKDALLTDDVLTLKTAKKTDTADLTAKDDKAVAKLDAAAATKALTLTALAATTATTLLVAVTKAKLTVLVTVLDKLKLAATATAVTVKKLKKKVDLLKKKVAVTDKVKAADALKVLVTKLTADTALTTTTTLLLKLAATAVAAKLTVDLDDVAAAVTKKDTAKAKTATKAVVVVKVLKTVDVVKTVTLTDLLKLLDVVTAVKDVKTDTTAAKADATVKDVDVDVLLDAVLDDVVTVLTTVVLAKKLVADALALTKTKTKLLLALLDAVLATDDTLTDVLALKLTDLLLLKLKTLKKLVDTKDKAKVALKVLKADVDTLVLDVLTLVVLVAVATVAKLVALAAVVVTKTLVVVVDDVDKKDVTDAAVTDVDTALKKVKATVDKVVATTAATDVAVADTLLLDKVTVVVTVLALVDDTDKADTTLTAVDALKVDVKDVDATATLAVLVLTTLLAVDDLTLLVDLAAAVVADDDTDVVLKATKTVTATVTVLATATALLDAATLLLKVATDVVVDKTDTTKKDVAKTLLTDKLKKLTKVKDLVLVAAVDAAADLKALTLLVVTLLAADDADKVTDKDAKTATADDAAKVALKKKAVLVTDTDTKDTLTVALLDKLLDKATDKTTKDATVKVVVVVTADLDTTVLATLVAVLDDDTKDVKAKKLDTAATKAKVLLTTTTVVLDALDTVDLADVVLKAVTDDDALTTTVVDAVKKAAKKDTDVADDTKVTVLVVATLVVKKVVADLLTDVLLDTKAKATAADTDKVVAKKAKTAVDKKLLTAKVDAAAVTKLDLALAVVDTATDKVAVLDAALKKDKADVVTAKDATDTDKKLVVVVKTDKKTTATDKLDKLVDTDVTVKALTLAALDLLDTDVAAVLVDLTKAVDLLVTLVKAKVDLLDTLKTLTTVVKVATTTTVKLTKVDADALDTVKAKVAKKTATKLADKKAAKTADTVKTVVDDTAAAKTLLKDVAKDKKATTAATVKAVVTDLKTATLVATKKLTKDLKVVALKLVLAVAAKTTTTTDVVDLVADLVALTATTKLVDTLVTKDKVVLVDKTKKVVAKKDAATTAKVLLATTLVATVAALKATKAALTKVTTDATADADAADTAKAVDTDDDVAAVALDTVLKTKLKTDKTTVKVTAVVKVVAKVAATAATATATDVLDATTDTDLALLVKDKDLKAAKLTDDAKKDVVATLDKVVVVTVVAVDLKADLDDAKLATLLAVKDAATTLDVDTKAATATVAADTVVLLVAVKTATALVVATLAVTALTLVLKLADVALTVDKTDKTTAAKVADTVDDVATKAVLKKKLTAADVALLTLVDDADALVVVKLTLTTLAKDALDTDKALTLKDLDADKDKVTVVKDKVVVLVADLALAVATVKATLTAKLVVTAKLLTVTKADVTTLKKKLLADTAVALKAAKLTDTLKDVVVALALLLAKDTDVDKKAKTAVLTATDTVLTTDKVLKKADLKAAVVDAVVLDVVKATVVVVLLAAKLTVTTDDVLKKALAAKDLDTVKTKLKTDKTLKTDAALVVTVTVKLLAVKDKTVVKKVKADVKTDKKADALLTLKTDALVTLLTLDTVKADVKKDAADVTKAVDAADVKLTDTDTDKADLTLVTATDDVDTVLLKAKDDVTTLVKTTVKTTVLVVKTADDDKAKKKLVDLAKLLKVLDAAAADKADAVTKKAVVVVLVKKLVLKTLTKTDKLTDADLTKLAAVVAVLTTKVTAVADVTDTKTKLVKKTTTADKAKLDTKDKLVVAVAKLTKKTLVTLLKVVAVALAAAAKKTTDKTTTLLAVVADDTKVDDVVVTKTADAATLVKLVVVDLALVLKDDTKKAVDLVTALVKTAVTVVLAATVVVTLVAATTAKAAKLDAKAAVVTTTTTALKKVLLVLTDKDVTKAKKKVDDVVTALLLKTVLAVLTKADLTKTLDTTKLLKKTKADKDDDLAKVLKADDLDDVVVLTVKTDTVKVTVDKTAVKVLKLAVKKVVKKTAVKTKTVDTKTDAVDKVTAKDLADDTTDATTAAAVADTDTAATDTDLDAVLDTKATTTDVVATVTDAKLALLVTLAKVAVVVVALTLLATAKAVDDLDTDATLDVALLTVTLDVDALVLADAALLLLVVTLTVKKDDLKVKKDATDATKLTALLALKDLATVLAKATTTVTDLAALDVDDTVTDTAAAALATVKVAVTVAADTLKLTTDTAALVKATADVTKDAALVDDKLKAVAAADLDTVDAKTKKDTDTLTATKVAADADTTLDATKLTDATTTVATADKDDTDAADDVVDKTALDTAVLADDVDKVVDKVVLATVAVVKVTKATDTDVKTKKDADADTATVTTTVKKKATLKTDDAATVDLVDVVDAAALLVLLVVDALTLVTKLTDLDDTVKAVADKVLDLTVDTKAVTAALVKVKDDVATTKLDVATLKKLVLKVDLKAVATDDDDDVDLDLDAKVKATKKATVKATALLLKVDTKDDKLKTLADLDAAAATLTKKTLVLKVKLVKLAKDDLVTVADLLDKKKAAKVADALDTLKDALDAKLKKKTKADTAVVTAVALLLDLVATVTVAVKALLDAAVKLAVDKDVKVLDTTKKLAVDLKKVTTKDLLLTAVAKKAKLTTVKAVTAKKDTDKKVKDVDATKDKVTDVKTTLDKTTVAAVDLAVTTKVKLTVTKVKLVLKLDDVDKAATDTDDAVVADTDAKTTVLLLTAKKATVLTVTKKATKADVTAADKKLVLALDKAAVAVVLAVAAVAALTDTLLADLTKLKAALTADTKLDDTAKKDTLKDDLDAKDTKLAVTKVLLLAVKVTTAKDKVLAKKVDAVKTLAKTTDLDDAVTLVTTVLDKDKDDTAAVVAALKLDVVDTKAAKLALVKTDKALALLLAATLLLKKVATTAVVVLAALVVKAKKVAVTAAVDLKTLLAALKVTKKKTKAVTLKVKVVDTDDLKKAAKLDVKADKTLKDKDKVKVDDKDLVVAATKVVLADVAVVADVAKLTKALALVAAKLTLDLKVLKKTLDLLDTTTLLVVKLVTATVADDKDLVTLKDDVDLTDLDLVAAALVVDDALAVKDVDDVTKVKAADDKKKDDAVLVAAAVKTDDLKKLATKATAKKTAALVDDTVDDTTKATLALTKTLTDLLTDDKDVKLKATKAKVKLKTDAAALKKKLLVDAKKDAAVLVTKALVDDVTVADKKTADVATLAVLAAATTDKKDDTLVKDKLTVVDVDVLKKVLLLKVDDVVATDDKKLVTALKTDKVAKAKDKDKTLDKLTADATLVVVVAVAATAVTLDLADAALDLKDAKLLDLKATDAKDDTLLLVKKKTLLVVTVLVDVDLAAATKTDKKAVTDVTDDDTLTAVDLAKLDVLKLAKDKLDTVTKLTKLVAVKTTADVAVTVAADKVDDKDDLALLKVATDALTAVDALDKTLKTDVTKKVDTDADDADLADTLTAVLALLTVDTTAADTDLADAVKLKKKALAAAVLLDDLVVDDAKKDVLLKLTAAAVADLKDDTALLVALAKDDKKKKTADTLLTKDVAAAVKVDLKKATLTLVAKKALVTLVDLKTKVDAKLVVT

sequenceAlignmentcpp/data/length5.seq

KTLVL LKKAL

sequenceAlignmentcpp/data/length50.seq

TKTLLADADLTDLDLKLVTAALTAVLATTKKDTAKDDTTKVLLTDALTAA DTLVADVLDTALKLTKLDDAAKVKTKDAKTDKLATLADTLDKLLLDKLTV

sequenceAlignmentcpp/data/length500.seq

LKKTTATVDVTKTLDLLTTLDLALDKKTLKKLTLVDDLTLKKKTVTDKTAVLKKKTDAATLKKTTLDALATKKDTAKDLLDKTTKKATDDTLDLTKVVDAAVTDAAKVATADADDVLKAKKALTKTLTTVTKKATLDLDDAVLLATVLLTTTAATKLVDAAALADTLTVKTALATTDDLVTTVKAATAKALTTKDKAAATDTVTLTTLLLTDVDADTTDDTLKTDKVAVALDDKDLTKTAAKDAVTVLTVDTLDATLAKLVTDLTAADDKDAAATLADLADVTVDDAKLALVDKLADTATDTVTAATDTAVLDVLDLTAAKTALVKTTKVADVLLDAVLVTLVAKADVAVVKTDALLKLKTVTLKVATTTAVTTDLKTLVDKVTALATKVTTKVKVTVLADDAKDVADLTVDTLAKVVTDALTADDAVADAKATDDTTVDDTADATKTVDTVVKDKALTDTATTVKDTVTTAVKTVVTADATADKVAVDAKKALAVDVLL KATTTVLDVTAVLDKKTVDLKKAVKDAALLKKLVVDKLTATDVATKKALTDDDTKKLDTTKDLKKKVTKVVLDLKDTLVLDATDAVDDKAADTLVAALLAATDTLDDKAKKDDVTVALVLTDATLDLAVDAKTATVLTDLDTATVKVALDTVVVLDAKDTTDVLDVDAKAKVKTDLKAADDLVLTADVLVVVLAVKADKAVADKTLTAVDLAVTTTAVVVVADTDVTAKVDAKKDLKKLLADDVDLAKLATTDVLTDLDKDKAVTTKVKDLALKTKVAVDLLLAVAKVDLKKDTLTDLKKVAAAKKADTDKVVVLVTTALTAVDLAAKATTTTLTDAKLATAKDLDLKDADTVTVVKTVTDKAKLAATLAKTTAVDTTAKVTVDTLLAKLTDADLALKDTDAKDLLLLVLLTLAVADAKALLVDVVVLKTLKVVAAVKAKVTDKDLAVALDVKDDVLAKKLDVTDVLVALADTADVLAVALTADKDKTDVLLTKAADDDT

sequenceAlignmentcpp/DPMatrix.cpp

sequenceAlignmentcpp/DPMatrix.cpp

/*
 * DPMatrix.cpp
 *
 *  Created on: Jan 22, 2014
 *      Author: John
 */

#include   "DPMatrix.h"
#include   < climits >
#include   < string >
#include   < fstream >
#include   < iostream >
#include   < cstdlib >

int **  matrix ;
unsigned   int   width ,  height ,  gapPenalty ;
std :: string seq1 ;
std :: string seq2 ;

int  max ( int  a ,   int  b ,   int  c )   {
     int  x  =   ( >  b )   ?  a  :  b ;
     int  max  =   ( >  c )   ?  x  :  c ;
     return  max ;
}

DPMatrix :: DPMatrix ()   {

    seq1  =   "" ;
    seq2  =   "" ;
    width  =   0 ;
    height  =   0 ;
    gapPenalty  =   0 ;
    matrix  =  NULL ;
}

DPMatrix :: DPMatrix ( std :: string s1 ,  std :: string s2 ,   unsigned   int  gp )   {

    seq1  =  s1 ;
    seq2  =  s2 ;
    width  =  s1 . length ();
    height  =  s2 . length ();
    gapPenalty  =  gp ;
    matrix  =   new   int * [ width ];
     for   ( unsigned   int  i  =   0 ;  i  <  width ;  i ++ )   {
        matrix [ i ]   =   new   int [ height ];

         // not strictly needed
         for   ( unsigned   int  j  =   0 ;  j  <  height ;  j ++ )   {
            matrix [ i ][ j ]   =  INT_MIN ;
         }
     }
}

DPMatrix ::~ DPMatrix ()   {
     for   ( unsigned   int  i  =   0 ;  i  <  width ;  i ++ )   {
         delete  matrix [ i ];
     }
     delete  matrix ;
}

void   DPMatrix :: compute ( unsigned   int  x ,   unsigned   int  y ,   int   ( * similarity )( char , char ))   {

     int  left ,  above ,  diagonal ;

     if   ( ==   0 )   {
        left  =  gapPenalty  *   - 1   *   ( +   1 );
     }   else   {
        left  =  matrix [ -   1 ][ y ]   -  gapPenalty ;
     }

         if   ( ==   0 )   {
        above  =  gapPenalty  *   - 1   *   ( +   1 );
     }   else   {
        above  =  matrix [ x ][ -   1 ]   -  gapPenalty ;
     }

     char  a  =  seq1 [ x ];
     char  b  =  seq2 [ y ];
     if   ( ==   0   &&  y  ==   0 )   {
        diagonal  =  similarity ( a , b );
     }   else   if   ( ==   0 )   {
        diagonal  =   ( gapPenalty  *   - 1   *  y )
                 +  similarity ( a , b );
         ;
     }   else   if   ( ==   0 )   {
        diagonal  =   ( gapPenalty  *   - 1   *  x )
                 +  similarity ( a , b );
     }   else   {
        diagonal  =  matrix [ -   1 ][ -   1 ]
                 +  similarity ( a , b );
     }

     int  maxValue  =  max ( left ,  above ,  diagonal );
    matrix [ x ][ y ]   =  maxValue ;
}

void   DPMatrix :: outputMatrix ( char *  filename )   {

    std :: ofstream file ;

    file . open ( filename );
     if   ( ! file . is_open ())   {
        std :: cerr  <<   "Unable to open "   <<  filename  <<   " for writing."   <<  std :: endl ;
        std :: exit  ( EXIT_FAILURE );
     }

     for   ( unsigned   int  i  =   0 ;  i  <  width ;  i ++ )   {
         for   ( unsigned   int  j  =   0 ;  j  <  height ;  j ++ )   {
            file  <<  matrix [ i ][ j ]   <<   "\t" ;
         }
        file  <<  std :: endl ;
     }
    file  <<  std :: endl ;
    file . close ();
}

sequenceAlignmentcpp/DPMatrix.h

/* * DPMatrix.h * * Created on: Jan 22, 2014 * Author: John */ #ifndef DPMATRIX_H_ #define DPMATRIX_H_ #include <string> class DPMatrix { public: unsigned int width, height; DPMatrix(); DPMatrix(std::string s1, std::string s2, unsigned int gp); virtual ~DPMatrix(); void outputMatrix(char* filename); void compute(unsigned int x, unsigned int y, int (*similarity)(char,char)); }; #endif /* DPMATRIX_H_ */

sequenceAlignmentcpp/genSequence.cpp

sequenceAlignmentcpp/genSequence.cpp


using   namespace  std ;

#include   < cstdlib >
#include   < iostream >
#include   < fstream >

/**
 * This program generates two random sequences based on the size of string (for reproducability)
 */

char  chars [ 6 ]   = { 'A' , 'D' , 'K' , 'L' , 'T' , 'V' };

int  main ( int  argc ,   char *  argv [])   {

     if   ( argc  <   3 )   {
        cerr  <<   "Usage: genSequence <output file> <size>"   <<  endl ;
        exit ( EXIT_FAILURE );
     }


     char *  fileName  =  argv [ 1 ];
     int  seqSize  =  atoi ( argv [ 2 ]);

    cout  <<   "file: "   <<  fileName  <<  endl ;
    cout  <<   "size: "   <<  seqSize  <<  endl ;

     char  seq1 [ seqSize + 1 ];
     char  seq2 [ seqSize + 1 ];

    srand ( seqSize );
     for ( int  i = 0 ;  i < seqSize ;  i ++ ){
        seq1 [ i ]   =  chars [ rand ()   %   6 ];
        seq2 [ i ]   =  chars [ rand ()   %   6 ];
     }
    seq1 [ seqSize ]   =   0 ;
    seq2 [ seqSize ]   =   0 ;

    std :: ofstream outputFile ;
    outputFile . open ( fileName );
    outputFile  <<  seq1  <<  endl ;
    outputFile  <<  seq2  <<  endl ;
    outputFile . close ();

    exit ( EXIT_SUCCESS );
}

sequenceAlignmentcpp/Makefile

CXX = g++ PTHREAD_LIBS = -lpthread PROGRAM_SEQ = seqAlign_seq PROGRAM_THREAD = seqAlign_thread PROGRAM_GEN = genSequence CFLAGS = -std=c99 THREADS = 8 SOLUTION_DIR = solutions DATA_DIR = data RESULTS_DIR = results all: mkdirs seq par gen solutions mkdirs: mkdir -p ${SOLUTION_DIR} mkdir -p ${RESULTS_DIR} clean: rm -f *.o *.stackdump ${PROGRAM_SEQ} ${PROGRAM_GEN} ${PROGRAM_THREAD} seq: ${PROGRAM_SEQ}.o WorkItem.o DPMatrix.o ${CXX} -o ${PROGRAM_SEQ} ${PROGRAM_SEQ}.o WorkItem.o DPMatrix.o par: ${PROGRAM_THREAD}.o WorkItem.o DPMatrix.o ${CXX} -o ${PROGRAM_THREAD} ${PROGRAM_THREAD}.o WorkItem.o DPMatrix.o ${PTHREAD_LIBS} gen: ${PROGRAM_GEN}.o ${CXX} -o ${PROGRAM_GEN} ${PROGRAM_GEN}.o solutions: ${PROGRAM_SEQ} mkdir -p ${SOLUTION_DIR} ./${PROGRAM_SEQ} ${DATA_DIR}/length3.seq ${SOLUTION_DIR}/length3.solution ./${PROGRAM_SEQ} ${DATA_DIR}/length50.seq ${SOLUTION_DIR}/length50.solution ./${PROGRAM_SEQ} ${DATA_DIR}/length100.seq ${SOLUTION_DIR}/length100.solution ./${PROGRAM_SEQ} ${DATA_DIR}/length500.seq ${SOLUTION_DIR}/length500.solution ./${PROGRAM_SEQ} ${DATA_DIR}/length1000.seq ${SOLUTION_DIR}/length1000.solution ./${PROGRAM_SEQ} ${DATA_DIR}/length2000.seq ${SOLUTION_DIR}/length2000.solution ./${PROGRAM_SEQ} ${DATA_DIR}/length3000.seq ${SOLUTION_DIR}/length3000.solution ./${PROGRAM_SEQ} ${DATA_DIR}/length4000.seq ${SOLUTION_DIR}/length4000.solution # Testing test3: ${PROGRAM_THREAD} time ./${PROGRAM_THREAD}.exe ${DATA_DIR}/length3.seq ${THREADS} ${RESULTS_DIR}/length3.result diff ${RESULTS_DIR}/length3.result ${SOLUTION_DIR}/length3.solution test50: ${PROGRAM_THREAD} time ./${PROGRAM_THREAD} ${DATA_DIR}/length50.seq ${THREADS} ${RESULTS_DIR}/length50.result diff ${RESULTS_DIR}/length50.result ${SOLUTION_DIR}/length50.solution test100: ${PROGRAM_THREAD} time ./${PROGRAM_THREAD} ${DATA_DIR}/length100.seq ${THREADS} ${RESULTS_DIR}/length100.result diff ${RESULTS_DIR}/length100.result ${SOLUTION_DIR}/length100.solution test500: ${PROGRAM_THREAD} time ./${PROGRAM_THREAD} ${DATA_DIR}/length500.seq ${THREADS} ${RESULTS_DIR}/length500.result diff ${RESULTS_DIR}/length500.result ${SOLUTION_DIR}/length500.solution test1000: ${PROGRAM_THREAD} time ./${PROGRAM_THREAD} ${DATA_DIR}/length1000.seq ${THREADS} ${RESULTS_DIR}/length1000.result diff ${RESULTS_DIR}/length1000.result ${SOLUTION_DIR}/length1000.solution test2000: ${PROGRAM_THREAD} time ./${PROGRAM_THREAD} ${DATA_DIR}/length2000.seq ${THREADS} ${RESULTS_DIR}/length2000.result diff ${RESULTS_DIR}/length2000.result ${SOLUTION_DIR}/length2000.solution test4000: ${PROGRAM_THREAD} time ./${PROGRAM_THREAD} ${DATA_DIR}/length4000.seq ${THREADS} ${RESULTS_DIR}/length4000.result diff ${RESULTS_DIR}/length4000.result ${SOLUTION_DIR}/length4000.solution

sequenceAlignmentcpp/seqAlign_seq.cpp

sequenceAlignmentcpp/seqAlign_seq.cpp

//============================================================================
// Name        : SeqAlignOO.cpp
// Author      : John Anvik
// Version     :
// Copyright   : Mine!
// Description : Hello World in C, Ansi-style
//============================================================================

/*
 * seqAlign.c
 *
 *  Created on: Jan 18, 2014
 *      Author: John
 */

using   namespace  std ;

#include   < iostream >
#include   < fstream >
#include   < cstdlib >
#include   "WorkItem.h"
#include   "DPMatrix.h"

#define  GAP_PENALTY  10

#define  BLOCKSIZE  100

int  similarityMatrix [ 6 ][ 6 ]   =   {   {   16 ,   0 ,   0 ,   0 ,   0 ,   0   },   {   0 ,   20 ,   0 ,   0 ,   0 ,   0   },   {
         0 ,   0 ,   20 ,   0 ,   0 ,   0   },   {   0 ,   0 ,   0 ,   20 ,   0 ,   12   },   {   0 ,   0 ,   0 ,   0 ,   20 ,   0   },   {   0 ,
         0 ,   0 ,   12 ,   0 ,   20   }   };

DPMatrix *  dpMatrix ;

unsigned   int  numBlocks_x ,  numBlocks_y ;
WorkItem **  work ;

int  charIndex ( char  c )   {
    c  =   ( char )  toupper ( c );
     switch   ( c )   {
     case   'A' :
         return   0 ;
     case   'D' :
         return   1 ;
     case   'K' :
         return   2 ;
     case   'L' :
         return   3 ;
     case   'T' :
         return   4 ;
     case   'V' :
         return   5 ;
     default :
         return   - 1 ;
     }
}

int  similarity ( char  a ,   char  b )   {
     return  similarityMatrix [ charIndex ( a )][ charIndex ( b )];
}

int  dependenciesMet ( const   WorkItem &  nextItem )   {

     // Confirm dependencies met
     int  ready  =   1 ;
     if   ( nextItem . >   0   &&  ready )
        ready  =  work [ nextItem . -   1 ][ nextItem . y ]. isCompleted ();

     if   ( nextItem . >   0   &&  ready )
        ready  =  work [ nextItem . x ][ nextItem . -   1 ]. isCompleted ();

     if   ( nextItem . >   0   &&  nextItem . >   0   &&  ready )
        ready  =  work [ nextItem . -   1 ][ nextItem . -   1 ]. isCompleted ();

     return  ready ;
}

void  doWork ()   {

     WorkItem  workItem ;

     for   ( unsigned   int  i  =   0 ;  i  <  numBlocks_x ;  i ++ )   {
         for   ( unsigned   int  j  =   0 ;  j  <  numBlocks_y ;  j ++ )   {

            workItem  =  work [ i ][ j ];

             for   ( unsigned   int  a  =  workItem . startX ;  a  <  workItem . endX ;  a ++ )   {
                 for   ( unsigned   int  b  =  workItem . startY ;  b  <  workItem . endY ;  b ++ )   {
                    dpMatrix -> compute ( a ,  b ,   & similarity );
                 }
             }
         }
     }
}

void  compute ()   {

     // Create work items
    numBlocks_x  =  dpMatrix -> width  /  BLOCKSIZE ;
     if   ( numBlocks_x  *  BLOCKSIZE  <  dpMatrix -> width )
        numBlocks_x ++ ;

    numBlocks_y  =  dpMatrix -> height  /  BLOCKSIZE ;
     if   ( numBlocks_y  *  BLOCKSIZE  <  dpMatrix -> height )
        numBlocks_y ++ ;

    printf ( "Num x blocks: %d\n" ,  numBlocks_x );
    printf ( "Num y blocks: %d\n" ,  numBlocks_y );

    work  =   new   WorkItem * [ numBlocks_x ];
     for   ( unsigned   int  i  =   0 ;  i  <  numBlocks_x ;  i ++ )   {
        work [ i ]   =   new   WorkItem [ numBlocks_y ];
     }

     for   ( unsigned   int  i  =   0 ;  i  <  numBlocks_x ;  i ++ )   {
         for   ( unsigned   int  j  =   0 ;  j  <  numBlocks_y ;  j ++ )   {

             WorkItem *  wi  =   & work [ i ][ j ];
            wi -> =  i ;
            wi -> =  j ;
            wi -> startX  =  i  *  BLOCKSIZE ;
            wi -> startY  =  j  *  BLOCKSIZE ;
            wi -> endX  =
                     (( +   1 )   *  BLOCKSIZE  >  dpMatrix -> width )   ?
                            dpMatrix -> width  :   ( +   1 )   *  BLOCKSIZE ;
            wi -> endY  =
                     (( +   1 )   *  BLOCKSIZE  >  dpMatrix -> height )   ?
                            dpMatrix -> height  :   ( +   1 )   *  BLOCKSIZE ;
         }
     }

    doWork ();
     delete  work ;

}

int  main ( int  argc ,   char *  argv [])   {

     if   ( argc  <   2 )   {
        cerr  <<   "Usage: seqAlign_thread <data file> [output file]\n"   <<  endl ;
        exit ( EXIT_FAILURE );
     }

    ifstream file ;

    file . open ( argv [ 1 ]);
     if   ( ! file . is_open ())   {
        cerr  <<   "File not found: "   <<  argv [ 1 ]   <<  endl ;
        exit ( EXIT_FAILURE );
     }

    string seq1 ,  seq2 ;
    getline ( file ,  seq1 ,   '\n' );
    getline ( file ,  seq2 ,   '\n' );

    dpMatrix  =   new   DPMatrix ( seq1 ,  seq2 ,  GAP_PENALTY );
    compute ();

     if   ( argc  ==   3 )   {
        cout  <<   "Writing to file (may take some time)"   <<  endl ;
         char *  filename  =  argv [ 2 ];
        dpMatrix -> outputMatrix ( filename );
     }

     delete  dpMatrix ;

    exit ( EXIT_SUCCESS );
}

sequenceAlignmentcpp/seqAlign_thread.cpp

sequenceAlignmentcpp/seqAlign_thread.cpp

//============================================================================
// Name        : SeqAlignOO.cpp
// Author      : John Anvik
// Version     :
// Copyright   : Mine!
// Description : Hello World in C, Ansi-style
//============================================================================

/*
 * seqAlign.c
 *
 *  Created on: Jan 18, 2014
 *      Author: John
 */

using   namespace  std ;

#include   < iostream >
#include   < fstream >
#include   < cstdlib >
#include   < pthread . h >
#include   "WorkItem.h"
#include   "DPMatrix.h"

#define  GAP_PENALTY  10

#define  BLOCKSIZE  100

int  similarityMatrix [ 6 ][ 6 ]   =   {   {   16 ,   0 ,   0 ,   0 ,   0 ,   0   },   {   0 ,   20 ,   0 ,   0 ,   0 ,   0   },   {
         0 ,   0 ,   20 ,   0 ,   0 ,   0   },   {   0 ,   0 ,   0 ,   20 ,   0 ,   12   },   {   0 ,   0 ,   0 ,   0 ,   20 ,   0   },   {   0 ,
         0 ,   0 ,   12 ,   0 ,   20   }   };

DPMatrix *  dpMatrix ;

unsigned   int  numBlocks_x ,  numBlocks_y ;
WorkItem **  work ;

pthread_mutex_t lock ;

int  charIndex ( char  c )   {
    c  =   ( char )  toupper ( c );
     switch   ( c )   {
     case   'A' :
         return   0 ;
     case   'D' :
         return   1 ;
     case   'K' :
         return   2 ;
     case   'L' :
         return   3 ;
     case   'T' :
         return   4 ;
     case   'V' :
         return   5 ;
     default :
         return   - 1 ;
     }
}

int  similarity ( char  a ,   char  b )   {
     return  similarityMatrix [ charIndex ( a )][ charIndex ( b )];
}

int  dependenciesMet ( const   WorkItem &  nextItem )   {

     // Confirm dependencies met
     int  ready  =   1 ;
     if   ( nextItem . >   0   &&  ready )
        ready  =  work [ nextItem . -   1 ][ nextItem . y ]. isCompleted ();

     if   ( nextItem . >   0   &&  ready )
        ready  =  work [ nextItem . x ][ nextItem . -   1 ]. isCompleted ();

     if   ( nextItem . >   0   &&  nextItem . >   0   &&  ready )
        ready  =  work [ nextItem . -   1 ][ nextItem . -   1 ]. isCompleted ();

     return  ready ;
}

void *  doWork ( void *  in )   {

     /* TO BE IMPLEMENTED */

     return   0 ;
}

void  compute ( int  numThreads )   {

     // Create work items
    numBlocks_x  =  dpMatrix -> width  /  BLOCKSIZE ;
     if   ( numBlocks_x  *  BLOCKSIZE  <  dpMatrix -> width )
        numBlocks_x ++ ;

    numBlocks_y  =  dpMatrix -> height  /  BLOCKSIZE ;
     if   ( numBlocks_y  *  BLOCKSIZE  <  dpMatrix -> height )
        numBlocks_y ++ ;

    printf ( "Num x blocks: %d\n" ,  numBlocks_x );
    printf ( "Num y blocks: %d\n" ,  numBlocks_y );

    work  =   new   WorkItem * [ numBlocks_x ];
     for   ( unsigned   int  i  =   0 ;  i  <  numBlocks_x ;  i ++ )   {
        work [ i ]   =   new   WorkItem [ numBlocks_y ];
     }

     for   ( unsigned   int  i  =   0 ;  i  <  numBlocks_x ;  i ++ )   {
         for   ( unsigned   int  j  =   0 ;  j  <  numBlocks_y ;  j ++ )   {

             WorkItem *  wi  =   & work [ i ][ j ];
            wi -> =  i ;
            wi -> =  j ;
            wi -> startX  =  i  *  BLOCKSIZE ;
            wi -> startY  =  j  *  BLOCKSIZE ;
            wi -> endX  =
                     (( +   1 )   *  BLOCKSIZE  >  dpMatrix -> width )   ?
                            dpMatrix -> width  :   ( +   1 )   *  BLOCKSIZE ;
            wi -> endY  =
                     (( +   1 )   *  BLOCKSIZE  >  dpMatrix -> height )   ?
                            dpMatrix -> height  :   ( +   1 )   *  BLOCKSIZE ;
         }
     }

     delete  work ;

}

int  main ( int  argc ,   char *  argv [])   {

     if   ( argc  <   3 )   {
        cerr
                 <<   "Usage: seqAlign_thread <data file> <# of threads> [output file]\n"
                 <<  endl ;
        exit ( EXIT_FAILURE );
     }

    ifstream file ;

    file . open ( argv [ 1 ]);
     if   ( ! file . is_open ())   {
        cerr  <<   "File not found: "   <<  argv [ 1 ]   <<  endl ;
        exit ( EXIT_FAILURE );
     }

     int  threads  =  atoi ( argv [ 2 ]);

    string seq1 ,  seq2 ;
    getline ( file ,  seq1 ,   '\n' );
    getline ( file ,  seq2 ,   '\n' );

    cout  <<  seq1 . length ()   <<  endl ;
    cout  <<  seq2 . length ()   <<  endl ;

    dpMatrix  =   new   DPMatrix ( seq1 ,  seq2 ,  GAP_PENALTY );
    compute ( threads );

     if   ( argc  ==   4 )   {
        cout  <<   "Writing to file (may take some time)"   <<  endl ;
         char *  filename  =  argv [ 3 ];
        dpMatrix -> outputMatrix ( filename );
     }

     delete  dpMatrix ;

    exit ( EXIT_SUCCESS );
}

sequenceAlignmentcpp/WorkItem.cpp

sequenceAlignmentcpp/WorkItem.cpp

/*
 * WorkItem.cpp
 *
 *  Created on: Jan 21, 2014
 *      Author: John
 */

using   namespace  std ;

#include   < iostream >
#include   "WorkItem.h"

WorkItem :: WorkItem ()   {
     this -> =   - 1 ;
     this -> =   - 1 ;
     this -> startX  =   - 1 ;
     this -> startY  =   - 1 ;
     this -> endX  =   - 1 ;
     this -> endY  =   - 1 ;
     this -> completed  =   0 ;
     this -> queued  =   0 ;

}

WorkItem ::~ WorkItem ()   {
     // TODO Auto-generated destructor stub
}

void   WorkItem :: markQueued ()   {
     if   ( this -> isQueued ())
        cerr  <<   "Work item ["   <<  x  <<   ","   <<  y  <<   "] already queued."   <<  endl ;
     this -> queued  =   1 ;
}

void   WorkItem :: markCompleted ()   {
     if   ( this -> isCompleted ())
        cerr  <<   "Work item ["   <<  x  <<   ","   <<  y  <<   "] already marked completed."
                 <<  endl ;
     this -> completed  =   1 ;
}

sequenceAlignmentcpp/WorkItem.h

/* * WorkItem.h * * Created on: Jan 21, 2014 * Author: John */ #ifndef WORKITEM_H_ #define WORKITEM_H_ class WorkItem { unsigned int completed; unsigned int queued; public: unsigned int startX; unsigned int startY; unsigned int endX; unsigned int endY; unsigned int x; unsigned int y; WorkItem(); virtual ~WorkItem(); unsigned int isQueued() { return this->queued == 1; } unsigned int isCompleted() { return this->completed == 1; } void markQueued(); void markCompleted(); }; #endif /* WORKITEM_H_ */