use of au.edu.wehi.idsv.util.AutoClosingIterator in project gridss by PapenfussLab.
the class SAMEvidenceSource method iterator.
public CloseableIterator<DirectedEvidence> iterator() {
SamReader reader = getReader();
SAMRecordIterator it = reader.iterator();
it.assertSorted(SortOrder.coordinate);
Iterator<DirectedEvidence> eit = asEvidence(it);
return new AutoClosingIterator<>(eit, reader, it);
}
use of au.edu.wehi.idsv.util.AutoClosingIterator in project gridss by PapenfussLab.
the class VcfTransformCommandLineProgram method getBreakpoints.
public CloseableIterator<VariantContextDirectedBreakpoint> getBreakpoints(File file) {
VCFFileReader vcfReader = new VCFFileReader(file, false);
CloseableIterator<VariantContext> it = vcfReader.iterator();
Iterator<IdsvVariantContext> idsvIt = Iterators.transform(it, variant -> IdsvVariantContext.create(getContext(), null, variant));
Iterator<VariantContextDirectedBreakpoint> bpit = Iterators.filter(idsvIt, VariantContextDirectedBreakpoint.class);
// resort by evidence start
bpit = new DirectEvidenceWindowedSortingIterator<>(getContext(), SAMEvidenceSource.maximumWindowSize(getContext(), getSamEvidenceSources(), getAssemblySource()), bpit);
return new AutoClosingIterator<VariantContextDirectedBreakpoint>(bpit, it, vcfReader);
}
use of au.edu.wehi.idsv.util.AutoClosingIterator in project gridss by PapenfussLab.
the class AllocateEvidenceTest method should_filter_if_insufficient_reads.
@Test
public void should_filter_if_insufficient_reads() throws IOException {
final ProcessingContext pc = getCommandlineContext();
pc.getVariantCallingParameters().minScore = 0;
pc.getVariantCallingParameters().minSize = 0;
pc.getVariantCallingParameters().minReads = 3;
createInput(RP(0, 1, 10), DP(0, 1, "5M5S", true, 1, 10, "5M", true));
SAMEvidenceSource ses = new SAMEvidenceSource(getContext(), input, null, 0);
ses.ensureMetrics();
File assemblyFile = new File(testFolder.getRoot(), "assembly.bam");
AssemblyEvidenceSource aes = new AssemblyEvidenceSource(pc, ImmutableList.of(ses), assemblyFile);
aes.assembleBreakends(null);
aes.ensureExtracted();
VariantCaller caller = new VariantCaller(pc, ImmutableList.of(ses), aes);
caller.callBreakends(output, MoreExecutors.newDirectExecutorService());
AllocateEvidence cmd = new AllocateEvidence();
cmd.INPUT_VCF = output;
cmd.setContext(pc);
cmd.setAssemblySource(aes);
cmd.setSamEvidenceSources(ImmutableList.of(ses));
cmd.OUTPUT_VCF = new File(testFolder.getRoot(), "annotated.vcf");
List<VariantContextDirectedBreakpoint> vcfs = Lists.newArrayList(Iterables.filter(getVcf(output, null), VariantContextDirectedBreakpoint.class));
List<VariantContextDirectedBreakpoint> results = Lists.newArrayList(cmd.iterator(new AutoClosingIterator<>(vcfs.iterator()), MoreExecutors.newDirectExecutorService()));
assertEquals(2, vcfs.size());
assertEquals(0, results.size());
}
use of au.edu.wehi.idsv.util.AutoClosingIterator in project gridss by PapenfussLab.
the class AllocateEvidenceTest method should_filter_if_insufficient_quality.
@Test
public void should_filter_if_insufficient_quality() throws IOException {
final ProcessingContext pc = getCommandlineContext();
pc.getVariantCallingParameters().minScore = 1000;
pc.getVariantCallingParameters().minSize = 0;
pc.getVariantCallingParameters().minReads = 0;
createInput(RP(0, 1, 10), DP(0, 1, "5M5S", true, 1, 10, "5M", true));
SAMEvidenceSource ses = new SAMEvidenceSource(getContext(), input, null, 0);
ses.ensureMetrics();
File assemblyFile = new File(testFolder.getRoot(), "assembly.bam");
AssemblyEvidenceSource aes = new AssemblyEvidenceSource(pc, ImmutableList.of(ses), assemblyFile);
aes.assembleBreakends(null);
aes.ensureExtracted();
VariantCaller caller = new VariantCaller(pc, ImmutableList.of(ses), aes);
caller.callBreakends(output, MoreExecutors.newDirectExecutorService());
AllocateEvidence cmd = new AllocateEvidence();
cmd.INPUT_VCF = output;
cmd.setContext(pc);
cmd.setAssemblySource(aes);
cmd.setSamEvidenceSources(ImmutableList.of(ses));
cmd.OUTPUT_VCF = new File(testFolder.getRoot(), "annotated.vcf");
List<VariantContextDirectedBreakpoint> vcfs = Lists.newArrayList(Iterables.filter(getVcf(output, null), VariantContextDirectedBreakpoint.class));
List<VariantContextDirectedBreakpoint> results = Lists.newArrayList(cmd.iterator(new AutoClosingIterator<>(vcfs.iterator()), MoreExecutors.newDirectExecutorService()));
assertEquals(0, results.size());
}
Aggregations