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);
}