view BEDTools-Version-2.14.3/src/closestBed/closestBed.h @ 0:dfcd8b6c1bda

Uploaded
author aaronquinlan
date Thu, 03 Nov 2011 10:25:04 -0400
parents
children
line wrap: on
line source

/*****************************************************************************
  closestBed.h

  (c) 2009 - Aaron Quinlan
  Hall Laboratory
  Department of Biochemistry and Molecular Genetics
  University of Virginia
  aaronquinlan@gmail.com

  Licenced under the GNU General Public License 2.0 license.
******************************************************************************/
#ifndef CLOSESTBED_H
#define CLOSESTBED_H

#include "bedFile.h"
#include <vector>
#include <iostream>
#include <fstream>

using namespace std;

//************************************************
// Class methods and elements
//************************************************
class BedClosest {

public:

    // constructor
    BedClosest(string &bedAFile, string &bedBFile, 
               bool sameStrand, bool diffStrand, string &tieMode, 
               bool reportDistance, bool signDistance, string &strandedDistMode,
               bool ignoreOverlaps);

    // destructor
    ~BedClosest(void);

    // find the closest feature in B to A
    void FindClosestBed();

private:

    // data
    string _bedAFile;
    string _bedBFile;
    string _tieMode;
    bool   _sameStrand;
    bool   _diffStrand;
    bool   _reportDistance;
    bool   _signDistance;
    string _strandedDistMode;
    bool   _ignoreOverlaps;

    BedFile *_bedA, *_bedB;

    // methods
    void reportNullB();
    void FindWindowOverlaps(BED &, vector<BED> &);

};
#endif /* CLOSEST_H */