GATKSamRecords with efficiency NGSPlatform method
This commit is contained in:
parent
94e1898d8f
commit
ed74ebcfa1
|
|
@ -1,6 +1,7 @@
|
||||||
package org.broadinstitute.sting.utils.sam;
|
package org.broadinstitute.sting.utils.sam;
|
||||||
|
|
||||||
import net.sf.samtools.SAMReadGroupRecord;
|
import net.sf.samtools.SAMReadGroupRecord;
|
||||||
|
import org.broadinstitute.sting.utils.NGSPlatform;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ebanks
|
* @author ebanks
|
||||||
|
|
@ -15,16 +16,28 @@ public class GATKSAMReadGroupRecord extends SAMReadGroupRecord {
|
||||||
// the SAMReadGroupRecord data we're caching
|
// the SAMReadGroupRecord data we're caching
|
||||||
private String mSample = null;
|
private String mSample = null;
|
||||||
private String mPlatform = null;
|
private String mPlatform = null;
|
||||||
|
private NGSPlatform mNGSPlatform = null;
|
||||||
|
|
||||||
// because some values can be null, we don't want to duplicate effort
|
// because some values can be null, we don't want to duplicate effort
|
||||||
private boolean retrievedSample = false;
|
private boolean retrievedSample = false;
|
||||||
private boolean retrievedPlatform = false;
|
private boolean retrievedPlatform = false;
|
||||||
|
private boolean retrievedNGSPlatform = false;
|
||||||
|
|
||||||
|
public GATKSAMReadGroupRecord(final String id) {
|
||||||
|
super(id);
|
||||||
|
}
|
||||||
|
|
||||||
public GATKSAMReadGroupRecord(SAMReadGroupRecord record) {
|
public GATKSAMReadGroupRecord(SAMReadGroupRecord record) {
|
||||||
super(record.getReadGroupId(), record);
|
super(record.getReadGroupId(), record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GATKSAMReadGroupRecord(SAMReadGroupRecord record, NGSPlatform pl) {
|
||||||
|
super(record.getReadGroupId(), record);
|
||||||
|
setPlatform(pl.getDefaultPlatform());
|
||||||
|
mNGSPlatform = pl;
|
||||||
|
retrievedPlatform = retrievedNGSPlatform = true;
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// *** The following methods are overloaded to cache the appropriate data ***//
|
// *** The following methods are overloaded to cache the appropriate data ***//
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
@ -55,5 +68,15 @@ public class GATKSAMReadGroupRecord extends SAMReadGroupRecord {
|
||||||
super.setPlatform(s);
|
super.setPlatform(s);
|
||||||
mPlatform = s;
|
mPlatform = s;
|
||||||
retrievedPlatform = true;
|
retrievedPlatform = true;
|
||||||
|
retrievedNGSPlatform = false; // recalculate the NGSPlatform
|
||||||
|
}
|
||||||
|
|
||||||
|
public NGSPlatform getNGSPlatform() {
|
||||||
|
if ( ! retrievedNGSPlatform ) {
|
||||||
|
mNGSPlatform = NGSPlatform.fromReadGroupPL(getPlatform());
|
||||||
|
retrievedNGSPlatform = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mNGSPlatform;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package org.broadinstitute.sting.utils.sam;
|
package org.broadinstitute.sting.utils.sam;
|
||||||
|
|
||||||
import net.sf.samtools.*;
|
import net.sf.samtools.*;
|
||||||
|
import org.broadinstitute.sting.utils.NGSPlatform;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -25,7 +26,7 @@ import java.util.Map;
|
||||||
public class GATKSamRecord extends BAMRecord {
|
public class GATKSamRecord extends BAMRecord {
|
||||||
// the SAMRecord data we're caching
|
// the SAMRecord data we're caching
|
||||||
private String mReadString = null;
|
private String mReadString = null;
|
||||||
private SAMReadGroupRecord mReadGroup = null;
|
private GATKSAMReadGroupRecord mReadGroup = null;
|
||||||
|
|
||||||
// because some values can be null, we don't want to duplicate effort
|
// because some values can be null, we don't want to duplicate effort
|
||||||
private boolean retrievedReadGroup = false;
|
private boolean retrievedReadGroup = false;
|
||||||
|
|
@ -81,17 +82,22 @@ public class GATKSamRecord extends BAMRecord {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SAMReadGroupRecord getReadGroup() {
|
public GATKSAMReadGroupRecord getReadGroup() {
|
||||||
if ( !retrievedReadGroup ) {
|
if ( !retrievedReadGroup ) {
|
||||||
SAMReadGroupRecord tempReadGroup = super.getReadGroup();
|
SAMReadGroupRecord tempReadGroup = super.getReadGroup();
|
||||||
mReadGroup = (tempReadGroup == null ? tempReadGroup : new GATKSAMReadGroupRecord(tempReadGroup));
|
mReadGroup = (tempReadGroup == null ? null : new GATKSAMReadGroupRecord(tempReadGroup));
|
||||||
retrievedReadGroup = true;
|
retrievedReadGroup = true;
|
||||||
}
|
}
|
||||||
return mReadGroup;
|
return mReadGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setReadGroup(SAMReadGroupRecord record) {
|
public NGSPlatform getNGSPlatform() {
|
||||||
mReadGroup = record;
|
return getReadGroup().getNGSPlatform();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReadGroup( final GATKSAMReadGroupRecord readGroup ) {
|
||||||
|
mReadGroup = readGroup;
|
||||||
|
retrievedReadGroup = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue