void InputStructures::Initialize(ExtendParameters ¶meters, const ReferenceReader& ref_reader, const SamHeader &bam_header) { DEBUG = parameters.program_flow.DEBUG; use_SSE_basecaller = parameters.program_flow.use_SSE_basecaller; resolve_clipped_bases = parameters.program_flow.resolve_clipped_bases; // must do this first to detect nFlows DetectFlowOrderzAndKeyFromBam(bam_header); // now get recalibration information, padded to account if nFlows for some bam is large do_recal.ReadRecalibrationFromComments(bam_header,nFlows-1); // protect against over-flowing nFlows, 0-based if (parameters.sseMotifsProvided) { cout << "Loading systematic error contexts." << endl; read_error_motifs(parameters.sseMotifsFileName); cout << "Loaded." << endl; } // Load homopolymer recalibration model from file if the option was specified // why is recal model using the command line directly? <-- Because the basecaller module is programmed that way. // initialize only if there's a model file if (parameters.recal_model_file_name.length()>0){ do_recal.recalModel.InitializeModel(parameters.recal_model_file_name, parameters.recalModelHPThres); do_recal.use_recal_model_only = true; do_recal.is_live = do_recal.recalModel.is_enabled(); } // finally turn off recalibration if not wanted // even though we have a nice set of recalibration read-in. if (parameters.program_flow.suppress_recalibration) { printf("Recalibration model: suppressed\n"); do_recal.recalModel.suppressEnabled(); do_recal.is_live = false; } }
void InputStructures::BringUpReferenceData(ExtendParameters ¶meters){ DEBUG = parameters.program_flow.DEBUG; min_map_qv = parameters.MQL0; cout << "Loading reference." << endl; read_fasta(parameters.fasta, reference_contigs); cout << "Loaded reference. Ref length: " << reference_contigs.size() << endl; bam_initialize(parameters.bams); if (parameters.sseMotifsProvided) { cout << "Loading systematic error contexts." << endl; read_error_motifs(parameters.sseMotifsFileName); cout << "Loaded." << endl; } }
void InputStructures::BringUpReferenceData(ExtendParameters ¶meters) { DEBUG = parameters.program_flow.DEBUG; min_map_qv = parameters.MQL0; use_SSE_basecaller = parameters.program_flow.use_SSE_basecaller; do_snp_realignment = parameters.program_flow.do_snp_realignment; cout << "Loading reference." << endl; read_fasta(parameters.fasta, reference_contigs); cout << "Loaded reference. Ref length: " << reference_contigs.size() << endl; // some recalibration information may be read from bam file header bam_initialize(parameters.bams); if (parameters.sseMotifsProvided) { cout << "Loading systematic error contexts." << endl; read_error_motifs(parameters.sseMotifsFileName); cout << "Loaded." << endl; } // Load homopolymer recalibration model // why is recal model using the command line directly? <-- Because the basecaller module is programmed that way. // initialize only if there's a model file if (parameters.recal_model_file_name.length()>0){ do_recal.recalModel.Initialize(parameters.opts); do_recal.use_recal_model_only = true; do_recal.is_live = true; } // finally turn off recalibration if not wanted // even although we have a nice set of recalibration read-in. if (parameters.program_flow.suppress_recalibration) { printf("Recalibration model: suppressed\n"); do_recal.recalModel.suppressEnabled(); do_recal.is_live = false; } }