diff --git a/java/src/org/broadinstitute/sting/bwa/Aligner.java b/java/src/org/broadinstitute/sting/alignment/Aligner.java similarity index 79% rename from java/src/org/broadinstitute/sting/bwa/Aligner.java rename to java/src/org/broadinstitute/sting/alignment/Aligner.java index b55619e75..78161cf24 100644 --- a/java/src/org/broadinstitute/sting/bwa/Aligner.java +++ b/java/src/org/broadinstitute/sting/alignment/Aligner.java @@ -1,10 +1,16 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment; import net.sf.samtools.SAMRecord; import java.io.File; import java.util.List; +import org.broadinstitute.sting.alignment.bwa.*; +import org.broadinstitute.sting.alignment.bwa.bwt.BWT; +import org.broadinstitute.sting.alignment.bwa.bwt.SuffixArray; +import org.broadinstitute.sting.alignment.bwa.bwt.BWTReader; +import org.broadinstitute.sting.alignment.bwa.bwt.SuffixArrayReader; + /** * Create perfect alignments from the read to the genome represented by the given BWT / suffix array. * diff --git a/java/src/org/broadinstitute/sting/bwa/Alignment.java b/java/src/org/broadinstitute/sting/alignment/Alignment.java similarity index 86% rename from java/src/org/broadinstitute/sting/bwa/Alignment.java rename to java/src/org/broadinstitute/sting/alignment/Alignment.java index c6098464a..4078a1fd3 100644 --- a/java/src/org/broadinstitute/sting/bwa/Alignment.java +++ b/java/src/org/broadinstitute/sting/alignment/Alignment.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment; /** * Represents an alignment of a read to a site in the reference genome. diff --git a/java/src/org/broadinstitute/sting/bwa/BWAAlignment.java b/java/src/org/broadinstitute/sting/alignment/bwa/BWAAlignment.java similarity index 90% rename from java/src/org/broadinstitute/sting/bwa/BWAAlignment.java rename to java/src/org/broadinstitute/sting/alignment/bwa/BWAAlignment.java index 83f27c307..7e024f5ce 100644 --- a/java/src/org/broadinstitute/sting/bwa/BWAAlignment.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/BWAAlignment.java @@ -1,4 +1,6 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa; + +import org.broadinstitute.sting.alignment.Alignment; /** * An alignment object to be used incrementally as the BWA aligner diff --git a/java/src/org/broadinstitute/sting/bwa/LowerBound.java b/java/src/org/broadinstitute/sting/alignment/bwa/LowerBound.java similarity index 90% rename from java/src/org/broadinstitute/sting/bwa/LowerBound.java rename to java/src/org/broadinstitute/sting/alignment/bwa/LowerBound.java index 587847ea0..776dc2c5b 100644 --- a/java/src/org/broadinstitute/sting/bwa/LowerBound.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/LowerBound.java @@ -1,10 +1,13 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa; import net.sf.samtools.SAMRecord; import java.util.List; import java.util.ArrayList; +import org.broadinstitute.sting.alignment.bwa.bwt.Base; +import org.broadinstitute.sting.alignment.bwa.bwt.BWT; + /** * At any point along the given read, what is a good lower bound for the * total number of differences? diff --git a/java/src/org/broadinstitute/sting/bwa/PerfectAlignerTestHarness.java b/java/src/org/broadinstitute/sting/alignment/bwa/PerfectAlignerTestHarness.java similarity index 95% rename from java/src/org/broadinstitute/sting/bwa/PerfectAlignerTestHarness.java rename to java/src/org/broadinstitute/sting/alignment/bwa/PerfectAlignerTestHarness.java index a6a384510..0991dba37 100644 --- a/java/src/org/broadinstitute/sting/bwa/PerfectAlignerTestHarness.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/PerfectAlignerTestHarness.java @@ -1,7 +1,9 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa; import org.broadinstitute.sting.utils.fasta.IndexedFastaSequenceFile; import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.alignment.bwa.bwt.SuffixArrayReader; +import org.broadinstitute.sting.alignment.bwa.bwt.*; import java.io.File; import java.io.FileNotFoundException; diff --git a/java/src/org/broadinstitute/sting/bwa/BWT.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWT.java similarity index 80% rename from java/src/org/broadinstitute/sting/bwa/BWT.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWT.java index ffd55dd42..31754d379 100644 --- a/java/src/org/broadinstitute/sting/bwa/BWT.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWT.java @@ -1,4 +1,6 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; + +import org.broadinstitute.sting.alignment.bwa.packing.PackUtils; /** * Represents the Burrows-Wheeler Transform of a reference sequence. @@ -128,43 +130,3 @@ public class BWT { return sequenceBlocks; } } - -/** - * Models a block of bases within the BWT. - */ -class SequenceBlock { - /** - * Start position of this sequence within the BWT. - */ - public final int sequenceStart; - - /** - * Length of this sequence within the BWT. - */ - public final int sequenceLength; - - - /** - * Occurrences of each letter up to this sequence block. - */ - public final Counts occurrences; - - /** - * Sequence for this segment. - */ - public final byte[] sequence; - - /** - * Create a new block within this BWT. - * @param sequenceStart Starting position of this sequence within the BWT. - * @param sequenceLength Length of this sequence. - * @param occurrences How many of each base has been seen before this sequence began. - * @param sequence The actual sequence from the BWT. - */ - SequenceBlock( int sequenceStart, int sequenceLength, Counts occurrences, byte[] sequence ) { - this.sequenceStart = sequenceStart; - this.sequenceLength = sequenceLength; - this.occurrences = occurrences; - this.sequence = sequence; - } -} diff --git a/java/src/org/broadinstitute/sting/bwa/BWTReader.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWTReader.java similarity index 88% rename from java/src/org/broadinstitute/sting/bwa/BWTReader.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWTReader.java index 413a46fbb..31e25bbb2 100644 --- a/java/src/org/broadinstitute/sting/bwa/BWTReader.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWTReader.java @@ -1,6 +1,9 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.alignment.bwa.packing.IntPackedInputStream; +import org.broadinstitute.sting.alignment.bwa.packing.BasePackedInputStream; +import org.broadinstitute.sting.alignment.bwa.packing.PackUtils; import java.io.*; import java.nio.ByteOrder; @@ -50,7 +53,7 @@ public class BWTReader { sequenceBlocks = new SequenceBlock[PackUtils.numberOfPartitions(bwtSize,BWT.SEQUENCE_BLOCK_SIZE)]; for( int block = 0; block < sequenceBlocks.length; block++ ) { - int sequenceStart = block*BWT.SEQUENCE_BLOCK_SIZE; + int sequenceStart = block* BWT.SEQUENCE_BLOCK_SIZE; int sequenceLength = Math.min(BWT.SEQUENCE_BLOCK_SIZE,bwtSize-sequenceStart); int[] occurrences = new int[PackUtils.ALPHABET_SIZE]; diff --git a/java/src/org/broadinstitute/sting/bwa/BWTWriter.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWTWriter.java similarity index 90% rename from java/src/org/broadinstitute/sting/bwa/BWTWriter.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWTWriter.java index 1913247d7..a8f810aa7 100644 --- a/java/src/org/broadinstitute/sting/bwa/BWTWriter.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/BWTWriter.java @@ -1,6 +1,8 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.alignment.bwa.packing.IntPackedOutputStream; +import org.broadinstitute.sting.alignment.bwa.packing.BasePackedOutputStream; import java.io.*; import java.nio.ByteOrder; diff --git a/java/src/org/broadinstitute/sting/bwa/Base.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/Base.java similarity index 97% rename from java/src/org/broadinstitute/sting/bwa/Base.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/Base.java index 47e8bff06..f3669864f 100644 --- a/java/src/org/broadinstitute/sting/bwa/Base.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/Base.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; import java.util.EnumSet; import java.util.Map; diff --git a/java/src/org/broadinstitute/sting/bwa/Counts.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/Counts.java similarity index 96% rename from java/src/org/broadinstitute/sting/bwa/Counts.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/Counts.java index 8b8e41933..a92fb30f5 100644 --- a/java/src/org/broadinstitute/sting/bwa/Counts.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/Counts.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; import org.broadinstitute.sting.utils.StingException; @@ -25,7 +25,7 @@ public class Counts implements Cloneable { * @param data Count data, broken down by base. * @param cumulative Whether the counts are cumulative, (count_G=numA+numC+numG,for example). */ - Counts( int[] data, boolean cumulative ) { + public Counts( int[] data, boolean cumulative ) { for( Base base: EnumSet.allOf(Base.class)) counts[base.toPack()] = data[base.toPack()]; diff --git a/java/src/org/broadinstitute/sting/bwa/CreateBWTFromReference.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/CreateBWTFromReference.java similarity index 98% rename from java/src/org/broadinstitute/sting/bwa/CreateBWTFromReference.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/CreateBWTFromReference.java index a674f5205..11f413b25 100755 --- a/java/src/org/broadinstitute/sting/bwa/CreateBWTFromReference.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/CreateBWTFromReference.java @@ -23,7 +23,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; import net.sf.picard.reference.ReferenceSequenceFile; import net.sf.picard.reference.ReferenceSequenceFileFactory; @@ -35,6 +35,7 @@ import java.util.TreeSet; import java.util.Comparator; import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.alignment.bwa.packing.PackUtils; /** * Create a suffix array data structure. diff --git a/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SequenceBlock.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SequenceBlock.java new file mode 100644 index 000000000..ba41d92f3 --- /dev/null +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SequenceBlock.java @@ -0,0 +1,41 @@ +package org.broadinstitute.sting.alignment.bwa.bwt; + +/** + * Models a block of bases within the BWT. + */ +public class SequenceBlock { + /** + * Start position of this sequence within the BWT. + */ + public final int sequenceStart; + + /** + * Length of this sequence within the BWT. + */ + public final int sequenceLength; + + + /** + * Occurrences of each letter up to this sequence block. + */ + public final Counts occurrences; + + /** + * Sequence for this segment. + */ + public final byte[] sequence; + + /** + * Create a new block within this BWT. + * @param sequenceStart Starting position of this sequence within the BWT. + * @param sequenceLength Length of this sequence. + * @param occurrences How many of each base has been seen before this sequence began. + * @param sequence The actual sequence from the BWT. + */ + public SequenceBlock( int sequenceStart, int sequenceLength, Counts occurrences, byte[] sequence ) { + this.sequenceStart = sequenceStart; + this.sequenceLength = sequenceLength; + this.occurrences = occurrences; + this.sequence = sequence; + } +} \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/bwa/SuffixArray.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArray.java similarity index 94% rename from java/src/org/broadinstitute/sting/bwa/SuffixArray.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArray.java index fffec0657..7451fc894 100644 --- a/java/src/org/broadinstitute/sting/bwa/SuffixArray.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArray.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; /** * An in-memory representation of a suffix array. diff --git a/java/src/org/broadinstitute/sting/bwa/SuffixArrayReader.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArrayReader.java similarity index 91% rename from java/src/org/broadinstitute/sting/bwa/SuffixArrayReader.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArrayReader.java index 591f4125a..8d7ea797c 100644 --- a/java/src/org/broadinstitute/sting/bwa/SuffixArrayReader.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArrayReader.java @@ -1,6 +1,8 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.alignment.bwa.packing.IntPackedInputStream; +import org.broadinstitute.sting.alignment.bwa.packing.PackUtils; import java.io.*; import java.nio.ByteOrder; diff --git a/java/src/org/broadinstitute/sting/bwa/SuffixArrayWriter.java b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArrayWriter.java similarity index 93% rename from java/src/org/broadinstitute/sting/bwa/SuffixArrayWriter.java rename to java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArrayWriter.java index edc3a0821..c0dabd04b 100644 --- a/java/src/org/broadinstitute/sting/bwa/SuffixArrayWriter.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/bwt/SuffixArrayWriter.java @@ -1,6 +1,7 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.bwt; import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.alignment.bwa.packing.IntPackedOutputStream; import java.io.*; import java.nio.ByteOrder; diff --git a/java/src/org/broadinstitute/sting/bwa/BasePackedInputStream.java b/java/src/org/broadinstitute/sting/alignment/bwa/packing/BasePackedInputStream.java similarity index 96% rename from java/src/org/broadinstitute/sting/bwa/BasePackedInputStream.java rename to java/src/org/broadinstitute/sting/alignment/bwa/packing/BasePackedInputStream.java index 9a6abda94..40b5b581e 100644 --- a/java/src/org/broadinstitute/sting/bwa/BasePackedInputStream.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/packing/BasePackedInputStream.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.packing; import org.broadinstitute.sting.utils.StingException; @@ -38,7 +38,7 @@ public class BasePackedInputStream { this.targetInputStream = inputStream; this.type = type; - this.buffer = ByteBuffer.allocate(PackUtils.bitsInType(type)/PackUtils.BITS_PER_BYTE).order(byteOrder); + this.buffer = ByteBuffer.allocate(PackUtils.bitsInType(type)/ PackUtils.BITS_PER_BYTE).order(byteOrder); } /** diff --git a/java/src/org/broadinstitute/sting/bwa/BasePackedOutputStream.java b/java/src/org/broadinstitute/sting/alignment/bwa/packing/BasePackedOutputStream.java similarity index 98% rename from java/src/org/broadinstitute/sting/bwa/BasePackedOutputStream.java rename to java/src/org/broadinstitute/sting/alignment/bwa/packing/BasePackedOutputStream.java index 0ba98693b..cc6294a99 100644 --- a/java/src/org/broadinstitute/sting/bwa/BasePackedOutputStream.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/packing/BasePackedOutputStream.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.packing; import org.broadinstitute.sting.utils.StingException; diff --git a/java/src/org/broadinstitute/sting/bwa/CreatePACFromReference.java b/java/src/org/broadinstitute/sting/alignment/bwa/packing/CreatePACFromReference.java similarity index 98% rename from java/src/org/broadinstitute/sting/bwa/CreatePACFromReference.java rename to java/src/org/broadinstitute/sting/alignment/bwa/packing/CreatePACFromReference.java index 1ce2925d3..05bc1fe61 100755 --- a/java/src/org/broadinstitute/sting/bwa/CreatePACFromReference.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/packing/CreatePACFromReference.java @@ -23,7 +23,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.packing; import net.sf.picard.reference.ReferenceSequenceFile; import net.sf.picard.reference.ReferenceSequenceFileFactory; diff --git a/java/src/org/broadinstitute/sting/bwa/IntPackedInputStream.java b/java/src/org/broadinstitute/sting/alignment/bwa/packing/IntPackedInputStream.java similarity index 95% rename from java/src/org/broadinstitute/sting/bwa/IntPackedInputStream.java rename to java/src/org/broadinstitute/sting/alignment/bwa/packing/IntPackedInputStream.java index 8de0ca8d6..bdc04d7e2 100644 --- a/java/src/org/broadinstitute/sting/bwa/IntPackedInputStream.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/packing/IntPackedInputStream.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.packing; import java.io.*; import java.nio.ByteBuffer; @@ -38,7 +38,7 @@ public class IntPackedInputStream { */ public IntPackedInputStream(InputStream inputStream, ByteOrder byteOrder) { this.targetInputStream = inputStream; - this.buffer = ByteBuffer.allocate(PackUtils.bitsInType(Integer.class)/PackUtils.BITS_PER_BYTE).order(byteOrder); + this.buffer = ByteBuffer.allocate(PackUtils.bitsInType(Integer.class)/ PackUtils.BITS_PER_BYTE).order(byteOrder); } /** diff --git a/java/src/org/broadinstitute/sting/bwa/IntPackedOutputStream.java b/java/src/org/broadinstitute/sting/alignment/bwa/packing/IntPackedOutputStream.java similarity index 98% rename from java/src/org/broadinstitute/sting/bwa/IntPackedOutputStream.java rename to java/src/org/broadinstitute/sting/alignment/bwa/packing/IntPackedOutputStream.java index e9386de37..3933f6b5c 100755 --- a/java/src/org/broadinstitute/sting/bwa/IntPackedOutputStream.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/packing/IntPackedOutputStream.java @@ -23,7 +23,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.packing; import java.io.*; import java.nio.ByteBuffer; diff --git a/java/src/org/broadinstitute/sting/bwa/PackUtils.java b/java/src/org/broadinstitute/sting/alignment/bwa/packing/PackUtils.java similarity index 98% rename from java/src/org/broadinstitute/sting/bwa/PackUtils.java rename to java/src/org/broadinstitute/sting/alignment/bwa/packing/PackUtils.java index c3313f9e4..6fd175652 100644 --- a/java/src/org/broadinstitute/sting/bwa/PackUtils.java +++ b/java/src/org/broadinstitute/sting/alignment/bwa/packing/PackUtils.java @@ -1,4 +1,4 @@ -package org.broadinstitute.sting.bwa; +package org.broadinstitute.sting.alignment.bwa.packing; import org.broadinstitute.sting.utils.StingException;