Made getPileupWithoutMappingQualityZeroReads() and getPileupWithoutDeletions() more efficient, per Mark's cue.

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2356 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
ebanks 2009-12-15 04:35:21 +00:00
parent 874552ff75
commit bf7bab754e
1 changed files with 6 additions and 12 deletions

View File

@ -130,16 +130,14 @@ public class ReadBackedPileup implements Iterable<PileupElement> {
*/
public ReadBackedPileup getPileupWithoutDeletions() {
if ( getNumberOfDeletions() > 0 ) {
List<SAMRecord> newReads = new ArrayList<SAMRecord>();
List<Integer> newOffsets = new ArrayList<Integer>();
ArrayList<PileupElement> filteredPileup = new ArrayList<PileupElement>();
for ( PileupElement p : pileup ) {
if ( !p.isDeletion() ) {
newReads.add(p.getRead());
newOffsets.add(p.getOffset());
filteredPileup.add(p);
}
}
return new ReadBackedPileup(loc, newReads, newOffsets);
return new ReadBackedPileup(loc, filteredPileup);
} else {
return this;
}
@ -153,19 +151,15 @@ public class ReadBackedPileup implements Iterable<PileupElement> {
* @return
*/
public ReadBackedPileup getPileupWithoutMappingQualityZeroReads() {
// todo -- eric, this can be more efficient, FYI
if ( getNumberOfMappingQualityZeroReads() > 0 ) {
List<SAMRecord> newReads = new ArrayList<SAMRecord>();
List<Integer> newOffsets = new ArrayList<Integer>();
ArrayList<PileupElement> filteredPileup = new ArrayList<PileupElement>();
for ( PileupElement p : pileup ) {
if ( p.getRead().getMappingQuality() > 0 ) {
newReads.add(p.getRead());
newOffsets.add(p.getOffset());
filteredPileup.add(p);
}
}
return new ReadBackedPileup(loc, newReads, newOffsets);
return new ReadBackedPileup(loc, filteredPileup);
} else {
return this;
}