bool GffRecord::initFromFile(SingleLineDelimTextFileReader *fileReader) { setFileIdx(fileReader->getFileIdx()); fileReader->getField(0, _chrName); fileReader->getField(3, _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, _endPosStr); //endPos is just the startPos plus the length of the variant _endPos = str2chrPos(_endPosStr); fileReader->getField(2, _name); fileReader->getField(1, _source); fileReader->getField(5, _score); //GFF allows a '.' for the strandChar, signifying it is not known. fileReader->getField(6, _strand); adjustStrandVal(); fileReader->getField(7, _frame); _numFields = fileReader->getNumFields(); if (_numFields == 9) { fileReader->getField(8, _group); } return true; }
bool BedPlusInterval::initFromFile(SingleLineDelimTextFileReader *fileReader) { bool baseRetFlag = Bed3Interval::initFromFile(fileReader); if (_numFixedFields != defaultNumFixedFields) { fileReader->getField(3, _name); fileReader->getField(4, _score); fileReader->getField(5, _strand); adjustStrandVal(); } _plusFields.initFromFile(fileReader); return baseRetFlag; }