#ifndef _VIHGO_H #define _VIHGO_H #include <vector> #include <map> #include <htslib/sam.h> class Vihgo { public: Vihgo(); Vihgo( std::string , std::string , std::string , std::string , std::string , std::string, std::string,std::string,std::string,std::string, int, int , int , double, double, bool); int mainLoop(); int getGenome(); int getGenes(); int getAnnotation(); int readRunControl(); int readSample(); int variantCalling(); std::string getControlBamFile(); std::string getBamFile(); bool isInGeneList( std::string ); bool getCountStop(); std::string getConsensusFile(); bool isAnnotationDefined(); std::vector<std::string> getAnnotationFiles(); private : std::string sampleName; std::string inputBamFile; std::string integraseFile; std::string proteaseFile; std::string retrotranscriptaseFile; std::string referenceFile; std::string outputFile; std::string codonResultFile; std::string csFile; std::string inRunControlBam; std::string geneFile; int depthThreshold; int nbThread; int loggingLevel; double ratioThreshold; double pvalueThreshold; bool countStop; bool annotationIsOk; std::map<std::string, std::map<int, char> > referenceSequence; std::map<std::string, std::map< std::string , std::string> > genes; std::map<std::string, std::map< int , std::string> > referenceCodon; std::map<std::string, std::map< int , std::string> > protCodon; std::map<std::string, std::map<int , int> > refProtCorresp; std::map<std::string, std::map< std::string , std::string> > knownMutationTable; // method void displayGenome(); void displayGenes(); void displayCodons(); void displayData( std::string ); void displayReferenceCodons(); void writeCodonFile( std::string ); std::string isInGene( std::string , int ); bool detectStopInRead( bam1_t * , int32_t , std::string ); void writeConsensus(); std::string getChrFromProt( std::string ); bool isThereAControl(); std::string getAAfromCodon( std::string ); char getBase( int ); char getReferenceBase( std::string , int ); // map of codon std::map<std::string , std::string > codonTable; // control data std::map<std::string , std::map<int , std::map< std::string , int> > > controlData; // sample data std::map<std::string , std::map<int , std::map< std::string , int> > > sampleData; }; #endif