annotate BEDTools-Version-2.14.3/src/utils/bedGraphFile/bedGraphFile.cpp @ 0:dfcd8b6c1bda

Uploaded
author aaronquinlan
date Thu, 03 Nov 2011 10:25:04 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
1 /*****************************************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
2 bedGraphFile.cpp
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
3
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
4 (c) 2010 - Assaf Gordon
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
5 Hall Laboratory
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
6 Department of Biochemistry and Molecular Genetics
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
7 University of Virginia
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
8 aaronquinlan@gmail.com
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
9
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
10 Licenced under the GNU General Public License 2.0 license.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
11 ******************************************************************************/
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
12 #include "bedGraphFile.h"
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
13 #include <sstream>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
14
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
15 // Constructor
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
16 BedGraphFile::BedGraphFile(string &_file) :
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
17 bedGraphFile(_file),
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
18 _bedGraphStream(NULL)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
19 {}
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
20
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
21
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
22 // Destructor
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
23 BedGraphFile::~BedGraphFile() {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
24 Close();
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
25 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
26
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
27
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
28 // Open the BEDGRAPH file
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
29 void BedGraphFile::Open() {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
30 if (bedGraphFile == "stdin" || bedGraphFile == "-") {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
31 _bedGraphStream = &cin;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
32 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
33 else {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
34 _bedGraphStream = new ifstream(bedGraphFile.c_str(), ios::in);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
35
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
36 if (isGzipFile(_bedGraphStream) == true) {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
37 delete _bedGraphStream;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
38 _bedGraphStream = new igzstream(bedGraphFile.c_str(), ios::in);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
39 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
40 // can we open the file?
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
41 if ( !(_bedGraphStream->good()) ) {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
42 cerr << "Error: The requested bed file (" << bedGraphFile << ") could not be opened. Exiting!" << endl;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
43 exit (1);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
44 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
45 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
46 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
47
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
48
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
49 // Close the BEDGRAPH file
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
50 void BedGraphFile::Close() {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
51 if (bedGraphFile != "stdin" && bedGraphFile != "-") {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
52 if (_bedGraphStream) {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
53 delete _bedGraphStream;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
54 _bedGraphStream = NULL ;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
55 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
56 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
57 }
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
58