comparison SMART/Java/Python/Cpp/genomicInterval.hpp @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
comparison
equal deleted inserted replaced
17:b0e8584489e6 18:94ab73e8a190
1 #ifndef GENOMIC_INTERVAL_HPP
2 #define GENOMIC_INTERVAL_HPP
3
4 #include "interval.hpp"
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string>
8 #include <sstream>
9
10 class GenomicInterval: public Interval {
11
12 public:
13 string chromosome;
14
15 GenomicInterval(string chromosome = "", unsigned int start = 0, unsigned int end = 0): Interval(start, end), chromosome(chromosome) { }
16
17 bool onSameChromosome(const GenomicInterval &i) const {
18 return (chromosome == i.chromosome);
19 }
20
21 // friend bool operator==(const GenomicInterval &i1, const GenomicInterval &i2) {
22 // return ((i1.onSameChromosome(i2)) && (Interval::i1 == Interval::i2));
23 // }
24
25 // friend bool operator<(const GenomicInterval &i1, const GenomicInterval &i2) {
26 // return ((i1.onSameChromosome(i2)) && (Interval::i1 < Interval::i2));
27 // }
28
29 friend ofstream& operator<<(ofstream &stream, const GenomicInterval &i) {
30 stream << i.chromosome << '\t' << i.start << '\t' << i.end << '\n';
31 return stream;
32 }
33
34 void parseFromLine(string &line) {
35 string strStart, strEnd;
36 istringstream iss(line);
37 getline(iss, chromosome, '\t');
38 getline(iss, strStart, '\t');
39 getline(iss, strEnd, '\t');
40 start = atoi(strStart.c_str());
41 end = atoi(strEnd.c_str());
42 //cout << "read " << chromosome << ":" << start << ".." << end << endl;
43 }
44
45 };
46
47 #endif