Skip to content

Commit

Permalink
Refactor Bwa class names to BwaMem.
Browse files Browse the repository at this point in the history
  • Loading branch information
heuermh committed Aug 29, 2020
1 parent 92c1b5a commit 017a1d9
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 32 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ alignments, features, fragments, genotypes, reads, sequences, slices, variant co
or variants, such as `sc.loadPairedFastqAsFragments` below.

Wildcard import from `Cannoli` to add implicit methods for calling external commands to the
genomic datasets loaded by ADAM, such as `reads.alignWithBwa` below.
genomic datasets loaded by ADAM, such as `reads.alignWithBwaMem` below.

```
$ ./bin/cannoli-shell \
Expand All @@ -68,8 +68,8 @@ import org.bdgenomics.cannoli.Cannoli._
scala> import org.bdgenomics.cannoli.BwaArgs
import org.bdgenomics.cannoli.BwaArgs
scala> val args = new BwaArgs()
args: org.bdgenomics.cannoli.BwaArgs = org.bdgenomics.cannoli.BwaArgs@54234569
scala> val args = new BwaMemArgs()
args: org.bdgenomics.cannoli.BwaMemArgs = org.bdgenomics.cannoli.BwaMemArgs@54234569
scala> args.indexPath = "hg38.fa"
args.indexPath: String = hg38.fa
Expand All @@ -81,7 +81,7 @@ scala> val reads = sc.loadPairedFastqAsFragments("sample1.fq", "sample2.fq")
reads: org.bdgenomics.adam.rdd.fragment.FragmentRDD = RDDBoundFragmentRDD with 0 reference
sequences, 0 read groups, and 0 processing steps
scala> val alignments = reads.alignWithBwa(args)
scala> val alignments = reads.alignWithBwaMem(args)
alignments: org.bdgenomics.adam.rdd.read.AlignmentRecordRDD = RDDBoundAlignmentRecordRDD with
0 reference sequences, 0 read groups, and 0 processing steps
Expand Down Expand Up @@ -118,7 +118,7 @@ CANNOLI
bowtie : Align paired-end reads in a fragment dataset with Bowtie.
bowtie2 : Align paired-end reads in a fragment dataset with Bowtie 2.
singleEndBowtie2 : Align unaligned single-end reads in an alignment dataset with Bowtie 2.
bwa : Align paired-end reads in a fragment dataset with BWA.
bwaMem : Align paired-end reads in a fragment dataset with bwa mem.
bwaMem2 : Align paired-end reads in a fragment dataset with Bwa-mem2.
freebayes : Call variants from an alignment dataset with Freebayes.
gem : Align paired-end reads in a fragment dataset with GEM-Mapper.
Expand All @@ -144,7 +144,7 @@ External commands wrapped by Cannoli should be installed to each executor node i
$ ./bin/cannoli-submit \
<spark-args>
-- \
bwa \
bwaMem \
sample.unaligned.fragments.adam \
sample.bwa.hg38.alignments.adam \
sample \
Expand All @@ -160,7 +160,7 @@ or can be run using Docker
$ ./bin/cannoli-submit \
<spark-args>
-- \
bwa \
bwaMem \
sample.unaligned.fragments.adam \
sample.bwa.hg38.alignments.adam \
sample \
Expand All @@ -178,7 +178,7 @@ or can be run using Singularity
$ ./bin/cannoli-submit \
<spark-args>
-- \
bwa \
bwaMem \
sample.unaligned.fragments.adam \
sample.bwa.hg38.alignments.adam \
sample \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,24 @@ import org.bdgenomics.adam.rdd.ADAMContext._
import org.bdgenomics.adam.rdd.ADAMSaveAnyArgs
import org.bdgenomics.adam.rdd.fragment.FragmentDataset
import org.bdgenomics.adam.rdd.read.AlignmentDataset
import org.bdgenomics.cannoli.{ Bwa => BwaFn, BwaArgs => BwaFnArgs }
import org.bdgenomics.cannoli.{ BwaMem => BwaMemFn, BwaMemArgs => BwaMemFnArgs }
import org.bdgenomics.cannoli.util.QuerynameGrouper
import org.bdgenomics.utils.cli._
import org.kohsuke.args4j.{ Argument, Option => Args4jOption }

object Bwa extends BDGCommandCompanion {
val commandName = "bwa"
val commandDescription = "Align paired-end reads in a fragment dataset with BWA."
object BwaMem extends BDGCommandCompanion {
val commandName = "bwaMem"
val commandDescription = "Align paired-end reads in a fragment dataset with bwa mem."

def apply(cmdLine: Array[String]) = {
new Bwa(Args4j[BwaArgs](cmdLine))
new BwaMem(Args4j[BwaMemArgs](cmdLine))
}
}

/**
* Bwa command line arguments.
* Bwa mem command line arguments.
*/
class BwaArgs extends BwaFnArgs with ADAMSaveAnyArgs with ParquetArgs {
class BwaMemArgs extends BwaMemFnArgs with ADAMSaveAnyArgs with ParquetArgs {
@Argument(required = true, metaVar = "INPUT", usage = "Location to pipe fragments from (e.g. interleaved FASTQ format, .ifq) If extension is not detected, Parquet is assumed.", index = 0)
var inputPath: String = null

Expand Down Expand Up @@ -77,10 +77,10 @@ class BwaArgs extends BwaFnArgs with ADAMSaveAnyArgs with ParquetArgs {
}

/**
* Bwa command line wrapper.
* Bwa mem command line wrapper.
*/
class Bwa(protected val args: BwaArgs) extends BDGSparkCommand[BwaArgs] with Logging {
val companion = Bwa
class BwaMem(protected val args: BwaMemArgs) extends BDGSparkCommand[BwaMemArgs] with Logging {
val companion = BwaMem
val stringency: ValidationStringency = ValidationStringency.valueOf(args.stringency)

def run(sc: SparkContext) {
Expand All @@ -96,7 +96,7 @@ class Bwa(protected val args: BwaArgs) extends BDGSparkCommand[BwaArgs] with Log
sc.loadFragments(args.inputPath, stringency = stringency)
}

val output: AlignmentDataset = new BwaFn(args, sc).apply(input)
val output: AlignmentDataset = new BwaMemFn(args, sc).apply(input)

val outputMaybeWithSequences = Option(args.sequenceDictionary).fold(output)(sdPath => {
val sequences = sc.loadSequenceDictionary(sdPath)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ object Cannoli {
Bowtie,
Bowtie2,
SingleEndBowtie2,
Bwa,
BwaMem,
BwaMem2,
Freebayes,
Gem,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ import org.kohsuke.args4j.{ Option => Args4jOption }
import scala.collection.JavaConversions._

/**
* Bwa function arguments.
* Bwa mem function arguments.
*/
class BwaArgs extends ReadGroupArgs {
class BwaMemArgs extends ReadGroupArgs {
@Args4jOption(required = true, name = "-index", usage = "Path to the BWA index to be searched, e.g. <idxbase> in bwa [options]* <idxbase>. Required.")
var indexPath: String = null

Expand All @@ -48,22 +48,22 @@ class BwaArgs extends ReadGroupArgs {
@Args4jOption(required = false, name = "-add_files", usage = "If true, use the SparkFiles mechanism to distribute files to executors.")
var addFiles: Boolean = false

@Args4jOption(required = false, name = "-use_docker", usage = "If true, uses Docker to launch BWA.")
@Args4jOption(required = false, name = "-use_docker", usage = "If true, uses Docker to launch bwa mem.")
var useDocker: Boolean = false

@Args4jOption(required = false, name = "-use_singularity", usage = "If true, uses Singularity to launch BWA.")
@Args4jOption(required = false, name = "-use_singularity", usage = "If true, uses Singularity to launch bwa mem.")
var useSingularity: Boolean = false
}

/**
* Bwa wrapper as a function FragmentDataset &rarr; AlignmentDataset,
* Bwa mem wrapper as a function FragmentDataset &rarr; AlignmentDataset,
* for use in cannoli-shell or notebooks.
*
* @param args Bwa function arguments.
* @param args Bwa mem function arguments.
* @param sc Spark context.
*/
class Bwa(
val args: BwaArgs,
class BwaMem(
val args: BwaMemArgs,
sc: SparkContext) extends CannoliFn[FragmentDataset, AlignmentDataset](sc) {

override def apply(fragments: FragmentDataset): AlignmentDataset = {
Expand Down
8 changes: 4 additions & 4 deletions core/src/main/scala/org/bdgenomics/cannoli/Cannoli.scala
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,13 @@ object Cannoli {
}

/**
* Align the paired-end reads in this FragmentDataset with BWA via Cannoli.
* Align the paired-end reads in this FragmentDataset with bwa mem via Cannoli.
*
* @param args Bwa function arguments.
* @param args Bwa mem function arguments.
* @return AlignmentDataset.
*/
def alignWithBwa(args: BwaArgs): AlignmentDataset = {
new Bwa(args, fragments.rdd.context).apply(fragments)
def alignWithBwaMem(args: BwaMemArgs): AlignmentDataset = {
new BwaMem(args, fragments.rdd.context).apply(fragments)
}

/**
Expand Down

0 comments on commit 017a1d9

Please sign in to comment.