org.broadinstitute.gatk.utils.sam.GATKSAMRecord.setReadBases()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(16.2k)|赞(0)|评价(0)|浏览(111)

本文整理了Java中org.broadinstitute.gatk.utils.sam.GATKSAMRecord.setReadBases()方法的一些代码示例,展示了GATKSAMRecord.setReadBases()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。GATKSAMRecord.setReadBases()方法的具体详情如下:
包路径:org.broadinstitute.gatk.utils.sam.GATKSAMRecord
类名称:GATKSAMRecord
方法名:setReadBases

GATKSAMRecord.setReadBases介绍

暂无

代码示例

代码示例来源:origin: broadgsa/gatk

@BeforeClass
public void init() {
  SAMFileHeader header = ArtificialSAMUtils.createArtificialSamHeader(1, 1, 1000);
  read = ArtificialSAMUtils.createArtificialRead(header, "read1", 0, 1, BASES.length());
  read.setReadUnmappedFlag(true);
  read.setReadBases(new String(BASES).getBytes());
  read.setBaseQualityString(new String(QUALS));
}

代码示例来源:origin: broadgsa/gatk

@DataProvider(name = "IndelLengthAndBasesTest")
public Object[][] makeIndelLengthAndBasesTest() {
  final String EVENT_BASES = "ACGTACGTACGT";
  final List<Object[]> tests = new LinkedList<Object[]>();
  for ( int eventSize = 1; eventSize < 10; eventSize++ ) {
    for ( final CigarOperator indel : Arrays.asList(CigarOperator.D, CigarOperator.I) ) {
      final String cigar = String.format("2M%d%s1M", eventSize, indel.toString());
      final String eventBases = indel == CigarOperator.D ? "" : EVENT_BASES.substring(0, eventSize);
      final int readLength = 3 + eventBases.length();
      GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read", 0, 1, readLength);
      read.setReadBases(("TT" + eventBases + "A").getBytes());
      final byte[] quals = new byte[readLength];
      for ( int i = 0; i < readLength; i++ )
        quals[i] = (byte)(i % QualityUtils.MAX_SAM_QUAL_SCORE);
      read.setBaseQualities(quals);
      read.setCigarString(cigar);
      tests.add(new Object[]{read, indel, eventSize, eventBases.equals("") ? null : eventBases});
    }
  }
  return tests.toArray(new Object[][]{});
}

代码示例来源:origin: broadgsa/gatk

public static GATKSAMRecord combineDuplicates(GenomeLocParser genomeLocParser,List<GATKSAMRecord> duplicates, int maxQScore) {
  if ( duplicates.size() == 0 )
    return null;
  // make the combined read by copying the first read and setting the
  // bases and quals to new arrays
  GATKSAMRecord comb = tmpCopyRead(duplicates.get(0));
  //GATKSAMRecord comb = tmpCopyRead(duplicates.get(0));
  comb.setDuplicateReadFlag(false);
  int readLen = comb.getReadBases().length;
  byte[] bases = new byte[readLen];
  byte[] quals = new byte[readLen];
  for ( int i = 0; i < readLen; i++ ) {
    //System.out.printf("I is %d%n", i);
    //for ( GATKSAMRecord read : duplicates ) {
    //    System.out.printf("dup base %c %d%n", (char)read.getReadBases()[i], read.getBaseQualities()[i]);
    //}
    Pair<Byte, Byte> baseAndQual = combineBaseProbs(genomeLocParser,duplicates, i, maxQScore);
    bases[i] = baseAndQual.getFirst();
    quals[i] = baseAndQual.getSecond();            
  }
  comb.setBaseQualities(quals);
  comb.setReadBases(bases);
  return comb;
}

代码示例来源:origin: broadgsa/gatk

@DataProvider(name = "PrevAndNextTest")
public Object[][] makePrevAndNextTest() {
  final List<Object[]> tests = new LinkedList<Object[]>();
  final List<CigarOperator> operators = Arrays.asList(CigarOperator.I, CigarOperator.P, CigarOperator.S);
  for ( final CigarOperator firstOp : Arrays.asList(CigarOperator.M) ) {
    for ( final CigarOperator lastOp : Arrays.asList(CigarOperator.M, CigarOperator.D) ) {
      for ( final int nIntermediate : Arrays.asList(1, 2, 3) ) {
        for ( final List<CigarOperator> combination : Utils.makePermutations(operators, nIntermediate, false) ) {
          final int readLength = 2 + combination.size();
          GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read", 0, 1, readLength);
          read.setReadBases(Utils.dupBytes((byte) 'A', readLength));
          read.setBaseQualities(Utils.dupBytes((byte) 30, readLength));
          String cigar = "1" + firstOp;
          for ( final CigarOperator op : combination ) cigar += "1" + op;
          cigar += "1" + lastOp;
          read.setCigarString(cigar);
          tests.add(new Object[]{read, firstOp, lastOp, combination});
        }
      }
    }
  }
  return tests.toArray(new Object[][]{});
}

代码示例来源:origin: broadgsa/gatk

@Test(enabled = !DEBUG, dataProvider = "SoftClipsDataProvider")
public void testSoftClipsData(final byte[] qualsOfSoftClipsOnLeft, final int middleSize, final String middleOp, final byte[] qualOfSoftClipsOnRight, final int qualThreshold, final int numExpected) {
  final int readLength = (middleOp.equals("D") ? 0 : middleSize) + qualOfSoftClipsOnRight.length + qualsOfSoftClipsOnLeft.length;
  final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "myRead", 0, 1, readLength);
  final byte[] bases = Utils.dupBytes((byte) 'A', readLength);
  final byte[] matchBytes = middleOp.equals("D") ? new byte[]{} : Utils.dupBytes((byte)30, middleSize);
  final byte[] quals = ArrayUtils.addAll(ArrayUtils.addAll(qualsOfSoftClipsOnLeft, matchBytes), qualOfSoftClipsOnRight);
  // set the read's bases and quals
  read.setReadBases(bases);
  read.setBaseQualities(quals);
  final StringBuilder cigar = new StringBuilder();
  if (qualsOfSoftClipsOnLeft.length > 0 ) cigar.append(qualsOfSoftClipsOnLeft.length + "S");
  if (middleSize > 0 ) cigar.append(middleSize + middleOp);
  if (qualOfSoftClipsOnRight.length > 0 ) cigar.append(qualOfSoftClipsOnRight.length + "S");
  read.setCigarString(cigar.toString());
  final int actual = AlignmentUtils.calcNumHighQualitySoftClips(read, (byte) qualThreshold);
  Assert.assertEquals(actual, numExpected, "Wrong number of soft clips detected for read " + read.getSAMString());
}

代码示例来源:origin: broadgsa/gatk

read.setReadBases(originalBases);

代码示例来源:origin: broadgsa/gatk

/**
 * Create an artificial read based on the parameters.  The cigar string will be *M, where * is the length of the read
 *
 * @param header         the SAM header to associate the read with
 * @param name           the name of the read
 * @param refIndex       the reference index, i.e. what chromosome to associate it with
 * @param alignmentStart where to start the alignment
 * @param bases          the sequence of the read
 * @param qual           the qualities of the read
 * @return the artificial read
 */
public static GATKSAMRecord createArtificialRead(SAMFileHeader header, String name, int refIndex, int alignmentStart, byte[] bases, byte[] qual) {
  if (bases.length != qual.length) {
    throw new ReviewedGATKException("Passed in read string is different length then the quality array");
  }
  GATKSAMRecord rec = createArtificialRead(header, name, refIndex, alignmentStart, bases.length);
  rec.setReadBases(bases);
  rec.setBaseQualities(qual);
  rec.setReadGroup(new GATKSAMReadGroupRecord("x"));
  if (refIndex == -1) {
    rec.setReadUnmappedFlag(true);
  }
  return rec;
}

代码示例来源:origin: broadgsa/gatk

@Test (enabled = true)
public void testReadWithNsRefIndexInDeletion() throws FileNotFoundException {
  final ReferenceSequenceFile seq = new CachingIndexedFastaSequenceFile(new File(b37KGReference));
  final SAMFileHeader header = ArtificialSAMUtils.createArtificialSamHeader(seq.getSequenceDictionary());
  final int readLength = 76;
  final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "myRead", 0, 8975, readLength);
  read.setReadBases(Utils.dupBytes((byte) 'A', readLength));
  read.setBaseQualities(Utils.dupBytes((byte)30, readLength));
  read.setCigarString("3M414N1D73M");
  final int result = ReadUtils.getReadCoordinateForReferenceCoordinateUpToEndOfRead(read, 9392, ReadUtils.ClippingTail.LEFT_TAIL);
  Assert.assertEquals(result, 2);
}

代码示例来源:origin: broadgsa/gatk

@Test (enabled = true)
public void testReadWithNsRefAfterDeletion() throws FileNotFoundException {
  final ReferenceSequenceFile seq = new CachingIndexedFastaSequenceFile(new File(b37KGReference));
  final SAMFileHeader header = ArtificialSAMUtils.createArtificialSamHeader(seq.getSequenceDictionary());
  final int readLength = 76;
  final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "myRead", 0, 8975, readLength);
  read.setReadBases(Utils.dupBytes((byte) 'A', readLength));
  read.setBaseQualities(Utils.dupBytes((byte)30, readLength));
  read.setCigarString("3M414N1D73M");
  final int result = ReadUtils.getReadCoordinateForReferenceCoordinateUpToEndOfRead(read, 9393, ReadUtils.ClippingTail.LEFT_TAIL);
  Assert.assertEquals(result, 3);
}

代码示例来源:origin: broadgsa/gatk-protected

private GATKSAMRecord makeRead(final String baseString) {
  final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "myRead", 0, 1, 10);
  final byte[] bases = baseString.getBytes();
  read.setReadBases(bases.clone());
  read.setBaseQualities(Utils.dupBytes((byte)30, read.getReadLength()));
  return read;
}

代码示例来源:origin: broadgsa/gatk

public GATKSAMRecord makeRead() {
    GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read", 0, locus, readLength);
    read.setReadBases(Utils.dupBytes((byte) 'A', readLength));
    final byte[] quals = new byte[readLength];
    for ( int i = 0; i < readLength; i++ )
      quals[i] = (byte)(i % QualityUtils.MAX_SAM_QUAL_SCORE);
    read.setBaseQualities(quals);
    read.setCigarString(cigarString);
    return read;
  }
}

代码示例来源:origin: broadgsa/gatk

private GATKSAMRecord makeOverlappingRead(final String leftFlank, final int leftQual, final String overlapBases,
                     final byte[] overlapQuals, final String rightFlank, final int rightQual,
                     final int alignmentStart) {
  final String bases = leftFlank + overlapBases + rightFlank;
  final int readLength = bases.length();
  final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "myRead", 0, alignmentStart, readLength);
  final byte[] leftQuals = Utils.dupBytes((byte) leftQual, leftFlank.length());
  final byte[] rightQuals = Utils.dupBytes((byte) rightQual, rightFlank.length());
  final byte[] quals = Utils.concat(leftQuals, overlapQuals, rightQuals);
  read.setCigarString(readLength + "M");
  read.setReadBases(bases.getBytes());
  for ( final EventType type : EventType.values() )
    read.setBaseQualities(quals, type);
  read.setReadGroup(rgForMerged);
  read.setMappingQuality(60);
  return read;
}

代码示例来源:origin: broadgsa/gatk

@Test
  public void testRBPMappingQuals() {

    // create a read with high MQ
    final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read", 0, 1, 10);
    read.setReadBases(Utils.dupBytes((byte) 'A', 10));
    read.setBaseQualities(Utils.dupBytes((byte) 30, 10));
    read.setCigarString("10M");
    read.setMappingQuality(200); // set a MQ higher than max signed byte

    // now create the RBP
    final List<PileupElement> elts = new LinkedList<>();
    elts.add(new PileupElement(read, 0, read.getCigar().getCigarElement(0), 0, 0));
    final Map<String, ReadBackedPileupImpl> pileupsBySample = new HashMap<>();
    pileupsBySample.put("foo", new ReadBackedPileupImpl(loc, elts));
    final ReadBackedPileup pileup = new ReadBackedPileupImpl(loc, pileupsBySample);

    Assert.assertEquals(pileup.getMappingQuals()[0], 200);
  }
}

代码示例来源:origin: broadgsa/gatk

@Test(enabled = false && ! DEBUG)
public void testWholeIndelReadInIsolation() {
  final int firstLocus = 44367789;
  GATKSAMRecord indelOnlyRead = ArtificialSAMUtils.createArtificialRead(header, "indelOnly", 0, firstLocus, 76);
  indelOnlyRead.setReadBases(Utils.dupBytes((byte)'A',76));
  indelOnlyRead.setBaseQualities(Utils.dupBytes((byte) '@', 76));
  indelOnlyRead.setCigarString("76I");
  List<GATKSAMRecord> reads = Arrays.asList(indelOnlyRead);
  // create the iterator by state with the fake reads and fake records
  li = makeLTBS(reads);
  // Traditionally, reads that end with indels bleed into the pileup at the following locus.  Verify that the next pileup contains this read
  // and considers it to be an indel-containing read.
  Assert.assertTrue(li.hasNext(),"Should have found a whole-indel read in the normal base pileup without extended events enabled");
  AlignmentContext alignmentContext = li.next();
  Assert.assertEquals(alignmentContext.getLocation().getStart(), firstLocus, "Base pileup is at incorrect location.");
  ReadBackedPileup basePileup = alignmentContext.getBasePileup();
  Assert.assertEquals(basePileup.getReads().size(),1,"Pileup is of incorrect size");
  Assert.assertSame(basePileup.getReads().get(0), indelOnlyRead, "Read in pileup is incorrect");
}

代码示例来源:origin: broadgsa/gatk

private List<PileupElement> makeReads( final int n, final int mapq, final String op ) {
  final int readLength = 3;
  final List<PileupElement> elts = new LinkedList<PileupElement>();
  for ( int i = 0; i < n; i++ ) {
    GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read", 0, 1, readLength);
    read.setReadBases(Utils.dupBytes((byte) 'A', readLength));
    read.setBaseQualities(Utils.dupBytes((byte) 30, readLength));
    read.setCigarString("1M1" + op + "1M");
    read.setMappingQuality(mapq);
    final int baseOffset = op.equals("M") ? 1 : 0;
    final CigarElement cigarElement = read.getCigar().getCigarElement(1);
    elts.add(new PileupElement(read, baseOffset, cigarElement, 1, 0));
  }
  return elts;
}

代码示例来源:origin: broadgsa/gatk

@Override protected void setUp() {
  header = ArtificialSAMUtils.createArtificialSamHeader(1, 1, 1000);
  genomeLocParser = new GenomeLocParser(header.getSequenceDictionary());
  for ( int j = 0; j < nReads; j++ ) {
    GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read", 0, locus, readLength);
    read.setReadBases(Utils.dupBytes((byte) 'A', readLength));
    final byte[] quals = new byte[readLength];
    for ( int i = 0; i < readLength; i++ )
      quals[i] = (byte)(i % QualityUtils.MAX_SAM_QUAL_SCORE);
    read.setBaseQualities(quals);
    read.setCigarString(cigar);
    reads.add(read);
  }
}

代码示例来源:origin: broadgsa/gatk

@Override
public void recordValues(final GATKSAMRecord read, final ReadCovariates values) {
  // store the original bases and then write Ns over low quality ones
  final byte[] originalBases = read.getReadBases().clone();
  final boolean negativeStrand = read.getReadNegativeStrandFlag();
  byte[] bases = read.getReadBases();
  if (negativeStrand)
    bases = BaseUtils.simpleReverseComplement(bases);
  // don't record reads with N's
  if (!BaseUtils.isAllRegularBases(bases))
    return;
  for (int i = 0; i < bases.length; i++) {
    final Pair<byte[], Integer> res = findTandemRepeatUnits(bases, i);
    // to merge repeat unit and repeat length to get covariate value:
    final String repeatID =  getCovariateValueFromUnitAndLength(res.first,  res.second);
    final int key = keyForRepeat(repeatID);
    final int readOffset = (negativeStrand ? bases.length - i - 1 : i);
    values.addCovariate(key, key, key, readOffset);
  }
  // put the original bases back in
  read.setReadBases(originalBases);
}

代码示例来源:origin: broadgsa/gatk-protected

/**
 * Write out a representation of this haplotype as a read
 *
 * @param haplotype a haplotype to write out.  Cannot be null
 * @param paddedRefLoc the reference location.  Cannot be null
 * @param isAmongBestHaplotypes true if among the best haplotypes, false if it was just one possible but not so good
 */
private void writeHaplotype(final Haplotype haplotype,
              final GenomeLoc paddedRefLoc,
              final boolean isAmongBestHaplotypes) {
  final GATKSAMRecord record = new GATKSAMRecord(output.getHeader());
  record.setReadBases(haplotype.getBases());
  record.setAlignmentStart(paddedRefLoc.getStart() + haplotype.getAlignmentStartHapwrtRef());
  record.setBaseQualities(Utils.dupBytes((byte) '!', haplotype.getBases().length));
  record.setCigar(AlignmentUtils.consolidateCigar(haplotype.getCigar()));
  record.setMappingQuality(isAmongBestHaplotypes ? 60 : 0);
  record.setReadName("HC" + uniqueNameCounter++);
  record.setAttribute(AlignmentUtils.HAPLOTYPE_TAG,haplotype.hashCode());
  record.setReadUnmappedFlag(false);
  record.setReferenceIndex(paddedRefLoc.getContigIndex());
  record.setAttribute(SAMTag.RG.toString(), READ_GROUP_ID);
  record.setFlags(16);
  output.add(record);
}

代码示例来源:origin: broadgsa/gatk

/**
 * Build a SAM record featuring the absolute minimum required dataset.
 *
 * @param contig         Contig to populate.
 * @param alignmentStart start of alignment
 * @param alignmentEnd   end of alignment
 *
 * @return New SAM Record
 */
protected GATKSAMRecord buildSAMRecord(String readName, String contig, int alignmentStart, int alignmentEnd) {
  SAMFileHeader header = new SAMFileHeader();
  header.setSequenceDictionary(sequenceSourceFile.getSequenceDictionary());
  GATKSAMRecord record = new GATKSAMRecord(header);
  record.setReadName(readName);
  record.setReferenceIndex(sequenceSourceFile.getSequenceDictionary().getSequenceIndex(contig));
  record.setAlignmentStart(alignmentStart);
  Cigar cigar = new Cigar();
  int len = alignmentEnd - alignmentStart + 1;
  cigar.add(new CigarElement(len, CigarOperator.M));
  record.setCigar(cigar);
  record.setReadBases(new byte[len]);
  record.setBaseQualities(new byte[len]);
  return record;
}

代码示例来源:origin: broadgsa/gatk

private GATKSAMRecord createReadOffContig(final SAMFileHeader header, final boolean negStrand, final int pre, final int post) {
  final int contigLen = header.getSequence(0).getSequenceLength();
  final int readLen = pre + contigLen + post;
  final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read1", 0, 1, readLen);
  read.setAlignmentStart(1);
  read.setCigar(TextCigarCodec.decode(pre + "S" + contigLen + "M" + post + "S"));
  read.setBaseQualities(Utils.dupBytes((byte) 30, readLen));
  read.setReadBases(Utils.dupBytes((byte)'A', readLen));
  read.setMappingQuality(60);
  read.setMateAlignmentStart(1);
  read.setProperPairFlag(true);
  read.setReadPairedFlag(true);
  read.setInferredInsertSize(30);
  read.setReadNegativeStrandFlag(negStrand);
  read.setMateNegativeStrandFlag(! negStrand);
  read.setReadGroup(new GATKSAMReadGroupRecord("foo"));
  return read;
}

相关文章

微信公众号

最新文章

更多

GATKSAMRecord类方法