Package net.sf.samtools

Examples of net.sf.samtools.SAMFileWriter


//    printRegionHeader();
   
    SAMFileReader reader = new SAMFileReader(new File(inputSam));
    reader.setValidationStringency(ValidationStringency.SILENT);

    SAMFileWriter output = new SAMFileWriterFactory().makeSAMOrBAMWriter(
        reader.getFileHeader(), true, new File(outputSam));

    int cnt = 0;
   
    for (SAMRecord read : reader) {
      if (!inRegion(read)) {
        output.addAlignment(read);
      }
     
      cnt++;
      if ((cnt % 1000000) == 0) {
        System.out.println(cnt);
      }
    }
   
    reader.close();
    output.close();
  }
View Full Code Here


  //TODO: Move to utils package
  public void fix(String input, String output, String reference) throws IOException {
    SAMFileReader reader = new SAMFileReader(new File(input));
    reader.setValidationStringency(ValidationStringency.SILENT);
   
    SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(
        reader.getFileHeader(), true, new File(output));
   
    CompareToReference c2r = new CompareToReference();
    c2r.init(reference);
   
    int i=0;
   
    for (SAMRecord read : reader) {
      int numMismatches = c2r.numMismatches(read);
      int numIndelBases = getNumIndelBases(read);
      int editDistance = numMismatches + numIndelBases;
     
      read.setAttribute("NM", editDistance);
     
      writer.addAlignment(read);
     
      if ((i % 1000000) == 0) {
        System.out.println("Processed: " + i + " reads.");
      }
      i++;
    }
   
    writer.close();
    reader.close();
   
    System.out.println("Done.");
  }
View Full Code Here

    SAMFileWriterFactory writerFactory = new SAMFileWriterFactory();
   
    SAMFileReader reader = new SAMFileReader(new File(input));
    reader.setValidationStringency(ValidationStringency.SILENT);
   
    SAMFileWriter writer = writerFactory.makeSAMOrBAMWriter(
        reader.getFileHeader(), false, new File(output));
   
    for (SAMRecord read : reader) {
      writer.addAlignment(read);
    }
   
    reader.close();
    writer.close();
  }
View Full Code Here

 
  private void discardMisalignedContigs(String inputSam, String outputSam) {
    SAMFileReader reader = new SAMFileReader(new File(inputSam));
    reader.setValidationStringency(ValidationStringency.SILENT);
   
    SAMFileWriter outputReadsBam = new SAMFileWriterFactory().makeSAMOrBAMWriter(
        samHeaders[0], true, new File(outputSam));

    for (SAMRecord contig : reader) {
      String[] fields = contig.getReadName().split("_");
     
      String regionChromosome = "";
     
      // Loop through fields in case the chromosome name contains
      // an underscore.
      for (int i=0; i<fields.length-3; i++) {
        regionChromosome += fields[i];
        if (i+1 < fields.length-3) {
          regionChromosome += "_";
        }
      }
     
      int regionStart = Integer.parseInt(fields[fields.length-3]) - 1000;
      int regionStop = Integer.parseInt(fields[fields.length-2]) + 1000;
           
      if ((contig.getReferenceName().equals(regionChromosome)) &&
        (contig.getAlignmentStart() >= regionStart) &&
        (contig.getAlignmentEnd() <= regionStop)) {
     
//        // Remove XP tags and other attributes, the semi-colons interfere with downstream processing
//        contig.clearAttributes();
//        contig.setAttribute("XP", null);
       
        outputReadsBam.addAlignment(contig);
      } else {
        System.out.println("Discarding: " + contig);
      }
    }
   
    outputReadsBam.close();
    reader.close();
  }
View Full Code Here

    System.out.println("keepProbability: " + keepProbability);
   
    SAMFileReader reader = new SAMFileReader(new File(sam));
    reader.setValidationStringency(ValidationStringency.SILENT);
   
    SAMFileWriter downsampleOutput = new SAMFileWriterFactory().makeSAMOrBAMWriter(
        samHeaders[0], true, new File(downsampledSam));

    Random random = new Random(RANDOM_SEED);
    int downsampleCount = 0;
   
    for (SAMRecord read : reader) {
      if (random.nextDouble() < keepProbability) {
        downsampleOutput.addAlignment(read);
        downsampleCount += 1;
      }
    }
   
    downsampleOutput.close();
    reader.close();
   
    System.out.println("Downsampled to: " + downsampleCount);
  }
View Full Code Here

    reader.close();
    header.setSortOrder(SortOrder.unsorted);
   
    SAMFileWriterFactory writerFactory = new SAMFileWriterFactory();
    writerFactory.setUseAsyncIo(false);
    SAMFileWriter writer = writerFactory.makeSAMOrBAMWriter(
        header, false, new File("/home/lmose/dev/abra/1076/test.bam"));

   
    BetaPairValidatingRealignmentWriter w = new BetaPairValidatingRealignmentWriter(null,
        writer, "foofi", 0, 200000);
   
    w.candidatesSam = "/home/lmose/dev/abra/1076/candidates.bam";
    w.processCandidates();
    writer.close();
  }
View Full Code Here

    SAMFileWriterFactory writerFactory = new SAMFileWriterFactory();
//    writerFactory.setUseAsyncIo(true);
   
    header.setSortOrder(SortOrder.unsorted);
   
    SAMFileWriter writer = writerFactory.makeSAMOrBAMWriter(
        header, false, new File("/home/lmose/dev/abra/region_tracker/out.bam"));
   
    Sam2Fastq s2f = new Sam2Fastq();
   
   
    RegionLoader loader = new RegionLoader();
    List<Feature> regions = loader.load("/home/lmose/dev/abra/region_tracker/uncseq5.bed");
   
    regions = RegionLoader.collapseRegions(regions, 100);
   
    regions = ReAligner.splitRegions(regions);   
   
    long s = System.currentTimeMillis();
    s2f.convert(inputSam, "/home/lmose/dev/abra/region_tracker/t2.fastq.gz", c2r, writer, false,
        regions, 20);
    long e = System.currentTimeMillis();
   
   
    writer.close();
   
    System.out.println("Elapsed: " + (e-s)/1000);
   
   
//    s2f.convert("/home/lmose/dev/abra_wxs/21_1071/small_tumor.abra.bam", "/home/lmose/dev/abra_wxs/21_1071/t.fastq", c2r);
View Full Code Here

    SAMFileWriterFactory writerFactory = new SAMFileWriterFactory();
    writerFactory.setUseAsyncIo(false);
   
    // Farm each chromosome out to its own thread.
    for (SAMSequenceRecord chr : rdr.getFileHeader().getSequenceDictionary().getSequences()) {   
      SAMFileWriter writer = writerFactory.makeSAMOrBAMWriter(
          rdr.getFileHeader(), false, new File(outputDirectory + "/" + chr.getSequenceName() + ".bam"));
     
      outputWriterMap.put(chr.getSequenceName(), writer);
     
      BamSplitterThread thread = new BamSplitterThread(threads, filename, chr.getSequenceName(), writer);
      threads.spawnThread(thread);
    }
    threads.waitForAllThreadsToComplete();
   
    // Now go back and retrieve the unmapped reads.
    System.err.println("Processing unmapped reads");
    Iterator<SAMRecord> iter = rdr.queryUnmapped();
    while (iter.hasNext()) {
      SAMRecord read = iter.next();
   
      // If this read is not assigned a position, but the mate is, include in the output BAM associated with mate's chromosome.
      if (read.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX && read.getMateReferenceIndex() != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
        SAMFileWriter writer = outputWriterMap.get(read.getMateReferenceName());
        writer.addAlignment(read);
      }
    }
   
    for (SAMFileWriter writer : outputWriterMap.values()) {
      writer.close();
    }
   
    rdr.close();
   
    long e = System.currentTimeMillis();
View Full Code Here

    SamMultiMappingReader reader = new SamMultiMappingReader(input);
   
    SAMFileHeader header = reader.getFileHeader();
    header.setSortOrder(SortOrder.unsorted);
   
    SAMFileWriter outputReadsBam = new SAMFileWriterFactory().makeSAMOrBAMWriter(
        header, true, new File(output));

    for (List<SAMRecord> readList : reader) {
      List<SAMRecord> processedReads = processRead(readList);
     
      for (SAMRecord read : processedReads) {
        outputReadsBam.addAlignment(indelShifter.shiftIndelsLeft(read, c2r));
      }
    }
   
    outputReadsBam.close();
    reader.close();
   
    System.out.println("Done combining chimeric reads.");
  }
View Full Code Here

    SAMFileReader reader = new SAMFileReader(new File(input));
   
    SAMFileHeader header = reader.getFileHeader();
    header.setSortOrder(SortOrder.unsorted);
   
    SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(
        header, true, new File(output));
   
    for (Feature region : regions) {
      Map<String, SAMRecord> chunks = chop(reader, region);
      chunks = clop(chunks);
      chunks = drop(chunks);
     
      for (SAMRecord chunk : chunks.values()) {
        out.addAlignment(chunk);
      }
    }
   
    reader.close();
    out.close();
  }
View Full Code Here

TOP

Related Classes of net.sf.samtools.SAMFileWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.