コード例 #1
0
 public void testWorks() throws Exception {
   try (TestDirectory dir = new TestDirectory("sdf2fasta")) {
     final File xd = new File(dir, "sdf");
     final ArrayList<InputStream> al = new ArrayList<>();
     al.add(
         new ByteArrayInputStream(
             ">test\nacgt\n>bob\ntagt\naccc\n>cat\ncat\n>dog\nccc".getBytes()));
     final FastaSequenceDataSource ds = new FastaSequenceDataSource(al, new DNAFastaSymbolTable());
     final SequencesWriter sw = new SequencesWriter(ds, xd, 300000, PrereadType.UNKNOWN, false);
     sw.processSequences();
     File x;
     SequencesReader sr = SequencesReaderFactory.createDefaultSequencesReader(xd);
     try {
       x = new File(dir, "junitmy.fasta");
       checkMainInitOk("-i", xd.toString(), "-o", x.toString(), "-Z");
       checkContent1(x);
     } finally {
       sr.close();
     }
     sr = SequencesReaderFactory.createDefaultSequencesReader(xd);
     try {
       checkMainInitOk("-i", xd.toString(), "-o", x.toString(), "-l", "3", "-Z");
       checkContent2(x);
     } finally {
       sr.close();
     }
   }
 }
 public void testRoll() throws Exception {
   final ArrayList<InputStream> al = new ArrayList<>();
   al.add(
       createStream(
           ">123456789012345678901\nacgtgtgtgtcttagggctcactggtcatgca\n>bob the buuilder\ntagttcagcatcgatca\n>hobos r us\naccccaccccacaaacccaa"));
   final FastaSequenceDataSource ds = new FastaSequenceDataSource(al, new DNAFastaSymbolTable());
   final SequencesWriter sw = new SequencesWriter(ds, mDir, 20, PrereadType.UNKNOWN, false);
   sw.processSequences();
   try (SequencesReader dsr =
       SequencesReaderFactory.createMemorySequencesReader(mDir, true, LongRange.NONE)) {
     final SequencesIterator it = dsr.iterator();
     assertTrue(((CompressedMemorySequencesReader) dsr).integrity());
     assertEquals(mDir, dsr.path());
     assertTrue(it.nextSequence());
     assertEquals("1234567890123456789", it.currentName());
     assertEquals(32, it.currentLength());
     SequencesWriterTest.checkEquals(
         it,
         new byte[] {
           1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 2, 4, 4, 1, 3, 3, 3, 2, 4, 2, 1, 2, 4, 3, 3, 4, 2, 1, 4,
           3, 2, 1
         });
     assertTrue(it.nextSequence());
     assertEquals("bob", it.currentName());
     assertEquals(17, it.currentLength());
     SequencesWriterTest.checkEquals(
         it, new byte[] {4, 1, 3, 4, 4, 2, 1, 3, 2, 1, 4, 2, 3, 1, 4, 2, 1});
     assertTrue(it.nextSequence());
     assertEquals("hobos", it.currentName());
     assertEquals(20, it.currentLength());
     SequencesWriterTest.checkEquals(
         it, new byte[] {1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1});
   }
 }
 public void testEmptyFasta() throws IOException {
   final SequencesReader reader = ReaderTestUtils.getReaderDNA("", mDir, new SdfId(0L));
   reader.close();
   final CompressedMemorySequencesReader cmsr =
       new CompressedMemorySequencesReader(
           mDir, new IndexFile(mDir), 5, true, false, new LongRange(0, 0));
   assertEquals(0, cmsr.numberSequences());
 }
  public void testOverEndFastq() throws Exception {
    final SequencesReader reader = ReaderTestUtils.getReaderDNAFastq(POSITIONS_FASTQ, mDir, false);
    reader.close();

    new CompressedMemorySequencesReader(
        mDir, new IndexFile(mDir), 5, true, false, new LongRange(3, 8));
    // Now this is OK rather than Exception, since our std behaviour is to warn and clip end that
    // are too high back to the available num seqs
  }
  public void testFastqEnd() throws Exception {
    final SequencesReader reader =
        ReaderTestUtils.getReaderDNAFastq(POSITIONS_FASTQ, mDir, 20, false);
    reader.close();

    final SequencesIterator cmsr =
        new CompressedMemorySequencesReader(
                mDir, new IndexFile(mDir), 5, true, false, new LongRange(5, 6))
            .iterator();

    cmsr.nextSequence();
    checkFastq(cmsr, "r5", "ACGTAC");
    assertFalse(cmsr.nextSequence());
  }
  public void testRanges() throws Exception {
    final SequencesReader reader = ReaderTestUtils.getReaderDNAFastq(SMALL_FASTQ, mDir, 20, false);
    reader.close();

    final CompressedMemorySequencesReader cmsr =
        new CompressedMemorySequencesReader(
            mDir, new IndexFile(mDir), 5, true, false, LongRange.NONE);
    final byte[] foo = new byte[6];
    cmsr.readQuality(0, foo, 4, 6);
    final String qual = "EFGHIJ";
    for (int i = 0; i < foo.length; i++) {
      assertEquals(qual.charAt(i) - '!', foo[i]);
    }
  }