multovl
1.3
Multiple overlaps of genomic regions
|
Class for calculating multiple overlaps repeatedly after reshuffling some of the tracks. More...
#include "shuffleovl.hh"
Public Member Functions | |
ShuffleOvl (const std::vector< Region > &frees) | |
bool | fit_into_frees (const Region ®) const |
bool | add_randomplacer (unsigned int reglen, unsigned int trackid) |
unsigned int | shuffle (UniformGen &rng) |
![]() | |
MultiOverlap () | |
Init to empty. | |
MultiOverlap (const Region ®ion, unsigned int trackid) | |
Init to contain a region and trackid. | |
unsigned int | find_overlaps (unsigned int ovlen, unsigned int minmult=1, unsigned int maxmult=0, bool intrack=true) |
unsigned int | find_unionoverlaps (unsigned int ovlen, unsigned int minmult=2, unsigned int maxmult=0) |
const multiregvec_t & | overlaps () const |
void | overlap_stats (Counter &counter) const |
![]() | |
MultiRegLimit () | |
Init to empty. | |
MultiRegLimit (const Region ®ion, unsigned int trackid) | |
Init to contain a region and trackid. | |
MultiRegLimit (const MultiRegLimit &other) | |
MultiRegLimit & | operator= (const MultiRegLimit &rhs) |
void | add (const Region ®ion, unsigned int trackid) |
const reglim_t & | reglim () const |
MultiRegLimit & | operator+= (const MultiRegLimit &rhs) |
Additional Inherited Members | |
![]() | |
typedef std::vector< MultiRegion > | multiregvec_t |
![]() | |
typedef std::multiset< RegLimit > | reglim_t |
![]() | |
reglim_t & | nonconst_reglim () |
Class for calculating multiple overlaps repeatedly after reshuffling some of the tracks.
|
explicit |
Init with free regions
frees | a vector of free regions into which all fixed and shufflable regions must fall |
bool multovl::prob::ShuffleOvl::add_randomplacer | ( | unsigned int | reglen, |
unsigned int | trackid | ||
) |
Adds the length of a "shufflable" region in a track to the internal trackid => RandomPlacer map.
reglen | the length of the region, should be > 0 |
trackid | the track ID |
|
inline |
Checks whether a given region "fits" into one of the free regions (all regions must be contained in a free region). If a region does not fit, then it must not be considered for overlap shuffling. Note that the pipeline input operation takes care of this.
reg | The region to be tested |
unsigned int multovl::prob::ShuffleOvl::shuffle | ( | UniformGen & | rng | ) |
Shuffle the "shufflable" tracks
rng | a uniform[0,1) random number generator |