org.broadinstitute.hellbender.tools.spark.pathseq.PSBwaAlignerSpark Maven / Gradle / Ivy
The newest version!
package org.broadinstitute.hellbender.tools.spark.pathseq;
import htsjdk.samtools.SAMFileHeader;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.broadcast.Broadcast;
import org.broadinstitute.hellbender.utils.bwa.BwaMemIndexCache;
import org.broadinstitute.hellbender.utils.read.GATKRead;
/**
* Wrapper class for using the PathSeq Bwa aligner class in Spark. Encapsulates closing the index when done.
*/
public final class PSBwaAlignerSpark implements AutoCloseable {
final PSBwaArgumentCollection bwaArgs;
private final JavaSparkContext ctx;
public PSBwaAlignerSpark(final JavaSparkContext ctx, final PSBwaArgumentCollection bwaArgs) {
this.ctx = ctx;
this.bwaArgs = bwaArgs;
}
public JavaRDD doBwaAlignment(final JavaRDD reads,
final boolean pairedAlignment,
final Broadcast header) {
final PSBwaArgumentCollection bwaArgsLocal = bwaArgs;
return reads.mapPartitions(itr -> (new PSBwaAligner(bwaArgsLocal, pairedAlignment)).apply(itr, header.value()));
}
//Run this after invoking a Spark action on all RDDs returned from doBwaAlignment()
public void close() {
BwaMemIndexCache.closeAllDistributedInstances(ctx);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy