Java源码示例:htsjdk.samtools.SAMRecordCoordinateComparator

示例1
/**
 * Constructor
 * @param out where records should eventually be sent
 */
public SmartSamWriter(SAMFileWriter out) {
  super(BUFFER_SIZE, new SAMRecordCoordinateComparator() {
    @Override
    public int compare(final SAMRecord samRecord1, final SAMRecord samRecord2) {
      final int cmp = super.compare(samRecord1, samRecord2);
      if (cmp != 0) {
        return cmp;
      }
      final SAMReadGroupRecord rg1 = samRecord1.getReadGroup();
      final SAMReadGroupRecord rg2 = samRecord2.getReadGroup();
      if (rg1 == rg2) {
        return 0;
      }
      return rg1 == null ? -1 : rg2 == null ? 1 : rg1.getReadGroupId().compareTo(rg2.getReadGroupId());
    }
  });
  mOut = out;
}
 
示例2
@DataProvider
private Object[][] forGetSamRecordComparator() {
    final List<Object[]> data = new ArrayList<>(2);
    data.add(new Object[]{SAMFileHeader.SortOrder.coordinate, SAMRecordCoordinateComparator.class});
    data.add(new Object[]{SAMFileHeader.SortOrder.queryname, SAMRecordQueryNameComparator.class});
    return data.toArray(new Object[data.size()][]);
}
 
示例3
public static SortingSAMRecordCollection newSortByCoordinateInstance(SAMRecord[] recordArray, SAMFileHeader header, int maxRecordsInRAM, String tempDir) {
	return new SortingSAMRecordCollection(recordArray, header, new SAMRecordCoordinateComparator(), maxRecordsInRAM, tempDir);
}