-
Notifications
You must be signed in to change notification settings - Fork 172
Open
Labels
Description
Sorry the input is pretty large. The code below throws an exception in bandedChainAlignment. This is with 2.4.0.
To build:
minimalTest: MinimalTest.cpp
g++ -DSEQAN_ENABLE_TESTING -g MinimalTest.cpp -o $@ -Iseqan/include
Collapsed for readability
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <fstream>
#include <seqan/seeds.h>
#include <seqan/sequence.h>
#include <seqan/align.h>
#include <iostream>
#include <vector>
#include <unordered_map>
#include <map>
using namespace std;
using namespace seqan;
typedef Seed<Simple> TSeed;
typedef SeedSet<TSeed> TSeedSet;
typedef Iterator<TSeedSet>::Type TIterator;
typedef unsigned int kmer_t;
typedef map<kmer_t, vector<int> > kmerMap_t;
unsigned int dnaStringToInt(char* dna, int k) {
unsigned int result = 0;
// Iterate over the DNA string and convert each base to its 2-bit representation
for (size_t i = 0; i < k; ++i) {
result <<= 2; // Shift the result by 2 bits
switch (dna[i]) {
case 'A': case 'a': result |= 0b00; break; // A = 00
case 'C': case 'c': result |= 0b01; break; // C = 01
case 'G': case 'g': result |= 0b10; break; // G = 10
case 'T': case 't': result |= 0b11; break; // T = 11
}
}
return result; }
void StoreKmerMatches( kmerMap_t &queryMap, kmerMap_t &targetMap, int k, TSeedSet &seedSet) {
for (auto it : queryMap) {
if (targetMap.find(it.first) != targetMap.end()) {
for (auto qp: queryMap[it.first]) {
for (auto tp: targetMap[it.first]) {
TSeed seed(qp,tp,k);
addSeed(seedSet, seed, Single());
}
}
}
}
}
void StoreKmerToPos(string &seq, int k, kmerMap_t &map) {
for (int i=0; i + k < seq.size(); i++) {
kmer_t kmer = dnaStringToInt(&seq[i], k);
if (map.find(kmer) == map.end()) {
map[kmer] = vector<int>();
}
map[kmer].push_back(i);
}
}
int main() {
string query("GTGCCGTTCTTTTTTTTTTTTTTTTTTTTTTTATTATACTCTAAGTTTTAGGGTACATGTGCACATTGTACAGGTTAGTTACATATGTATACATGTGACATGCTGGTGCGCTGCACCCACTAACGTGTCATCTAGCATTAGGTATATCTCCCAATGCTATCCCTCCCCCCTCCCCCGACCCCACCACAGTCCCCAGAGTGTGATATTCCCCTTCCTGTGTCCAAGTGATCTCATTGTTCAATTCCCACTTATGAGTGACAATATGCGGTGTTTGGTTTTTTGTTCTTGCGATAGTTTACTGAGAATGATGGTTTCCAATTTCATCCATGTCCCTACAAAGGACATGAACTCATCATTTTTTATGGCTATGTAGTATTCCATGGTGTATATGTGCCACATTTTCTTAATCCAGTCTATCATTGTTGGACATTTGGGTTGGTTCCAAGTCTTTGCTATTGTGAATAGTGCCGCAATAAACATACGTGTGCATGTGTCTTTTTAGCAGCATGATTTATAGTCCTTTGGGTATATACCCAGTAATGGGATGGCTGGGTCAAATGGTATTTCTAGTTCTAGATCCCTGAGGAATCGCCACACTGACTTCCACAATGGTTGAACTAGTTTACAGTCCCACCAACAGTGTAAAAGTGTTCCTATTTCTCCACATCCTCTCCAGCACCTGTTGTTTCCTGACTTTTTAATGATTGCCATTCTAACTGGTGTGAGATGATATCTCATAGTGGTTTTGATTTGCATTTCTCTGATGGCCAGTGATGATGAGCATTTCTTCATGTGTTTTTTGGCTGCATAAATGTCTTCTTTTGAGAAGTGTCTGTTCATGTCCTTTGCCCACTTTTTGATGGGGTTGTTTGTTTTTTTCTTGTAAATTTGTTTGAGTTCATTGTAGATTCTGGATATTAGCCCTTTGTCAGATGAGTAGGTTGCGAAAATTTTCTCCCATGTTGTAGGTTGCCTGTTCACTCTGATGGTAGTTTCTTTTGCTGTGCAGAAGCTCTTTAGTTTAATTAGATCCCATTTGTCAATTTTGGCTTTTGTTGCCATTGCTTTTGGTGTTTTGGACGTGAAGTCCTTGCCCACGCCTATGTCCTGAATGGTAATGCCTAGGTTTTCTTCTAGGGTTTTTATGGTTTTAGGTCTAACGTTTAAATCTTTAATCCATCTTGAATTGATTTTTGTATAAGGTGTAAGGAAGGGATCCAGTTTCAGCTTTCTACATATGGCTAGCCAGTTTTCCCAGCACCATTTATTAAATAGGGAATCCTTTCCCCATTGCTTGTTTTTCTCAGGTTTGTCAAAGATCAGATAGTTGTAGGTAAGCGGCGTTATTTCTGAGGGCTCTGTTCTGTTCCATTGATCTATATCTCTGTTTTGGTACCAGTACCATGCTGTTTTGGTTACTGTAGCCTTGTAGTATAGTTTGAAGTCAGGTAGTGTGATGCCTCCAGCTTTGTTCTTTTGGCTTAGGATTGACTTGGCGATGCGGGCTCTTTTTTGGTTCCATATGAACTTTAAAGTAGTTTTTTCCAATTCTGTGAAGAAAGTCATTGGTAGCTTGATGGGGATGGCATTGAATCTGTAAATTACCTTGGGCAGTATGGCCATTTTCACGATATTGATTCTTCCTACCCATGAGCATGGAATGTTCTTCCATTTGTTTGTGTCCTCTTTTATTTCCTTGAGCAGTGGTTTGTAGTTCTCCTTGAAGAGGTCCTTCACATCCCTTGTAAGTTGGATTCCTAGGTATTTTATTCTCTTTGAAGCAATTGTGAATGGGAGTTCACTCATGATTTGGCTCTCTGTTTGTCTGTTGTTGGTGTATAAGAATGCTTGTGATTTTTGTACATTGATTTTGTATCCTGAGACTTTGCTGAAGTTGCTTATCAGCTTAAGGAGATTTTGGGCTGAGACGATGGGGTTTTCTAGATAAACAATCATGTCGTCTGCAAACAGGGACAATTTGACTTCCTCTTTTCCTAATTGAATACCCTTTATTTCCTTTTCCTTCCTGATTGCCCTGGCCAGAACTTCCAACACTATGTTGAATAGGAGTGGTGAGAGAGGGCATCCCTGTCTTGTGCCAGTTTTCAAAGGGAATGCTTCCAGTTTTTGCCTATTCAGTATGATATTGGCTGTGGGTTTGTCATAGATAGCTCTTATTATTTTGAAATACGTCCCATCAATACCTAATTTATTGAGAGTTTTTAGCATGAAGGGTTGTTGAATTTTGTCAAAGGCTTCTTCTGCATCTATTGAGATAATCATGTGGTTTTTGTCTTTGGCTCTGTTTATATGCTGGATTACATTTATTGATTTGCGTATATTGAACCAGCCTTGCATCCCAGGGATGAAGCCCACTTGATCATGGTGGATAAGCTTTTTGATGTGCTGCTGGATTCGGTTTGCCAGTATTTTATTGAGGATTTTTGCATCAATGTTCATCAAGGATATTGGTCTAAAATTCTCTTTTTTGGTTGTGTCTCTGCCCGGCTTTGGTATCAGAATGATGCTGGCCTCATAAAATGAGTTAGGGAGGATTCCCTCTTTTTCTATTGATTGGAATAGTTTCAGAAGGAATGGTACCAGTTCCTCCTTGTACCTCTGGTAGAATTCGGCTGTGAATCCATCTGGTCCTGGACTCTTTTTGGTTGGTAAACTATTGATTATTGCCACAATTTCAGAGCCTGTTATTGGTCTATTCAGAGATTCAACTTCTTCCTGGTTTAGTCTTGGGAGAGTGTATGTGTCGAGGAATGTATCCATTTCTTCTAGATTTTCTAGTTTATTTGCGTAGAGGTGTTTGTAGTATTCTCTGATGGTAGTTTGTATTTCTGTGGGATCGGTGGTGATATCCCCTTTATCATTTTTTATTGTGTCTATTTGATTCTTCTCTCTTTTTTTCTTTATTAGTCTTGCTAGCGGTCTATCAATTTTGTTGATCCTTTCAAAAAACCAGCTCCTGGATTCATTGATTTTTTGAAGGGTTTTTTGTGTCTCTATTTCCTTCAGTTCTGCTCTGATTTTAGTTATTTCTTGCCTTCTGCTAGCTTTTGAATGTGTTTGCTCTTGCTTTTCTAGTTCTTTTAATTGTGATGTTAGGGTGTCAATTTTGGATCTTTCCTGCTTTCTCTTGTAGGCATTTAGTGCTATATATTTCCCTCTACACACTGCTTTGAATGCGTCCCAGAGATTCTGGTATGTGGTGTCTTTGTTCTCGTTGGTTTCAAAGAACATCTTTATTTCTGCCTTCGTTATGTACCCAGTAGTCATTCAGTAGCAGGTTGTTCAGTTTCCATGTAGTTGAGCGGCTTTGAGTGAGATTCTTAATCCTGAGTTCTAGTTTGATTGCACTGTGGTCTGAGAGATAGTTTGTTATAATTTCTGTTCTTTTACATTTGCTGAGGAGAGCTTTACTTCCAACTATTTGGTCAATTTTGGAATAGGTGTGGTGTGGTGCTGAAAAAAATGTATATTCTGTTGATTTGGGGTGGAGAGTTCTGTAGATGTCTATTAGGTCTGCTTGGTGCAGAGCTGAGTTCAATTCCTGGGTATCCTTGTTGACTTTCTGTCTCATTGATCTGTCTAATGTTGACAGTGGGGTGTTAAAGTCTCCCACTTTAATGTGTGGGAGTCTAAGTCTCCTTGTAGGTCACTCAGGACTTGCTTTATGAATCTGGGTGCTCCTGTATTGGGTGCATAAATATTTAGGATAGTTAGCTCCTCTTGTTGAATTGATCCCTTTACCATTATGTAATGGCCTTCTTTGTCTCTTTTGATCTTTGTTGGTTTAAAGTCTGTTTTATCAGAGACTAGGATTGCAAACCCTGCCTTTTTTTGTTTTCCATTGGCTTGGTAGATCTTCCTCCATCCTTTTATTTTGAGCCTATGTGTGTCTCTGCACGTGAGATGGGTTTCCTGAATACAGCACACTGATGGGTCTTGACTCTTTATCCAACTTGCCAGTCTGTGTCTTTTAATTGCAGAATTTAGTCCATTTATATTTAAAGTTAATATTGTTATGTGTGAATTTGATCCTGTCATTATGATGTTAGCTGGTGATTTTGCTCATTAGTTGATGCAGTTTCTTCCTAGTCTCGATGGTCTTTACATTTTGGCATGATTTTGCAGCGGCTGGTACCGGTTGTTCCTTTCCATGTTTAGTGCTTCCTTCAGGAGCTCTTTTAGGGCAGGCCTGGTGGTGACAAAATCTCTCAGCATTTGCTTGTCTATAAAGTATTTTATTTCTCCTTCACTTATGAAGCTTAGTTTGGCTGGATATGAAATTCTGGGTTGAAAATTCTTTTCTTTAAGAATGTTGAATATTGGCCCCCACTCTCTTCTGGCTTGTAGGGTTTCTGCCGAGAGATCCGCTGTTAGTCTGATGGGCTTTCCTTTGAGGGTAACCCGACCTTTCTCTCTGGCTGCCCTTAACATTTTTTCCTTCACTTCAACTTTGGTGAATCTGACAATTATGTGTCTTGGAGTTGCTCTTCTCGAGGAGTATCTTTGTGGCGTTCTCTGTATTTCCTGAATCTGAACGTTGGCCTGCCTTGCTAGATTGGGGAAGTTCTCCTGGATAATATCCTGCAGAGTGTTTTCCAACTTGGTTCCATGCTCCACATCACTTTCAGGTACACCAATCAGATGTAGATTTGGTCTTTTCACATAGTCCCATATTTCTTGGAGGCTTTGCTCATTTCTTTTTATTCTTTTTTCTCTAAACTTCCCTTCTCGCTTCATTTCATTCATTTCATCTTCCATCGCTGATACTCTTTCTTCCAGTTGATCACATCGGCTCCTGAGGCTTCTGCATTCTTCACGTAGTTCTCGAGCCTTGGTTTTCAGCTCCATCAGCTCCTTTAAGCACTTCTCTGTATTGGTTATTCTAGTTATACATTCTTCTAAATGTTTTTCAAAGTTTTCAACTTCTTTGCCTTTGGTTTGAATGTCCTCCCGTAGCTCAGAGTAATTTGATCGTCTGAAGCCTTCTTCTCTCAGCTCGTCAAAATCATTCTCCATCCAGCTTTGTTCTGTTGCTGGTGAGGAACTGCGTTCCTTTGGAGGAGGAGAGGCGCTCTGCGTTTTAGAGTTTCCAGTTTTTCTGTTCTGTTTTTTCCCCATCTTTGTGGTTTTATCTACTTTTGGTCTTTGATGATGGTGATGTACAGATGGGTTTTCGGTGTAGATGTCCTTTCTGGTTGTTAGTTTTCCTTCTAACAGACAGGACCCTCAGCTGCAGGTCTGTTGGAATACCCTGCCGTGTGAGGTATCAGTGTGCCCCTGCTGGGGGGTGCCTCCCAGTTAGGCTGCTCGGGGGTCAGGGGTCAGGGACCCACTTGAGGAGGCAGTCTGCCCGTTCTCAGATCTCCAGCTGCGTGCTGGGAGAACCACTGCTCTCTTCAAAGCTGTCAGACAGGGACACTTAAGTCTGCAGAGGTTACTGCTGTCTTTTTGTTTGTCTGTGCCCTGCCCCCAGAGGTGGAGCCTACAGAGGCAGTCAGGCCTCCTTGAGCTGTGGTGGGCTCCACCCAGTTCGAGCTTCCCGGCTGCTTTGTTTACCTAAGCAAGCCTGGGCAATGGCGGGCCCCCCTCCCCCAGCCTCGTTGCCGCCTTGCAGTTTGATCTCAGACTGCTGTGCTAGCAATCAGCGAGATTCCATGGGCGTAGGACCCTCTGAGCCAGGTGTGGGATATAGTCTCGTGGTGCGCCGTTTCTTAACCCGTCTGAAAAGCGCAATATTCGGGTGGGAGTGACCCAATTTTCCAGGTGCGTCCGTCACCCCTTTCTTTGACTCGGAAAGGGAACTCCCTGACCCCTTGCGCCTCCCAGGTGAGGCAATGCCTCGCCCTGCTTCGGCTCGCGCACAGTGCGCACACACACTGGCCTGCGCCCACTGTCTGGCACTCCCTAGTGAGATGAACCCGGTACCTCAGATGGAAATGCAGAAATCACCCGTCTTCTGCGTCGCTCACACTGGGAGCTGTAGACCGGAGCTGTTCCTATTCGGCCATCTTGGCTCCTCCCCCAC");
string ref("TTATACTTTAGACACAAGTTGAGTTAAAATAAAATGTTTTCAAAAACCTAGCACTGTGTGAATTTAATCTATGTTTCATTTATCACTTTACATTGTATTAGTTATCTCCACATTTTATAAACTATATAAATTATAATATCTCTCACTATGACATTAAAACACACCTTTTTACGTGCTTTTCTTTTCTTGCATGTAAATCTCTTTATTTTATTTTATTTTATTATTATTATACTTTAAGTTTTAGGGTACTTGTGCACAATGTGCAGGTTAGTTACACATGTATACATGTGCCATGCTGGTGTGCTGCACCCATTAACTCGTCATTTAGCATTAGGTATATCTCCTAAAGCTATCCCTCCCCCCTCCCCCCACCCCACAACAGTCCCCAGAGTGTGATGTTCCCCTTCCTGTGTCCATGTGTTCTCATTATTCAATTCCCACCTATGAGTGAGAATATGCGGTGTTTGGTTTTTTGTTCTTGCGATAGTTTACTGAGAATGATGATTTCCAATTTCATCCATGTCCCTACAAAGGACATGAACTCATCATTTTTTATGGCTGCATAGTATTCCATGGTGTATATGTGCCAAATTTTCTTAATCCAGTCTATAATTGTTGGACATTTGGGTTGGTTCCAAGTCTTTGCTATTGTGAATAGTGCCGCAATAAACATGCGTGTGCATGTGTCTTTATAGCAGCATGATTTATAGTCCATTGGGTATATACCCAGTAATGGGATGGCTGGGTCAAATGGTATTTCTAGTTCTAGATCCCTGAGGAACCGCCACACTGACTTCCAAAAGGGTTGAACTAGTTTACAGTCCCACCAACAGTGTAAAAGTGTTCCTATTTCTCCACATCCTCTCCAGCACCTGTTGTTTCCCGACTTTTTAATGATCGCCATTCTAACTGGTGTGAGATGGTATCTCATTGTGGTTTTGATTTGCATTTCTCTGATGGCCAGTGATGGTGAGCATTTTTTCATGTGTTTTTTGGCTGCATAAATGTCTTCTTTTGCAAAGTGTCTGTTCATGTCCTTTGCCCACTTTTTGATGGGGTTGTTTGTTTTTTTCCTGTAAATTTGTTTGAGTTCATTGTAGATTCTGGATATTAGCCGTTTGTCAGATGAGTAGGTTGAGACAATTTTCTCCCATTTTGTAAGTTGCCTGTTCACTCTGATGGTAGTTTCTTTTGCTGTGCAGAAGCTCTTTAGTTTAATTAGATCCCATTTGTCTATTTTGGCTTTTGTTGCCATTGCTTTTGGTGTTTTAGACATGAAGTCCTTGCCCATGCCTATGTCCTGAATGGCAAAGCCTAGGTTTTCTTCTAGGGTTTTTATGGTTTTAGGTCTAACATTTAAGTCTTTAATCCATCTCGAATTAATTTTTGTATAAGATGTAAGGAAGGGATCCAGTTTCAGCTTTCTACATATGACTAGCCAGTTTTCCCAGCACCATTTATTAAATAGGGAATCCTTTCCCCATTGCTTGTTTTTCTCAGGTTTGTCAAAGATCAGATAGTTGTCGATATGTGGCCTTATTTCTGAGGGCTGTGTTCTGTTCCATTGATCTATATCTCTGTTTTGGTACCAGTACCATGCTGTTTTGGTTACTGTAGCCTTGTAGTATAGTTTGAAGTCAGGTAGCGTGATGCCTCCAGCTTTGTTCTTTTGGCTTAGGATTGACTAGGCGATGTGGGCTCTTTTTTGGTTCCACATGAACTTTAAAGGAGTTTTTTCCAATTCTGTGAAGAAAGTCATTGGTAGCTTGATGGGGATGGCATTGAATCTATAAATTACCTTGGGCAGTATGGCCATTTTCACGGTATTGATTCTTCCTATCCATGAGCATGGAATGTTCTTCCATTTGTTTGTATCCTCTTTTATTTCACTGAGCAGTGGTTTGTAGTTCTCCTTGAAGAGGTCCTTCACATCCCTTGTAAGTTGGATTCCTAGGTATTTTATTCTCTTTGAAGCAATTGTGAATGGGAGTTCACTCATGATTTGGCTCTCTGTTTGTCTGTTATTGGTGTATAAGAATGCTTGTGATTTTTGTACATTGATTTTGTATCCTGAGACTTTGCTGAAGTTGCTTATCAGCTTAAGGAGATTTTGGGCTGAGACAATGGGGTTTTCTAGATATACAATCATGTCGTCTGCAAACAGGGACAATTTGACTTCCTCTTTTCCTAATTGAATACCCTTTATTTCCTTCTCCTGCCTGATTGCCCTGGCCAGAACTTCCAACACTATGTTGAATAGGAGTGGTGAGAGAGGGCATCCCTGTCTTGTGCCAGTTTTCAAAGGGAATGCTTCCAGTTTTTGCCCATTCAGTATGATATTGGCTGTGGGTTTGTCATAGATAGCTCTTATTATTTTGAGATACATCCCATCAATACCTAATTTATTGAGAGTTTTTAGCATGAAGGGTTGTTGAATTTTGTCAAAGGCCTTTTCTGCATCTGCTGAGATAATCAGGTGGTTTTTGTCTTTGGTTCTGTTTATATGCTGGATTACATTTATTGATTTGCATATATTGAACCAGCCTTGCATCCCAGGGATGAAGCCCACTTGATCATGCTGGATAAGCTTTTTGATGTGCTGCTGGATTCAGTTTGCCAGTATTTTATTGAGGATTTTTGCATCAATGTTCATCAAGGATATTGGTCTAAAATTCTCTTTTTTTGTTGTGTCTCTGCCCAGCTTTGGTATCAGGATGATGCTGGCCTCATAAAATGAGTTAGGGAGGATTCCCTCTTTTTCTATTGATTGGAATAGTTTCAGAAGGAAGGGTAACAGTTCCTCCTTGTACCTCTGGTAGAATTTGGCTGTGAATCCATCTGGTCCTGGACTCTTTTTGGTTGGTAAACTATTGATTATTGCCACAATTTCAGAGCCTGTTATTGGTTTATTCAGAGATTCAATTTCTTCCTGGTTTAGTCTTGGGAGGGTGTATGTGTCAAGGAATTTATACATTTCTTCTAGATTTTCTAGTTTATTTGCGTAGAGGTGTTTGTAGTATTCTCTGATGGTAGTTTGTATTTCTGTGGGATTGGTGGTGATATCCCCTTTATCATTTTTTATTGCACCTATTTGATTCTTCTCTCTTTTCTTCTTTATTAGTTTTGCTAGCAGTCTATCAATTTTGTTGATCCTTTCAAAAAACCAGCTCCTGGATTCATTAATTTTTTGAAGGGTTTTTTGTGTCTCTATTTCCTTCAGTTCTGCTCTGATTTTAGTTATTTCCTGCCTTCTGCTAGCTTTTGAATGTGTTTTCTCTTGCTTTTCTAGTTCTTTTAATTGTGATGTTAGGGTGTCAATTTTGGATCTTTCCTGCTTTCTCTTGTGGGCATTTAGTGCTATAAATTTCCCTCTACACACTGCTTTGAATGTGTCCCAGAGATTCTGGTATGTTGTGTCTTTGTTCTCCTTGGTTTCAAAGAACATCTTTATTTCTGCCTTCATTTCGTTATGTACCCAGTAGTCATTCAGGAGCAGGTTGCTCAGTTTCCATGTAGTTGAGCAGTTTTGAGTGAGTTTCTTAATCCTGAGTTCTAGTTTGATTGCACTGTGGTCTGAGAGACAGTTTGTTATAATTTCTGTTCTTTTACATTTGCTGAGGAGAGCTTTACTTCCAACTATGTGGTCAATTTTGGAATAGGTGTGGTGTGGTGCTGAAGAAAATGTATATTCTGTTGATTTGGGGTGGAGAGTTCTGTAGATATCTATTAGGTCTGCTTGGGGCAGAGCTGAGTTCAATTCCTGGGTATCCTTGTTAACTTTCTGTCTCATTGATCTGTCTAATGTTGACAGTGGAGTGTTAAAGTCTCCCATTATTATTGTGTGGGAGTGTAAGTCTCTTTGTAGGTCACTCAGGACTTGCTTTATGAATCTGGGTGCTCCTGTATTGGGTGCATATATATTTAGGATAGTTAGCTCTTCTTGTTGAATTGATCCCTTTATCATTATGTAATGGCCTTCTTTGTCTCTTTTGATCTTTGTTTGTTTAAAGTCTGTTTTATCAGAGATTAGGATTGCAACCCCTGCCTTTTTTTGTTTTCCATTTGCTTGGTAGATCTTCCTCCATCCTTTTATTTTGAGCCTATGTGTGTCTCTGCACGTGAGATGGGTTTCCTGAATACAGCACACTGATGGGTCTTGACTCTTTATCCAGTTTGCCAGTCTGTGTCTTTTAATTGGAGCATTTAGTCCATTTACCTTTAAAGTTAATATTGTTATGTGTGAATTTGATCCTGTCATTATGATGTTAGCTGGTGATTTTGCTCGTTAGTTGATGCAGTTTCTTCCTAGCCTTGATGGTCTTTACAATTTGGCATGATTTTGCGGTGGCTGGTACCGGTTGTTCCTTTCCATGTTTAGTGCTTCCTTCAGGAGCTCTTTTAGGGCAGGCCTGGTGGTGACAAAATCTCTCAGCATTTGCTTGTCTGAAAAGTATTTTATTTCTCCTTCACTTATGAAGCTTAGTTTGACTGGATATGAAATTCTGGGTTGAAAATTATTTTCTTTAAGAATGTTGGATATTGGCCCCCACTCTCTTCTGGCTTGTAGAATTTCTGCTGAGAGATCCGCTGTTAGTCTGATGGGCTTCCCTTTGTGGGTAACCTGACCTTTCTCTCTGGCTGCCCTTAACATTTTTTCCTTCACTTCAACTTTGGTGAATCTGACAATTATGTGTCTTGGAGTTGCTCTTCTCGAGGAGTATCTTTGTGGCATTCTCTGTATTTCCTGAATCTGAATGTTGGCCTGCCTTGCTAGATTGGGGAAGTTCTCCTGGATAATATCCTGCAGAGTGTTTTCCAACTTGGTTCCATTCTCCCCGTCCCTTTCAGGTACACCAATCAGCCGTAGATTTGGTCTTTTCACATAGTCCCATATTTCTTGGAGGCTTTGTTCATTTCTTTTTATTCTTTTTTCTCTAAGCTTCCCTTCTCGCTTCATTTCATTCATTTCATCTTCCATCACTGATACCCTTTCTTCCAGTTGATCGCATCAGCTCCTGAGGCTTCTGCATTCTTCACGTAGTTCTCGAGTCTTGGCTTTCAGCTCCATTAGCTCCTTTAAGCACTTCTCTGTATTGGTTATTCCAGTTATACATTCGTCTAAATTTTTTTCAAAGTTTTCAACTTCTTTGCCTTTGGTTTGAATTTCCTCCTGTAGCTCGGAGTACTTTGATCCTCTGAAGCCTTCTTCTCTCAGCTCGTCAAAGTCATTCTCCGTCCAGTTTTGTTCCGTTGCTGGTGAGGAGCTGTGTTCCTTTGGAGGAGGAGAGGCGCTCTGGTTTTTAGAGTTTCCAGTTTTTCTACTCTGTTTTTTCCCCATCTTTGTGGTTTTATCTACTTTTGGTCTTTGATGATGGTGATGTACAGATGGGTTTTTGGTGTGGATGTCCTTTCTGTTTGTTAGTTTTCCTTCTAACAGACAGGACCCTCAGCTGCAGGTCTGTTGGAGTTTGCTAGAGGTCCACTCCAGACCCTGTTTGCCTGGGTACCAGCAGCGGTGGCTGCAGAACAGCGGATTTTCATGAACCACGAATGCTGCTGTCTGATCATTCCTCTGGAAGTTTTGTCTCAGAGGAGTACCCAGCCGTGTGAGGTGTCAGTCTGCCCCTACTGGGGGGTGCCTCCCAGTTAGGCTGCTTGGGGGTCAGGGGTCAGGGACCCACTTGAGGAGGCAGTCTGCCCATTCTCAGATCTCCAGCTGCGTGGTGAGAGAACCACTGCTCTCTTCAAAGCTGTCAGACAGGGACATTTAAGTCTGCAGAGGTTACTGTTGTCTTTTTGTTTGTCTGTGCCCTGCCCTCAGAGGTGGAGCCTACAGAGGCAGGCAGGCCTTCTTGAGCTGTGGTGGGCTCCACCCAGTTGGAGCTTCCTGGCTGCTTTGTTTACCTAAGCAAGCCTGGGCAATGGCAGGTGCCCCTCCCCCAGCCTCGCTGCCGCCTTGCAGTTTGATCTCAGACTGCTGTGCTAGCAATCAGCAAGACTCCTTGGGCGTAGGACCCTCTGAGCCAGGTGCGGGATATAATCTCGTGGTGTGCCGTTCTTTAAGCCCATTGGAAAAGCACAGTATTCGGGTGGGAGTGACCCGATTTTCCAGGTGCTGTCTGTCACCCCTTTCTTTGACTAGGAAAGGGAACTCCCTGACCCCTTGCGCTTCCCGAGTGAGGCAATGCCTCACCCTGCTTCAGCTCATGCATGGTGCGCTGCACCCACTGTCCTGCGCCCTCTGTCTGGCACTCCCTAGTGAGATGAACCCGGAACCTCAGATGGAAATGCAGAAATCACCCGTCTTCTGCGTCGCTCACGCTGGGAGCTGTAGACCGGAGCTGTTCCTATTTGGCCATCTTGGCTCCAGCCCCTTTTTACATGCTTAAAACACATGTATAACCCATTTATATTTTAAATTTTTTTATATTGTTGTATGTATAATTTTCCAGCAAGTACAATAATTTGAAATGAAGCAGCAATCTGTAAGCACTAGTTACAGGATTAAAATAATGTAATCCTTATTACAGTTGCACACTTTTAATACCATGTGTGAGCTCAAAGACATTTAGTGATAAATCCCAAATGAAATTGCTGGGCAACTCTGAAGGTTCCGGTGGAAAATGCATTTAGTAAGTGTTCAAAGTTAGAAAACCATGAAGAATTGAAATTTACCTTTGATGCTGCTCTGCAGGGTGCTGGCAGTCAGGTAAAAGGCAAGCAGAGCCTGTGGTCGTCACATTCGGAGGCTGCGCATTGCAGAGCCATTACTGGACACTGACTCTGGTTGGTTTTTTTCTCAATTAGATTTGCTTCAATAGAAGAACAGGAAATGTTTCTCGAATAAACTGAATGCTTTTATAAATTAAAACCTCATGTATAAGTAGTTCAAGAAACTCAACTGTATTTCTTTTATTTTTTTATTTTTTATTTTTGAGACAAGGTGTTGCTCTGTTGCCCAGACTGGAGTACAGCAGTGCGATCACAGCTCACTTCAGTCTTGACCTCTTGGATTCAGGTGATCCTCCCACCTCAGCCTCCTGTGTAGTTAGGACTATAGGTAGGTGCAGTACGCCTGGCTAATGTTTTCTATTTTTTGTAGAGATGGGGTTTCACCATGTTGCTCAGGCTAATCTTGAATTCCTGACTTCAAGTGATTCACCTGCCTCAGGCTTCCAAGGTGATTATAGATGTGAGTCTCTACACTGGTCTCAACTTCATTTATTTAATTGAATGTTTAGAGGGAGCAACTTAACTCTCAGCAAATTAAGATCTGCCAAATATGTATGTACACACATACACACATAATTTCACATATAATAGTCTGCTATATATGTTTCTGGTTCAAACTTCTTTGTGGATCCCTTTTGGATGGTCAAGAAGTATTTTAAACCCTCAATTAAATTAAACAGTGTCTTTGTTTTAAATTAGCTTCTTCTTGGTCAATTCAGTCTCTTTTGTCTAAATGCTCAGGTTTGTCTTTTTAATTGAAAAAAATTATTATTTTAGTGTATCTACACAATCATTCCTCTCAAGATAGCATTTGAGTACAAAGAAAAACAATGTGTGCTCTGTTAATGACTGAGTCTCAAGTCCAGGCTTAAGTTTTTTGCTGTTTCCTGCACCCTTTAATCATCCACGCCATGCCTGGACTATCCCTTACCACACTTGATCTCTCATAAACCTTCTGGCATCAACTGATGGAGCCACTTCTGGTAAACTTGTTTCTCTCAACATCGGCCATGAGCAATGTTTTCAATCTCCCCAGCCAACGAGTGTCACTTTGCTCTTGCTGGAGTATAACATCTATGGGGCTGGGTGCGGTGGCTCATGCCTGTAATCCCAGCACTTTGGGAGGCCAAGGCGAGTGCATCACCTGAGGTCAGGAGTTTGAGACCAGCCTGATTAACACGGTGAAACCCAGTCTCTACTAAAAATACAAAATTAGCCAGGGGTGGTGGCGCATGCCTGTAATCCCAACTACTTGGGAGACTGAGGCAGGAGAATCATTTGAACCAGGGAGGCAGAGGTTGCAGTGCAACAAGAGCAAAACTATGTTTCAGAAACAAAAAAACAAGACAACAACAATAGCAACATCTATGGGGCTCCGTGGACCCCTGTACCTGGCCCCTGGCTTGAGTATTCTACCCTTTGGCTTCTAGGGGGCAATGTCACCCCTCATAAAGGAATCTTCTTACAGCCCTTCTGGGTCACTTGTTACTTTTCACATCCCCCATTAAGAATGCTCAGTAACTTCTAGATCCCAGTAGGTTCTCTCCTCACGTCCCTTGTGCTGGTGCAGGGAAGGGACATCGTGCAAGACACTTCCGTTCAGAGACCAAAACAGGAAGCGGGACAGGAGACCTCTGTGTTCAGCATCAGTCTCAACATAGCTGGGATGTCTCTACCTTACTCCTTCAAGTTTTAGCTCTGTTTGAGGCCCCTACTATTGGGTGCCTTGCTTTCTTCTTTGATTTCCCTCACTATTTCATAAGATCCTCTTTCCCTTTCCTGTCTGGTAGAAACACTCCTATATCATGTCCCCCTTCTCCTTACCCTGTATACTTTCTGGGTTTTAGATAGTACCTCCTTTTTTTCTTTGCAGGAGCACTAAACTTCAAGCTTAGTCTTAATGGTGAATGAGGTACAGGCAATTTAATTTATAATGAAAATACGGCCGGGCACAGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGTGGGTGGATCACCTGAGGTCAGGAATTTGAAAACAGCCTGGCCAACATGGTGAAACCTTGTCTCCACTAAAAATACAAAAATTAGCTGAGCATGGTGGTGGGTGCCTGTAATCCCAGCTACTTGGGAGGCTGAGGCACAGGAATCGCTTGAACCCAGGAGGTGGAGGTTGTGGTAAGCGGAGATCGCACCACTGCACTCCAGCCTGGGCGACAAAGCGAGACTTGGTCTCAAAAAAATAAATAAATAAATAAAAATAAATTGTTTTTATGTTTTCAAAATATACTCTGGGTTGCACTATAAAGTGCTGTGTTTAGTGGCTTCTGCCTTGTGCTCATCACATGGAAGTGTGAGCAAGTGTCTTGAGCCATTCTCTAAACTCATCATTCCGTAATGCCTCTACCATTCAGTTTATAAGATGACATTTTCTTAACACACTCTTCCTAAGATCATCCCACTGCTCTTACCTTATCATTCACTTTCCTAGGCAAGGCCTTTCTGTTTTGGACTTACATCTGCCGTATGAATATGAAAGGCGGAATAACAGGCTGGGTGCTGGAAAAAGATTTCCTGGTGTCAAAATTCTTACCTAATTATGGGAAGTAAGACAAATCATTTAATGTCTCCGTGCTTCAGTTTTCTTATCTTTAGTCATGAGTGTAATAACAGTTGTTGTGACAATTAAATGAGGTAATGCATAGAAAATGCTTAGAAAATGCACAGGACCTGGCATGGGATTCGTGCCCTGTGCATTTTAGCTGTTATTACGATAGAATCAAAGCATCTCAGGTGTGGAAAGATGGTAGGTACAACCTTGCAGTGTTTGAAACTGCCTTTAACATTCCTGTAAAATATTTATACAACTTCTCCTTGAATGCCTCAAGTAAAAGGAGACTCGATACCTTCTAAGGTAATTCATTCTTTCATTGGAGAAGTCTGGCTATTATAATGTTCTCCTTTACCTCAAGTAAATATCTATCCCCCTGAAATATCTATTTATTATTCCTAGAAAGGTTTCTTGGGGCCATTTAAAATAAATCTAATTTTACTTTTATTTGAGAGTCCTTTTAATATTTGAGCATAGTCAGCATGCCTGTTTCTTTTTCATATTGCATTTCCTCATGAGCTGAACAGTCAGGTATCTCTAATTGGTCCTCTTACAATATGGTTTAAGTCCCTTTACCATCTGGGCATGGGAGGTCATGTAAGCTATCACAACTGCAGCAAGATCCTGTTATCCTGACAACAAATGGATTAGGGACAACTATGTTTCTTAAAATCAGACTAGAAGCATCCTTTAGCTCTTTGGAAATTATAGTCCACATGCAAGCATGGTAATTCTCCTTTTATCCAATGTCACATAGAAATCAGGTGCTCTACAGTTGAGAGTTTTCCAAATAATATTAACCCTTTAAGCACCAAATTTTTGGGGGGTAGCAAGTGTGATACTTCCCCAATTCTACAATCTTATGGTAGATTTTGTCAGTGCATACAAAGTTATAGAATATACAGTGAATCCCAAACTTGACAGTTTAAAATTTGGAAAGTCAGAGGTAACGCATGCCTACAAATCACTGTAGAGCTTGGCAGTAGTGAACCATGTCAATTAGAATAACTCTGAGAATGCGCTGCAAGTTTAGAGGTGGGGGAGATCACCTCCATCAGGTGTGGTCAGGAGTGAAGATCAGGTGTGATCAGGAGTGAGGATCAGGTGTGGTCGGGAGTGGGGATCAGGTGTGGCCAAGAGTGAGGATCAGGTGTGGTCAGGAGCGAGTGGGGAGGACTTCATGGTCAAGCGGGAAGACAGAATGGCCCTTCAGAATGGCTAGAGTTTTAAGAGGTAGAAATGTCAAGTATAACATTACAGGAGAAATTGCACTGAAGTGCTGGGGGGGGTATGTACAAGAAGTGAGGGAGCACAAAGTGAAATCAGGAAGCAGTGGAACAGCAGGCTTCCATTCAGCAATAAAAATTAAAGTGCACCTGCGCAATCCAGATCTTGCAGTGTTGAACATGGACAAGTCATTTCAGGCCTGATGGTGTTTATAGATTGTTGGGACAGAGAAATAGAAAGCAAATAACACAAATAAATGAAACAATTATAATTCTGATATTTCAATAAAGGAAAGATACAAAATGTGGTGAGAATATATAACAATAAGTCCCTGTGAGTTCAGAGATGGCTTTCTGGGATTGACATTTAAGCTGGGAAGTAGAAGTAGAAGTTCCCTGGGTAATATGGAAAGCTGGAAATTAAGAAACTTTACAAACACCAGGAATCACATGGATAAAGCCCCAGAGGCAGGATGGGGTGTATATTATTGGAGGAACTTGGAGTGGTTAGAGTTCAGAGAGTAAGGAAGAGACAAGCAAGAGATGGGGGAGGGAGGTCTGACGTTTCAGGTTAATCCTGACAGCAATAGAATTGCCAGGCTTTGAGCACACACTGACAGGGGCAGATTTGCATTTGTAAATGAAAGGCAATGAATTGAAGGGACATGATGGATTTGCCATCCAAGTAGATGAGCTTGCCTAGAGAACGAGTGTGGCACCAAGGAAAGATCACCTAACATTGAACCATTAAAAATGCCAGCATTAGAACATCAGAGAGTGGGAGAGAAGCTAATTAAGAAGATTCTGAGAGACTAGGGATCATAAGGACCACACACTTTAATCAACAAGTCAAGAAGTGATTTTGACCTCTTGGTCCAACTCTAAGACAACCATCCTAACAAAAATTTTCCAAATCCATGGAGCAAACAGTCACTTCTTCATCCCCAAAAACGGCCATAATATTTATTTTTCTTTTCCTTCCTGTCACTCTCTACCCTGAAACATATTTATTTATCTATTTATTTATTTTTAAGACAGAATCTCATTCTGTTGCCCGGGCTGGAGTGCAGTGGTACAATCTCAGCTCACCTCAACCTCCACCTCCCAAGTTCAAGCAATTCTCCTGCATCAACCTTCTGAGTAGCTTGGATTACAAGCGCGCACCACCACGCCCGGTGAATTTTTGCATTTTTAGTAGAGACAGGGTTTTGCCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTGAGATGATCCACCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCGCGCCTGACCAGAAATATAGTTGTTTACAAACACATCCTTTCTATAGACTAAAAGCTTTCAATGTCAGAATCTATTTTTTGTTCATCTTTGAATCACTCAAAGAACTGAACAGAGAGATTTGTACATGAGTACTCAGTTTTTTATTGAATTAAAAAAATGGTCTAATTTGTGAAACAGGAAGATGAATGGTAGATGTGGTTATGCACAGGAGAGATTGCTGAGGAGAGAGA");
Align<DnaString, ArrayGaps> alignment;
resize(rows(alignment), 2);
assignSource(row(alignment, 0), query);
assignSource(row(alignment, 1), ref);
int k=7;
map<kmer_t, vector<int> > queryMap, refMap;
StoreKmerToPos(query, k, queryMap);
StoreKmerToPos(ref, k, refMap);
TSeedSet queryMatches;
StoreKmerMatches(queryMap, refMap, k, queryMatches);
String<Seed<Simple> > chain;
chainSeedsGlobally(chain, queryMatches, SparseChaining());
int result;
AlignConfig<false, true, true, false> alignConfig;
Score<int, Simple> scoringScheme(2, -1, -2);
result = bandedChainAlignment(alignment, chain, scoringScheme, scoringScheme, alignConfig);
}