コード例 #1
0
ファイル: VcfRecord.cpp プロジェクト: Yixf-Self/bedtools2
bool VcfRecord::initFromFile(SingleLineDelimTextFileReader *fileReader)
{
	setFileIdx(fileReader->getFileIdx());
	fileReader->getField(0, _chrName);
	_chrId = fileReader->getCurrChromdId();
	fileReader->getField(1, _startPosStr);
	_startPos = str2chrPos(_startPosStr);
	_startPos--; // VCF is one-based. Here we intentionally don't decrement the string version,
	//because we'll still want to output the one-based number in the print methods, even though
	//internally we decrement the integer to comply with the 0-based format common to other records.
	fileReader->getField(4, _varAlt);
	fileReader->getField(3, _varRef);
	if (_varAlt[0] == '<') {
		//this is a structural variant. Need to parse the tags to find the endpos.
		_endPos = _startPos + fileReader->getVcfSVlen();
	} else {
		//endPos is just the startPos plus the length of the variant
		_endPos = _startPos + _varRef.size();
	}
	int2str(_endPos, _endPosStr);
	fileReader->getField(2, _name);
	fileReader->getField(5, _score);

	return initOtherFieldsFromFile(fileReader);
}
コード例 #2
0
ファイル: BedPlusInterval.cpp プロジェクト: ml4wc/bedtools2
bool BedPlusInterval::initFromFile(SingleLineDelimTextFileReader *fileReader)
{
	return (Bed6Interval::initFromFile(fileReader) && initOtherFieldsFromFile(fileReader));
}