#ifndef ALEVIN_OPTS_HPP #define ALEVIN_OPTS_HPP #include #include "spdlog/spdlog.h" #include /** * A structure to hold some common options used * by Salmon so that we don't have to pass them * all around as separate arguments. */ enum class BarcodeEnd { FIVE = 5, THREE = 3 }; enum class Sequence { BARCODE, UMI }; template struct AlevinOpts { AlevinOpts(): numParsingThreads(1), numConsumerThreads(2), freqThreshold(10), initUniform{false}{} //IUPAC code for the cell-barcodes std::string iupac; //protocol to use for single cell protocolT protocol; //Dump soft-mapping of corrected barcodes bool dumpBarcodeMap; //umi_tools supported whitelist bool dumpUmiToolsMap; //dump barcodes fq files bool dumpfq; //dump CB features for whitelisting bool dumpfeatures; //flag for using barcoding or just single cell dedup bool nobarcode; //eqclass level barcode count bool dumpBarcodeEq; //dump cellvtxp matrix in csv bool dumpCsvCounts; // dump big fishing hash bool dumpBFH; // dump per cell level umi-graph bool dumpUmiGraph; //Stop progress sumps bool quiet; //flag for deduplication bool noDedup; //Number of generator threads uint32_t numParsingThreads; //Number of consumer threads uint32_t numConsumerThreads; //total num of threads uint32_t numThreads; //threshold for the frequency of the barcodes uint32_t freqThreshold; // sequences to trim from right in the read sequences uint32_t trimRight; //no downstream salmon quant bool noQuant; // use correlation for white-listing bool useCorrelation; // don't run EM flag bool noEM; // Avoid segfaults based on no whitelist mapping bool debug; // perform naive deduplication bool naiveEqclass; // perform eqclass level analysis instead of gene or txp level minsets bool eqClassLevel; // perform txp level analysis instead of gene level bool txpLevel; //do hard-assignment of error bcs bool noSoftMap; // initialize EM with uniform prior bool initUniform; //number of cells uint32_t numCells; // minimum number of CB to use for low confidence region uint32_t lowRegionMinNumBarcodes; // maximum number of barcodes to use uint32_t maxNumBarcodes; // number of bootstraps to perform uint32_t numBootstraps; // force the number of cells uint32_t forceCells; // define a close upper bound on expected number of cells uint32_t expectCells; // Related to the logger std::shared_ptr jointLog{nullptr}; // barcode output directory boost::filesystem::path outputDirectory; // barcode white-list File path boost::filesystem::path whitelistFile; // barcode mitochondrial genes File path boost::filesystem::path mRnaFile; // barcode ribosomal gene File path boost::filesystem::path rRnaFile; // Txp to gene map tsv file boost::filesystem::path geneMapFile; // Bfh file boost::filesystem::path bfhFile; //meta-info related tags uint32_t totalReads; uint32_t totalUsedReads; uint32_t readsThrown; uint32_t totalCBs; uint32_t totalUsedCBs; uint32_t kneeCutoff; uint32_t intelligentCutoff; uint32_t totalLowConfidenceCBs; uint32_t numFeatures; uint32_t noisyUmis; double mappingRate; double keepCBFraction; uint32_t eqReads; uint32_t totalDedupUMIs; uint32_t totalExpGenes; }; #endif // ALEVIN_OPTS_HPP