@Override public String toString() { return "GATKSAMReadGroupRecord @RG:" + getReadGroupId(); }
/** * Gets a list of the read groups represented in this pileup. * * @return */ @Override public Collection<String> getReadGroups() { Set<String> readGroups = new HashSet<String>(); for (PileupElement pileupElement : this) readGroups.add(pileupElement.getRead().getReadGroup().getReadGroupId()); return readGroups; }
@Override public ReadBackedPileupImpl getPileupForLane(String laneID) { if (pileupElementTracker instanceof PerSamplePileupElementTracker) { PerSamplePileupElementTracker<PileupElement> tracker = (PerSamplePileupElementTracker<PileupElement>) pileupElementTracker; PerSamplePileupElementTracker<PileupElement> filteredTracker = new PerSamplePileupElementTracker<PileupElement>(); for (final String sample : tracker.getSamples()) { PileupElementTracker<PileupElement> perSampleElements = tracker.getElements(sample); ReadBackedPileupImpl pileup = createNewPileup(loc, perSampleElements).getPileupForLane(laneID); if (pileup != null) filteredTracker.addElements(sample, pileup.pileupElementTracker); } return filteredTracker.size() > 0 ? createNewPileup(loc, filteredTracker) : null; } else { UnifiedPileupElementTracker<PileupElement> filteredTracker = new UnifiedPileupElementTracker<PileupElement>(); for (PileupElement p : pileupElementTracker) { GATKSAMRecord read = p.getRead(); if (laneID != null) { if (read.getReadGroup() != null && (read.getReadGroup().getReadGroupId().startsWith(laneID + ".")) || // lane is the same, but sample identifier is different (read.getReadGroup().getReadGroupId().equals(laneID))) // in case there is no sample identifier, they have to be exactly the same filteredTracker.add(p); } else { if (read.getReadGroup() == null || read.getReadGroup().getReadGroupId() == null) filteredTracker.add(p); } } return filteredTracker.size() > 0 ? createNewPileup(loc, filteredTracker) : null; } }
GATKSAMRecord read = p.getRead(); if (rgSet != null && !rgSet.isEmpty()) { if (read.getReadGroup() != null && rgSet.contains(read.getReadGroup().getReadGroupId())) filteredTracker.add(p); } else { if (read.getReadGroup() == null || read.getReadGroup().getReadGroupId() == null) filteredTracker.add(p);
GATKSAMRecord read = p.getRead(); if (targetReadGroupId != null) { if (read.getReadGroup() != null && targetReadGroupId.equals(read.getReadGroup().getReadGroupId())) filteredTracker.add(p); } else { if (read.getReadGroup() == null || read.getReadGroup().getReadGroupId() == null) filteredTracker.add(p);
public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { for ( final PileupElement p : context.getBasePileup() ) { final GATKSAMRecord read = p.getRead(); final int offset = p.getOffset(); final boolean firstOfPair = ! read.getReadPairedFlag() || read.getFirstOfPairFlag(); if ( firstOfPair && read.getMappingQuality() >= MIN_MAPPING_QUAL && p.getQual() >= MIN_BASE_QUAL ) { final byte readBase = p.getBase(); final byte refBase = ref.getBase(); final int cycle = offset; if ( BaseUtils.isRegularBase(readBase) && BaseUtils.isRegularBase(refBase) ) { final TableKey key = new TableKey(read.getReadGroup().getReadGroupId(), cycle); if ( ! table.containsRowID(key) ) { table.set(key, "cycle", cycle); table.set(key, "readgroup", read.getReadGroup().getReadGroupId()); table.set(key, "counts", 0); table.set(key, "mismatches", 0); } table.increment(key, "counts"); if (readBase != refBase) table.increment(key, "mismatches"); } } } return null; }