1 #ifndef SCAFFOLD_GRAPH_H
2 #define SCAFFOLD_GRAPH_H
3 /*
4  *  scaffold_graph.h
5  *  cufflinks
6  *
7  *  Created by Cole Trapnell on 6/2/10.
8  *  Copyright 2010 Cole Trapnell. All rights reserved.
9  *
10  */
11 
12 #include <vector>
13 #include <utility>
14 #include <boost/graph/adjacency_list.hpp>
15 #include <boost/graph/graph_traits.hpp>
16 
17 #include <boost/version.hpp>
18 
19 #if (BOOST_VERSION < 103800)
20 #include <boost/vector_property_map.hpp>
21 #else
22 #include <boost/property_map/vector_property_map.hpp>
23 #endif
24 
25 class Scaffold;
26 
27 typedef boost::adjacency_list<boost::vecS,
28                               boost::vecS,
29                               boost::bidirectionalS,
30                               boost::property<boost::vertex_name_t, Scaffold*> > DAG;
31 
32 typedef boost::graph_traits<DAG>::vertex_descriptor DAGNode;
33 
34 typedef boost::property_map<DAG, boost::vertex_name_t>::type HitsForNodeMap;
35 
36 bool create_overlap_dag(std::vector<Scaffold>& hits, DAG& bundle_dag);
37 std::pair<DAGNode, DAGNode> add_terminal_nodes(DAG& bundle_dag);
38 
39 #endif
40