| 16 | #include "ThreadPool.h" |
| 17 | |
| 18 | class ChrCopyNumber |
| 19 | { |
| 20 | public: |
| 21 | ChrCopyNumber(void); |
| 22 | ChrCopyNumber(std::string const& chrName); |
| 23 | ChrCopyNumber(int windowSize, int chrLength, std::string const& chrName); |
| 24 | ChrCopyNumber(int windowSize, int chrLength, std::string const& chrName, int step, std::string targetBed = ""); |
| 25 | ~ChrCopyNumber(void); |
| 26 | void mappedPlusOneAtI(int i, int step, int l = -1); |
| 27 | |
| 28 | void addBAFinfo(SNPinGenome & snpingenome,int indexSNP); |
| 29 | |
| 30 | void fillInRatio(bool islog); |
| 31 | void calculateRatio(ChrCopyNumber control, float normalizationConst) ; |
| 32 | void recalculateRatio (float constant); |
| 33 | void recalculateLogRatio (float constant) ; |
| 34 | void recalculateRatioWithContam(float contamination, float normGenytype, bool isLogged); |
| 35 | void recalculateRatio(ChrCopyNumber control); |
| 36 | void calculateRatio(ChrCopyNumber control, double a0, double a1); |
| 37 | void calculateRatio(ChrCopyNumber control, const double * a, const int degree); |
| 38 | void calculateRatioLog(ChrCopyNumber control, const double * a, const int degree); |
| 39 | int calculateBreakpoints(double breakPointThreshold, int firstChrLength, int breakPointType); |
| 40 | int calculateBAFBreakpoints(double breakPointThreshold, int firstChrLength, int breakPointType); |
| 41 | double calculateXiSum(int ploidy, std::map <float,float> &sds, std::map <float,float> &meds); |
| 42 | double calculateXiSum(int ploidy, std::map <float,float> &sds); |
| 43 | void calculateCopyNumberMedian(); //create median profiles using 'bpfinal_' and store them in medianProfile_, info about medians themselves is stored in medianValues_ and about SD in sd_, lengths of fragments in bpLengths_ |
| 44 | void calculateCopyNumberMedian(int ploidy, int minCNAlength, bool noisyData, bool CompleteGenomicsData, bool isLogged); //create median profiles as calculateCopyNumberMedian(), but merges close regions (roundByPloidy(median)) |
| 45 | void recalcFlanksForIndeces (int i, int j); |
| 46 | void recalcFlanks(int telo_centromeric_flanks, int minNumberOfWindows); //merge short notNA-segments around NA-segments |
| 47 | |
| 48 | //void calculateRatio(double a,double b, double c, double d); //depreciated |
| 49 | void calculateRatio(double *a, int degree); |
| 50 | void recalculateRatio(double *a, int degree); |
| 51 | |
| 52 | void removeLowReadCountWindows(ChrCopyNumber control, const int RCThresh); |
| 53 | void removeLowReadCountWindows(const int RCThresh) ; |
| 54 | |
| 55 | void deleteFlanks(int telo_centromeric_flanks); |
| 56 | void deleteFragment(int i) ; |
| 57 | int removeLargeExons(float threshold); |
| 58 | |
| 59 | std::string getGeneNameAtBin(int i); |
| 60 | float getValueAt(int i); |
| 61 | int getCoordinateAtBin(int i); |
| 62 | int getEndAtBin(int i); |
| 63 | //void printLog2Ratio(std::ofstream const& file) ; |
| 64 | float getRatioAtBin(int i); |
| 65 | std::vector <float> getRatio(); |
| 66 | int getLength(); |
| 67 | int getChrLength(); |
| 68 | std::string getChromosome(); |
| 69 | int getCoveredPart(int breakPointStart, int breakPointEnd);//for exome-seq: get length of the genome covered by the targeted region (from breakPointStart to breakPointEnd) |
| 70 | std::vector <float> getValues(); //get readCount_ |
| 71 | float getMedianProfileAtI (int i) ; |
| 72 | std::vector <float> getMedianValues () ; |
| 73 | float getMedianValuesAt (int i) ; |
| 74 | std::vector <float> getSDs ();//unUsed |
| 75 | std::vector <int> getFragmentLengths_notNA (); |