Help
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
=
(
a
>
b
)
?
a
:
b
;
int
max
=
(
x
>
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
(
x
==
0
)
{
left
=
gapPenalty
*
-
1
*
(
y
+
1
);
}
else
{
left
=
matrix
[
x
-
1
][
y
]
-
gapPenalty
;
}
if
(
y
==
0
)
{
above
=
gapPenalty
*
-
1
*
(
x
+
1
);
}
else
{
above
=
matrix
[
x
][
y
-
1
]
-
gapPenalty
;
}
char
a
=
seq1
[
x
];
char
b
=
seq2
[
y
];
if
(
x
==
0
&&
y
==
0
)
{
diagonal
=
similarity
(
a
,
b
);
}
else
if
(
x
==
0
)
{
diagonal
=
(
gapPenalty
*
-
1
*
y
)
+
similarity
(
a
,
b
);
;
}
else
if
(
y
==
0
)
{
diagonal
=
(
gapPenalty
*
-
1
*
x
)
+
similarity
(
a
,
b
);
}
else
{
diagonal
=
matrix
[
x
-
1
][
y
-
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
.
x
>
0
&&
ready
)
ready
=
work
[
nextItem
.
x
-
1
][
nextItem
.
y
].
isCompleted
();
if
(
nextItem
.
y
>
0
&&
ready
)
ready
=
work
[
nextItem
.
x
][
nextItem
.
y
-
1
].
isCompleted
();
if
(
nextItem
.
x
>
0
&&
nextItem
.
y
>
0
&&
ready
)
ready
=
work
[
nextItem
.
x
-
1
][
nextItem
.
y
-
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
->
x
=
i
;
wi
->
y
=
j
;
wi
->
startX
=
i
*
BLOCKSIZE
;
wi
->
startY
=
j
*
BLOCKSIZE
;
wi
->
endX
=
((
i
+
1
)
*
BLOCKSIZE
>
dpMatrix
->
width
)
?
dpMatrix
->
width
:
(
i
+
1
)
*
BLOCKSIZE
;
wi
->
endY
=
((
j
+
1
)
*
BLOCKSIZE
>
dpMatrix
->
height
)
?
dpMatrix
->
height
:
(
j
+
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
.
x
>
0
&&
ready
)
ready
=
work
[
nextItem
.
x
-
1
][
nextItem
.
y
].
isCompleted
();
if
(
nextItem
.
y
>
0
&&
ready
)
ready
=
work
[
nextItem
.
x
][
nextItem
.
y
-
1
].
isCompleted
();
if
(
nextItem
.
x
>
0
&&
nextItem
.
y
>
0
&&
ready
)
ready
=
work
[
nextItem
.
x
-
1
][
nextItem
.
y
-
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
->
x
=
i
;
wi
->
y
=
j
;
wi
->
startX
=
i
*
BLOCKSIZE
;
wi
->
startY
=
j
*
BLOCKSIZE
;
wi
->
endX
=
((
i
+
1
)
*
BLOCKSIZE
>
dpMatrix
->
width
)
?
dpMatrix
->
width
:
(
i
+
1
)
*
BLOCKSIZE
;
wi
->
endY
=
((
j
+
1
)
*
BLOCKSIZE
>
dpMatrix
->
height
)
?
dpMatrix
->
height
:
(
j
+
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
->
x
=
-
1
;
this
->
y
=
-
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_ */