package org.genedb.crawl.model; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import net.sf.samtools.AlignmentBlock; import net.sf.samtools.CigarElement; import net.sf.samtools.SAMRecord; /** * * This class has been deprecated for now, in favour of the MappedQueryRecordElementList approach, * however it has not been deleted because it may yet be used as the basis for some other queries. * * @author gv1 * */ @Deprecated public class MappedSAMRecord { private Logger logger = Logger.getLogger(MappedSAMRecord.class); public int alignmentStart; public int alignmentEnd; public int mappingQuality; public String baseQualities; public String readBases; public String readName; public int readLength; public MappedFlags flags; public List<MappedCigarElement> cigars = new ArrayList<MappedCigarElement>(); public List<MappedAlignmentBlock> alignmentBlocks = new ArrayList<MappedAlignmentBlock>(); public MappedSAMRecord() {}; public MappedSAMRecord(SAMRecord record) { alignmentStart = record.getAlignmentStart(); alignmentEnd = record.getAlignmentEnd(); mappingQuality = record.getMappingQuality(); readName = record.getReadName(); readLength = record.getReadLength(); baseQualities = record.getBaseQualityString(); readBases = record.getReadString(); flags = new MappedFlags(record); for (CigarElement ce : record.getCigar().getCigarElements()) { MappedCigarElement mce = new MappedCigarElement(); mce.length = ce.getLength(); mce.operator = ce.getOperator().toString(); cigars.add(mce); } for (AlignmentBlock ab : record.getAlignmentBlocks()) { MappedAlignmentBlock mab = new MappedAlignmentBlock(); mab.readStart = ab.getReadStart(); mab.referenceStart = ab.getReferenceStart(); mab.length = ab.getLength(); alignmentBlocks.add(mab); } logger.debug("Added " + readName); } public String toString() { return readName; } } class MappedFlags { public boolean readPairedFlag; public boolean properPairFlag; public boolean readUnmappedFlag; public boolean mateUnmappedFlag; public boolean readNegativeStrandFlag; public boolean mateNegativeStrandFlag; public boolean firstOfPairFlag; public boolean secondOfPairFlag; public boolean notPrimaryAlignmentFlag; public boolean readFailsVendorQualityCheckFlag; public boolean duplicateReadFlag; public MappedFlags() {} public MappedFlags(SAMRecord record) { readPairedFlag = record.getReadPairedFlag(); properPairFlag = record.getProperPairFlag(); readUnmappedFlag = record.getReadUnmappedFlag(); mateUnmappedFlag = record.getMateUnmappedFlag(); readNegativeStrandFlag = record.getReadNegativeStrandFlag(); mateNegativeStrandFlag = record.getMateNegativeStrandFlag(); firstOfPairFlag = record.getFirstOfPairFlag(); secondOfPairFlag = record.getSecondOfPairFlag(); notPrimaryAlignmentFlag = record.getNotPrimaryAlignmentFlag(); readFailsVendorQualityCheckFlag = record.getReadFailsVendorQualityCheckFlag(); duplicateReadFlag = record.getDuplicateReadFlag(); } } class MappedCigarElement { public int length; public String operator; } class MappedAlignmentBlock { public int readStart; public int referenceStart; public int length; }