示例#1
0
void ResetVcfRecordFromBam( VcfRecord & vcf_rec, RefStats & rstats, vector<RefSeq*> & REF_SEQ, string & chr, int center, SamFile & samIn, SamFileHeader & samHeader )
{
	vector<int> raw_counts; // read-type count vector
	raw_counts.resize(18, 0);
	setReadCountInSection( raw_counts, chr, center, samIn, samHeader, REF_SEQ ); // set from bam

// set gl & if 1/1 or 1/0, set breakpoint
	vector<MergeCell> new_vec;
	new_vec.resize(1);
	MergeCellPtr merge_ptr = new_vec.begin();
	merge_ptr->dups = 1;
	merge_ptr->counts = raw_counts;
	raw_counts.clear();
	merge_ptr->GL.resize(3,0);
	rstats.SetRecordGL( merge_ptr );

	vcf_rec.SetChrName( chr );
	vcf_rec.SetPosition( center );
	vcf_rec.UpdateFromMergeCellPtr( merge_ptr );
	
// if need to refine break point && exist MEI, do refine
	if (REFINE_BREAK_POINT && vcf_rec.GetDosage() > 0)
		vcf_rec.SetBreakPointAndCIFromBam( samIn, samHeader );
}