package picard.analysis;
import htsjdk.samtools.metrics.MetricsFile;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class CollectJumpingLibraryMetricsTest {
private static final File TEST_DATA_DIR = new File("testdata/picard/sam/");
private static final File SAM_FILE = new File(TEST_DATA_DIR, "forMetrics.sam");
@Test
public void testCollectJumpingLibraryMetrics() throws IOException {
final File outfile = File.createTempFile("CollectJumpingLibraryMetricsTest", ".txt");
outfile.deleteOnExit();
final String[] args = new String[] {
"INPUT=" + SAM_FILE.getAbsolutePath(),
"OUTPUT=" + outfile.getAbsolutePath()
};
CollectJumpingLibraryMetrics collectJumpingLibraryMetrics = new CollectJumpingLibraryMetrics();
Assert.assertEquals(collectJumpingLibraryMetrics.instanceMain(args), 0,
"Can't process " + SAM_FILE.getAbsolutePath() + " correctly");
final MetricsFile<JumpingLibraryMetrics, Comparable<?>> output = new MetricsFile<>();
output.read(new FileReader(outfile));
for (final JumpingLibraryMetrics metrics : output.getMetrics()) {
Assert.assertEquals(metrics.JUMP_PAIRS, 4);
Assert.assertEquals(metrics.JUMP_DUPLICATE_PAIRS, 1);
Assert.assertEquals(metrics.JUMP_DUPLICATE_PCT, 0.25);
Assert.assertEquals(metrics.JUMP_LIBRARY_SIZE, 6);
Assert.assertEquals(metrics.JUMP_MEAN_INSERT_SIZE, 176.0);
Assert.assertEquals(metrics.JUMP_STDEV_INSERT_SIZE, 50.0);
Assert.assertEquals(metrics.NONJUMP_PAIRS, 1);
Assert.assertEquals(metrics.NONJUMP_DUPLICATE_PAIRS, 0);
Assert.assertEquals(metrics.NONJUMP_DUPLICATE_PCT, 0.0);
Assert.assertEquals(metrics.NONJUMP_LIBRARY_SIZE, 0);
Assert.assertEquals(metrics.NONJUMP_MEAN_INSERT_SIZE, 96.0);
Assert.assertEquals(metrics.NONJUMP_STDEV_INSERT_SIZE, Double.NaN);
Assert.assertEquals(metrics.CHIMERIC_PAIRS, 0);
Assert.assertEquals(metrics.FRAGMENTS, 1);
Assert.assertEquals(metrics.PCT_JUMPS, 0.8);
Assert.assertEquals(metrics.PCT_NONJUMPS, 0.2);
Assert.assertEquals(metrics.PCT_CHIMERAS, 0.0);
}
}
}