11#include "alignment.hh"
14#include "randseqaccess.hh"
15#include <boost/graph/adjacency_list.hpp>
16#include <boost/graph/depth_first_search.hpp>
19const string colornames[NUMCOLNAMES] = {
"aquamarine",
"darksalmon",
"gainsboro",
"gold",
"cadetblue",
"yellowgreen",
20 "crimson",
"peru",
"cadetblue1",
"hotpink1",
"lightcyan",
"magenta",
"mediumseagreen",
21 "mintcream",
"olivedrab3",
"violetred",
"grey44",
"peachpuff",
"chartreuse3",
22 "aquamarine2",
"darkorange1",
"forestgreen",
"gray66",
"khaki",
"olivedrab1",
23 "skyblue4",
"maroon2",
"grey40",
"darkturquoise",
"brown4",
"seagreen1",
"royalblue3"};
56typedef boost::adjacency_list<boost::setS,
58 boost::bidirectionalS,
60 boost::property < boost::edge_weight_t, int, AliEdge >,
69 int maxSeqRange(AlignmentGraph &g);
74 friend ostream& operator<< (ostream& strm,
const AliPath &p);
77typedef AlignmentGraph::vertex_descriptor vertex_descriptor;
78typedef AlignmentGraph::edge_descriptor edge_descriptor;
88 template <
typename Vertex,
typename Graph >
89 void finish_vertex(Vertex u,
const Graph & g) { m_ftimemap[--t] = u;}
97void eraseListRange(list<int> L, list<int>::reverse_iterator from, list<int>::reverse_iterator to);
98void eraseListRange(list<int> L, list<int>::iterator from, list<int>::iterator to);
110 void readAlignment(
string alignFilename);
111 void printAlignment(
string outFname);
112 int numAlignments() {
return alignment.size(); }
135 void project(AlignmentGraph &g,
const MsaSignature *sig);
137 int findBestPath(AlignmentGraph &g);
145 bool prunePaths(vector<AliPath> &allPaths, AlignmentGraph &g);
146 template<
class Iterator >
147 bool prunePathWrt2Other(
AliPath &p, Iterator pstart, Iterator pend,
148 AliPath &other, Iterator ostart, Iterator oend,
149 AlignmentGraph &g,
bool forward);
150 bool deletePathWrt2Other(
AliPath &p,
AliPath &other, AlignmentGraph &g);
157 int seqID2seqIDarhiveConversion(
int species,
string seqID){
return seqID2seqIDarhive[species][seqID];}
158 string seqIDarhive2seqIDConversion(
int species,
int seqIDarchive){
return seqIDarhive2seqID[species][seqIDarchive];}
159 void readNameDB(
string dir);
164 list<Alignment*> alignment;
167 map<string, MsaSignature> signatures;
168 static int maxIntronLen;
169 static int minGeneLen;
170 static int maxGeneLen;
174 vector<map<string, int> > seqID2seqIDarhive;
175 vector<map<int, string> > seqIDarhive2seqID;
Definition genomicMSA.hh:67
global multiple sequence alignment with efficiently stored long gaps.
Definition alignment.hh:160
multiple sequence alignment of genomes for comparative gene prediction
Definition geneMSA.hh:37
multiple sequence alignment of genomes for comparative gene prediction
Definition genomicMSA.hh:105
void writeDot(AlignmentGraph const &g, string fname, MsaSignature const *superSig=NULL)
Definition genomicMSA.cc:1066
vector< map< string, int > > chrLen
Definition genomicMSA.hh:119
bool prunePaths(vector< AliPath > &allPaths, AlignmentGraph &g)
Definition genomicMSA.cc:693
void findGeneRanges()
Definition genomicMSA.cc:352
void compactify()
Definition genomicMSA.cc:317
MsaSignature is a summary of the seqId/strand combinations of the alignment.
Definition alignment.hh:275
abstract class for quick access to an arbitrary sequence segment in genomes needed for comparative ge...
Definition randseqaccess.hh:62
Definition genomicMSA.hh:84
Definition genomicMSA.hh:42
Definition genomicMSA.hh:50
Definition genomicMSA.hh:29