// Given a SMRT sequence and a subread interval, make the subread. // Input: // smrtRead - a SMRT sequence // subreadInterval - a subread interval // params - mapping parameters // Output: // subreadSequence - the constructed subread void MakeSubreadOfInterval(SMRTSequence & subreadSequence, SMRTSequence & smrtRead, ReadInterval & subreadInterval, MappingParameters & params) { int start = subreadInterval.start; int end = subreadInterval.end; assert(smrtRead.length >= subreadSequence.length); smrtRead.MakeSubreadAsMasked(subreadSequence, start, end); if (!params.preserveReadTitle) { smrtRead.SetSubreadTitle(subreadSequence, subreadSequence.SubreadStart(), subreadSequence.SubreadEnd()); } else { subreadSequence.CopyTitle(smrtRead.title); } subreadSequence.zmwData = smrtRead.zmwData; }