Scaffolding  0.1
This program can assemble genome scaffolds using the pairing information in paired-end reads.
scaffold_io.hpp
1 
2 #ifndef SCAFFOLD_IO_HPP
3 #define SCAFFOLD_IO_HPP
4 
5 #include <iostream>
6 #include "utils/instance.hpp"
7 #include "utils/scaffolding_typedefs.hpp"
8 
9 #include "io/read_dimacs_graph.hpp"
10 #include "io/write_dimacs_graph.hpp"
11 #include "io/read_dot.hpp"
12 #include "io/write_dot.hpp"
13 #include "io/read_adj_list.hpp"
14 #include "io/write_adj_list.hpp"
15 
16 
17 namespace scaffold{ namespace io {
18 
19  Instance* read_instance(std::ifstream& infile,
20  const unsigned num_paths,
21  const unsigned num_cycles,
22  const unsigned num_objects,
23  SequenceMap& sequence_orientations)
24  {
25  Instance* result;
26  if(infile.is_open()){
27  DEBUG1(std::cout << "reading input file" << std::endl);
28  // try dot first
29  result = io::read_dot(infile, num_paths, num_cycles, num_objects, sequence_orientations);
30  if(result == NULL){
31  DEBUG1(std::cout << "file is not in DOT format, trying DIMACS..."<<std::endl);
32  infile.clear();
33  infile.seekg(0, std::ios::beg);
34 
35  // try dimacs next
36  result = io::read_dimacs_graph(infile, num_paths, num_cycles, num_objects);
37  if(result == NULL){
38  DEBUG1(std::cout << "file is not in DIMACS format, trying adjacency list format..."<<std::endl);
39  infile.clear();
40  infile.seekg(0, std::ios::beg);
41 
42  // try adjacency list next
43  result = io::read_adj_list(infile, num_paths, num_cycles, num_objects);
44  if(result == NULL){
45  DEBUG1(std::cout << "file is not in adjacency list format, giving up"<<std::endl);
46  return NULL;
47  } // if
48  } // if
49  }// if
50  infile.close();
51  return result;
52  } else return NULL;
53  }
54 
55  Instance* read_instance(std::ifstream& infile, SequenceMap& sequences)
56  {
57  return read_instance(infile, 0, 0, UINT_MAX, sequences);
58  }
59 
60  // if you don't care about sequences, use this instead
61  Instance* read_instance(std::ifstream& infile,
62  const unsigned num_paths,
63  const unsigned num_cycles,
64  const unsigned num_objects)
65  {
66  SequenceMap seq;
67  return read_instance(infile, num_paths, num_cycles, num_objects, seq);
68  }
69 
70 }}// namespace
71 
72 
73 #endif
Definition: read_adj_list.hpp:22
Definition: read_phytree.hpp:10