//take query and break apart into pieces using breakpoints given by results of parents
for (int i = 0; i < parents.size(); i++) {
-
int length = parents[i].nastRegionEnd - parents[i].nastRegionStart+1;
string q = qAligned.substr(parents[i].nastRegionStart, length);
+
Sequence* queryFrag = new Sequence(query->getName(), q);
queryParts.push_back(queryFrag);
//align each peice to correct parent from results
for (int i = 0; i < queryParts.size(); i++) {
- alignment = new NeedlemanOverlap(-2.0, match, misMatch, longest+1); //default gapopen, match, mismatch, longestbase
+ if ((queryParts[i]->getUnaligned() == "") || (parentParts[i]->getUnaligned() == "")) {;}
+ else {
+ alignment = new NeedlemanOverlap(-2.0, match, misMatch, longest+1); //default gapopen, match, mismatch, longestbase
- Nast nast(alignment, queryParts[i], parentParts[i]);
- delete alignment;
+ Nast nast(alignment, queryParts[i], parentParts[i]);
+ delete alignment;
+ }
}
//recombine pieces to form new query sequence
//make sure you don't cutoff end of query
if (parents[parents.size()-1].nastRegionEnd < (qAligned.length()-1)) { newQuery += qAligned.substr(parents[parents.size()-1].nastRegionEnd+1); }
-
+
//set query to new aligned string
query->setAligned(newQuery);
void Nast::pairwiseAlignSeqs(){ // Here we call one of the pairwise alignment methods to align our unaligned candidate
// and template sequences
- try {
-
+ try {
alignment->align(candidateSeq->getUnaligned(), templateSeq->getUnaligned());
string candAln = alignment->getSeqAAln();
string tempAln = alignment->getSeqBAln();
-
+
if(candAln == ""){
candidateSeq->setPairwise("");
// here we do steps C-F of Fig. 2 from DeSantis et al.
try {
+ //cout << candAln << endl;
+ //cout << tempAln << endl;
+ //cout << newTemplateAlign << endl;
+ //cout << endl;
+
int longAlignmentLength = newTemplateAlign.length();
for(int i=0; i<longAlignmentLength; i++){ // use the long alignment as the standard