From 50318755070a8898ff8a2a7ebb637b22099856ac Mon Sep 17 00:00:00 2001 From: hanna Date: Wed, 11 Mar 2009 20:58:01 +0000 Subject: [PATCH] Move to new directory organization. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@35 348d0f76-0448-11de-a6fe-93d51630548a --- .../mit/broad/sting/atk/GenotypeEvidence.java | 78 --- .../sting/atk/modules/GenotypeWalker.java | 88 ---- .../broad/sting/atk/modules/NullWalker.java | 44 -- .../atk/modules/SingleSampleGenotyper.java | 149 ------ {python => playground/c}/SeparateQltout.cc | 0 {java => playground/java}/build.xml | 2 +- {java => playground/java}/ivy.xml | 4 +- .../java}/settings/ivysettings.properties | 0 .../java}/settings/ivysettings.xml | 0 .../edu.mit.broad/picard-snapshot.jar | Bin .../edu.mit.broad/picard-snapshot.xml | 0 .../repository/net.sf/functionalj-1.0.jar | Bin .../repository/net.sf/functionalj-1.0.xml | 0 .../settings/repository/net.sf/sam-1.0.jar | Bin .../settings/repository/net.sf/sam-1.0.xml | 0 .../broadinstitute}/sting/ValidateSAM.java | 4 +- .../broadinstitute}/sting/atk/AnalysisTK.java | 13 +- .../sting/atk/LocusContext.java | 2 +- .../sting/atk/LocusIterator.java | 11 +- .../sting/atk/LocusWalker.java | 10 +- .../broadinstitute}/sting/atk/PrepareROD.java | 6 +- .../broadinstitute}/sting/atk/ReadWalker.java | 6 +- .../sting/atk/TraversalEngine.java | 454 ++++++------------ .../atk/modules/BaseQualityHistoWalker.java | 8 +- .../sting/atk/modules/BasicLociWalker.java | 8 +- .../sting/atk/modules/BasicReadWalker.java | 6 +- .../sting/atk/modules/CountLociWalker.java | 8 +- .../sting/atk/modules/CountReadsWalker.java | 4 +- .../sting/atk/modules/PileupWalker.java | 14 +- .../sting/atk/modules/PrintReadsWalker.java | 4 +- .../sting/utils/EndlessIterator.java | 2 +- .../sting/utils/FileProgressTracker.java | 2 +- .../sting/utils/GenomeLoc.java | 2 +- .../sting/utils/Predicate.java | 2 +- .../sting/utils/PushbackIterator.java | 2 +- .../sting/utils/ReferenceIterator.java | 2 +- .../sting/utils/ReferenceOrderedData.java | 2 +- .../sting/utils/ReferenceOrderedDatum.java | 2 +- .../broadinstitute}/sting/utils/Utils.java | 91 +--- .../sting/utils/WhitespaceTextFileParser.java | 2 +- .../broadinstitute}/sting/utils/rodDbSNP.java | 2 +- .../broadinstitute}/sting/utils/rodGFF.java | 2 +- {python => playground/python}/EvalMapping.py | 0 .../python}/FastaQuals2Fastq.py | 0 .../python}/MergeEvalMapTabs.py | 0 {python => playground/python}/SAM.py | 0 {python => playground/python}/SamWalk.py | 0 {python => playground/python}/SamWalkTest.py | 0 {python => playground/python}/SimpleSAM.py | 0 .../python}/SimulateReads.py | 0 .../python}/SpawnMapperJobs.py | 0 .../python}/SpawnValidationJobs.py | 0 {python => playground/python}/WalkLociTest.py | 0 {python => playground/python}/Walker.py | 0 .../python}/aln_file.nocvs.py | 0 {python => playground/python}/aln_file.py | 0 {python => playground/python}/compSNPCalls.py | 0 .../python}/countCoverageWithSamtools.py | 0 .../python}/farm_commands.py | 0 {python => playground/python}/fasta.py | 0 {python => playground/python}/memo.py | 0 .../python}/pushback_file.py | 0 {python => playground/python}/qltout.py | 0 {python => playground/python}/samtooltest.sh | 0 {python => playground/python}/tgtc2sam.py | 0 {scripts => playground/shell}/TraverseTest.sh | 0 .../shell}/TraverseTestProf.sh | 0 playground/shell/buildRODs.sh | 2 + scripts/buildRODs.sh | 2 - 69 files changed, 219 insertions(+), 821 deletions(-) delete mode 100755 java/src/edu/mit/broad/sting/atk/GenotypeEvidence.java delete mode 100755 java/src/edu/mit/broad/sting/atk/modules/GenotypeWalker.java delete mode 100644 java/src/edu/mit/broad/sting/atk/modules/NullWalker.java delete mode 100644 java/src/edu/mit/broad/sting/atk/modules/SingleSampleGenotyper.java rename {python => playground/c}/SeparateQltout.cc (100%) rename {java => playground/java}/build.xml (97%) rename {java => playground/java}/ivy.xml (61%) rename {java => playground/java}/settings/ivysettings.properties (100%) rename {java => playground/java}/settings/ivysettings.xml (100%) rename {java => playground/java}/settings/repository/edu.mit.broad/picard-snapshot.jar (100%) rename {java => playground/java}/settings/repository/edu.mit.broad/picard-snapshot.xml (100%) rename {java => playground/java}/settings/repository/net.sf/functionalj-1.0.jar (100%) rename {java => playground/java}/settings/repository/net.sf/functionalj-1.0.xml (100%) rename {java => playground/java}/settings/repository/net.sf/sam-1.0.jar (100%) rename {java => playground/java}/settings/repository/net.sf/sam-1.0.xml (100%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/ValidateSAM.java (96%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/AnalysisTK.java (92%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/LocusContext.java (94%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/LocusIterator.java (95%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/LocusWalker.java (75%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/PrepareROD.java (96%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/ReadWalker.java (80%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/TraversalEngine.java (61%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/modules/BaseQualityHistoWalker.java (88%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/modules/BasicLociWalker.java (82%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/modules/BasicReadWalker.java (85%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/modules/CountLociWalker.java (76%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/modules/CountReadsWalker.java (77%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/modules/PileupWalker.java (89%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/atk/modules/PrintReadsWalker.java (79%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/EndlessIterator.java (93%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/FileProgressTracker.java (99%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/GenomeLoc.java (99%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/Predicate.java (85%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/PushbackIterator.java (96%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/ReferenceIterator.java (99%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/ReferenceOrderedData.java (99%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/ReferenceOrderedDatum.java (95%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/Utils.java (58%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/WhitespaceTextFileParser.java (93%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/rodDbSNP.java (99%) rename {java/src/edu/mit/broad => playground/java/src/org/broadinstitute}/sting/utils/rodGFF.java (98%) rename {python => playground/python}/EvalMapping.py (100%) rename {python => playground/python}/FastaQuals2Fastq.py (100%) rename {python => playground/python}/MergeEvalMapTabs.py (100%) rename {python => playground/python}/SAM.py (100%) rename {python => playground/python}/SamWalk.py (100%) rename {python => playground/python}/SamWalkTest.py (100%) rename {python => playground/python}/SimpleSAM.py (100%) rename {python => playground/python}/SimulateReads.py (100%) rename {python => playground/python}/SpawnMapperJobs.py (100%) rename {python => playground/python}/SpawnValidationJobs.py (100%) rename {python => playground/python}/WalkLociTest.py (100%) rename {python => playground/python}/Walker.py (100%) rename {python => playground/python}/aln_file.nocvs.py (100%) rename {python => playground/python}/aln_file.py (100%) rename {python => playground/python}/compSNPCalls.py (100%) rename {python => playground/python}/countCoverageWithSamtools.py (100%) rename {python => playground/python}/farm_commands.py (100%) rename {python => playground/python}/fasta.py (100%) rename {python => playground/python}/memo.py (100%) rename {python => playground/python}/pushback_file.py (100%) rename {python => playground/python}/qltout.py (100%) rename {python => playground/python}/samtooltest.sh (100%) rename {python => playground/python}/tgtc2sam.py (100%) rename {scripts => playground/shell}/TraverseTest.sh (100%) rename {scripts => playground/shell}/TraverseTestProf.sh (100%) create mode 100755 playground/shell/buildRODs.sh delete mode 100755 scripts/buildRODs.sh diff --git a/java/src/edu/mit/broad/sting/atk/GenotypeEvidence.java b/java/src/edu/mit/broad/sting/atk/GenotypeEvidence.java deleted file mode 100755 index 60790a008..000000000 --- a/java/src/edu/mit/broad/sting/atk/GenotypeEvidence.java +++ /dev/null @@ -1,78 +0,0 @@ -package edu.mit.broad.sting.atk; - -/** - * Created by IntelliJ IDEA. - * User: andrewk - * Date: Mar 9, 2009 - * Time: 3:34:08 PM - * To change this template use File | Settings | File Templates. - */ -public class GenotypeEvidence { - - int[] nuc2num = new int[128]; - int[] nucs = new int[4]; - int a = nucs[0]; - int c = nucs[1]; - int t = nucs[2]; - int g = nucs[3]; - float[] nuc_pcnt = new float[4]; - char ref; - public float q; // % non-reference alleles - public int refbases; - public int allbases; - - public GenotypeEvidence(String bases, char ref){ - this.ref = ref; - nuc2num['A'] = 0; - nuc2num['C'] = 1; - nuc2num['T'] = 2; - nuc2num['G'] = 3; - nuc2num['a'] = 0; - nuc2num['c'] = 1; - nuc2num['t'] = 2; - nuc2num['g'] = 3; - - for (char b : bases.toCharArray()) { - nucs[nuc2num[b]] += 1; - /*switch (b) { - case 'A': nucs[0] += 1; break; - case 'C': nucs[1] += 1; break; - case 'T': nucs[2] += 1; break; - case 'G': nucs[3] += 1; break; - } */ - } - - // Calculate q = ref. bases / nonref. bases - refbases = nucs[nuc2num[ref]]; - allbases = bases.length(); - q = 1 - ((float)refbases / allbases); - - /*for (int i=0; i<4; i++) { - nuc_pcnt[i] = (float)nucs[i] / len; - //if - }*/ - } - - - public boolean SigNonref(float cutoff_fraction) { - /* for (char nuc : nucs) { - - }*/ - - - return true; - } - - public void print() { - - System.out.format("A %2d | ", nucs[0]); - System.out.format("C %2d | ", nucs[1]); - System.out.format("T %2d | ", nucs[2]); - System.out.format("G %2d | ", nucs[3]); - System.out.format("Ref %s | ", ref); - - } - - - -} diff --git a/java/src/edu/mit/broad/sting/atk/modules/GenotypeWalker.java b/java/src/edu/mit/broad/sting/atk/modules/GenotypeWalker.java deleted file mode 100755 index b15960380..000000000 --- a/java/src/edu/mit/broad/sting/atk/modules/GenotypeWalker.java +++ /dev/null @@ -1,88 +0,0 @@ -package edu.mit.broad.sting.atk.modules; - -import edu.mit.broad.sting.atk.LocusIterator; -import edu.mit.broad.sting.atk.GenotypeEvidence; -import edu.mit.broad.sting.utils.ReferenceOrderedDatum; -import net.sf.samtools.SAMRecord; - - -import java.util.List; -import static java.lang.System.currentTimeMillis; - -public class GenotypeWalker extends BasicLociWalker { - public Integer map(List rodData, char ref, LocusIterator context) { - //char[] = new char(26); - long start_tm = currentTimeMillis(); - List reads = context.getReads(); - List offsets = context.getOffsets(); - String bases = ""; - String quals = ""; - //String offsetString = ""; - for ( int i = 0; i < reads.size(); i++ ) { - SAMRecord read = reads.get(i); - int offset = offsets.get(i); - - //if ( offset >= read.getReadString().length() ) - // System.out.printf(" [%2d] [%s] %s%n", offset, read.format(), read.getReadString()); - - bases += read.getReadString().charAt(offset); - //quals += read.getBaseQualityString().charAt(offset); - //offsetString += i; - //System.out.printf(" [%2d] [%s] %s%n", offset, read.getReadString().charAt(offset), read.getReadString()); - } - - GenotypeEvidence all = new GenotypeEvidence(bases, ref); - - // P(q|G) - prob of nonref mixture given the genotype - float qobs = all.q; // observed percent of non-ref bases - double G; // % non-ref bases in observed - if (qobs >= 0.1) { - all.print(); - System.out.format("q %.2f | ", all.q); - System.out.format("%s | ", context.getLocation()); - System.out.format("Total %4d | ", context.numReads()); - System.out.println(); - for (int q = 0; q < all.allbases; q ++) { - for (G = 0.01; G <= 1.0; G += 0.49) { // iterate over: ref (0%), het (50%) and hom (100%) nonref bases observed - //double pqG = binomialProb(all.allbases - all.refbases, all.allbases, G); - double pqG = binomialProb(q, all.allbases, G); - //all.print(); - System.out.format("P(q|G) %.3f | ", pqG); - } - System.out.println(); - } - long stop_tm = currentTimeMillis(); - System.out.format("%.3fs\n", (float)(stop_tm - start_tm) / 1000); - } - return 1; - } - - static double binomialProb(int k, int n, double p) { - // k - numebr of successes - // n - number of Bernoulli trials - // p - probability of success - - return (double)nchoosek(n, k) * Math.pow(p, k) * Math.pow(1-p, n-k); - } - - static int nchoosek(int n, int k) { - int t = 1; - - int m = n - k; - if (k < m) { - k = m; - } - - for (int i = n, j = 1; i > k; i--, j++) { - t = t * i / j; - } - - return t; - } - - public Integer reduceInit() { return 0; } - - public Integer reduce(Integer value, Integer sum) { - return value + sum; - } -} \ No newline at end of file diff --git a/java/src/edu/mit/broad/sting/atk/modules/NullWalker.java b/java/src/edu/mit/broad/sting/atk/modules/NullWalker.java deleted file mode 100644 index a10e18136..000000000 --- a/java/src/edu/mit/broad/sting/atk/modules/NullWalker.java +++ /dev/null @@ -1,44 +0,0 @@ -package edu.mit.broad.sting.atk.modules; - -import edu.mit.broad.sting.atk.LocusWalker; -import edu.mit.broad.sting.atk.LocusIterator; -import edu.mit.broad.sting.utils.ReferenceOrderedDatum; -import edu.mit.broad.sting.utils.rodDbSNP; -import edu.mit.broad.sting.utils.Utils; -import net.sf.samtools.SAMRecord; - -import java.util.List; - -// Null traversal. For ATK performance measuring. -// j.maguire 3-7-2009 - -public class NullWalker implements LocusWalker { - public void initialize() { - } - - public String walkerType() { return "ByLocus"; } - - // Do we actually want to operate on the context? - public boolean filter(List rodData, char ref, LocusIterator context) { - return true; // We are keeping all the reads - } - - // Map over the edu.mit.broad.sting.atk.LocusContext - public Integer map(List rodData, char ref, LocusIterator context) - { - return 1; - } - - // Given result of map function - public Integer reduceInit() - { - return 0; - } - public Integer reduce(Integer value, Integer sum) - { - return 0; - } - - public void onTraveralDone() { - } -} diff --git a/java/src/edu/mit/broad/sting/atk/modules/SingleSampleGenotyper.java b/java/src/edu/mit/broad/sting/atk/modules/SingleSampleGenotyper.java deleted file mode 100644 index 9ca7e87a3..000000000 --- a/java/src/edu/mit/broad/sting/atk/modules/SingleSampleGenotyper.java +++ /dev/null @@ -1,149 +0,0 @@ -package edu.mit.broad.sting.atk.modules; - -import edu.mit.broad.sting.atk.LocusWalker; -import edu.mit.broad.sting.atk.LocusIterator; -import edu.mit.broad.sting.utils.ReferenceOrderedDatum; -import edu.mit.broad.sting.utils.rodDbSNP; -import edu.mit.broad.sting.utils.Utils; -import net.sf.samtools.SAMRecord; - -import java.util.List; - -// Draft single sample genotyper -// j.maguire 3-7-2009 - -public class SingleSampleGenotyper implements LocusWalker { - public void initialize() { - } - - public String walkerType() { return "ByLocus"; } - - // Do we actually want to operate on the context? - public boolean filter(List rodData, char ref, LocusIterator context) { - return true; // We are keeping all the reads - } - - protected class GenotypeLikelihoods - { - public double[] likelihoods; - public String[] genotypes; - - GenotypeLikelihoods() - { - likelihoods = new double[10]; - genotypes = new String[10]; - - genotypes[0] = "AA"; - genotypes[1] = "AC"; - genotypes[2] = "AG"; - genotypes[3] = "AT"; - genotypes[4] = "CC"; - genotypes[5] = "CG"; - genotypes[6] = "CT"; - genotypes[7] = "GG"; - genotypes[8] = "GT"; - genotypes[9] = "TT"; - } - - void add(char ref, char read, byte qual) - { - double p_error = Math.pow(10.0, (double)qual / -10); - for (int i = 0; i < genotypes.length; i++) - { - likelihoods[i] += AlleleLikelihood(ref, read, genotypes[i], p_error); - } - } - - double AlleleLikelihood(char ref, char read, String genotype, double p_error) - { - char h1 = genotype.charAt(0); - char h2 = genotype.charAt(1); - - double p_base; - - if ((h1 == h2) && (h1 == read)) { p_base = Math.log10(1-p_error); } - else if ((h1 != h2) && (h1 == read) || (h2 == read)) { p_base = Math.log10(0.5 - (p_error/2.0)); } - else { p_base = Math.log10(p_error); } - - return p_base; - } - - public String toString() - { - Integer[] permutation = Utils.SortPermutation(likelihoods); - String[] sorted_genotypes = Utils.PermuteArray(genotypes, permutation); - double[] sorted_likelihoods = Utils.PermuteArray(likelihoods, permutation); - - String s = ""; - for (int i = sorted_genotypes.length-1; i >= 0; i--) - { - if (i != sorted_genotypes.length-1) { s = s + " "; } - s = s + sorted_genotypes[i] + ":" + sorted_likelihoods[i]; - } - return s; - } - - } - - // Map over the edu.mit.broad.sting.atk.LocusContext - public Integer map(List rodData, char ref, LocusIterator context) { - //System.out.printf("Reads %s:%d %d%n", context.getContig(), context.getPosition(), context.getReads().size()); - //for ( SAMRecord read : context.getReads() ) { - // System.out.println(" -> " + read.getReadName()); - //} - - List reads = context.getReads(); - List offsets = context.getOffsets(); - String bases = ""; - String quals = ""; - //String offsetString = ""; - - // Look up hapmap and dbsnp priors - String rodString = ""; - for ( ReferenceOrderedDatum datum : rodData ) - { - if ( datum != null ) - { - if ( datum instanceof rodDbSNP) - { - rodDbSNP dbsnp = (rodDbSNP)datum; - rodString += dbsnp.toMediumString(); - } - else - { - rodString += datum.toSimpleString(); - } - } - } - if ( rodString != "" ) - rodString = "[ROD: " + rodString + "]"; - - // Accumulate genotype likelihoods - GenotypeLikelihoods G = new GenotypeLikelihoods(); - for ( int i = 0; i < reads.size(); i++ ) - { - SAMRecord read = reads.get(i); - int offset = offsets.get(i); - bases += read.getReadString().charAt(offset); - quals += read.getBaseQualityString().charAt(offset); - - G.add(ref, read.getReadString().charAt(offset), read.getBaseQualities()[offset]); - } - - if ( context.getLocation().getStart() % 1 == 0 ) { - //System.out.printf("%s: %s %s %s %s%n", context.getLocation(), ref, bases, quals, rodString); - System.out.printf("%s %s %s %s\n", ref, bases, G.toString(), rodString); - } - - return 1; - } - - // Given result of map function - public Integer reduceInit() { return 0; } - public Integer reduce(Integer value, Integer sum) { - return value + sum; - } - - public void onTraveralDone() { - } -} diff --git a/python/SeparateQltout.cc b/playground/c/SeparateQltout.cc similarity index 100% rename from python/SeparateQltout.cc rename to playground/c/SeparateQltout.cc diff --git a/java/build.xml b/playground/java/build.xml similarity index 97% rename from java/build.xml rename to playground/java/build.xml index 173b12dd6..5e71b5d9a 100644 --- a/java/build.xml +++ b/playground/java/build.xml @@ -71,7 +71,7 @@ - + diff --git a/java/ivy.xml b/playground/java/ivy.xml similarity index 61% rename from java/ivy.xml rename to playground/java/ivy.xml index a76fa3ca7..2d98e5f4b 100644 --- a/java/ivy.xml +++ b/playground/java/ivy.xml @@ -1,8 +1,8 @@ - + - + diff --git a/java/settings/ivysettings.properties b/playground/java/settings/ivysettings.properties similarity index 100% rename from java/settings/ivysettings.properties rename to playground/java/settings/ivysettings.properties diff --git a/java/settings/ivysettings.xml b/playground/java/settings/ivysettings.xml similarity index 100% rename from java/settings/ivysettings.xml rename to playground/java/settings/ivysettings.xml diff --git a/java/settings/repository/edu.mit.broad/picard-snapshot.jar b/playground/java/settings/repository/edu.mit.broad/picard-snapshot.jar similarity index 100% rename from java/settings/repository/edu.mit.broad/picard-snapshot.jar rename to playground/java/settings/repository/edu.mit.broad/picard-snapshot.jar diff --git a/java/settings/repository/edu.mit.broad/picard-snapshot.xml b/playground/java/settings/repository/edu.mit.broad/picard-snapshot.xml similarity index 100% rename from java/settings/repository/edu.mit.broad/picard-snapshot.xml rename to playground/java/settings/repository/edu.mit.broad/picard-snapshot.xml diff --git a/java/settings/repository/net.sf/functionalj-1.0.jar b/playground/java/settings/repository/net.sf/functionalj-1.0.jar similarity index 100% rename from java/settings/repository/net.sf/functionalj-1.0.jar rename to playground/java/settings/repository/net.sf/functionalj-1.0.jar diff --git a/java/settings/repository/net.sf/functionalj-1.0.xml b/playground/java/settings/repository/net.sf/functionalj-1.0.xml similarity index 100% rename from java/settings/repository/net.sf/functionalj-1.0.xml rename to playground/java/settings/repository/net.sf/functionalj-1.0.xml diff --git a/java/settings/repository/net.sf/sam-1.0.jar b/playground/java/settings/repository/net.sf/sam-1.0.jar similarity index 100% rename from java/settings/repository/net.sf/sam-1.0.jar rename to playground/java/settings/repository/net.sf/sam-1.0.jar diff --git a/java/settings/repository/net.sf/sam-1.0.xml b/playground/java/settings/repository/net.sf/sam-1.0.xml similarity index 100% rename from java/settings/repository/net.sf/sam-1.0.xml rename to playground/java/settings/repository/net.sf/sam-1.0.xml diff --git a/java/src/edu/mit/broad/sting/ValidateSAM.java b/playground/java/src/org/broadinstitute/sting/ValidateSAM.java similarity index 96% rename from java/src/edu/mit/broad/sting/ValidateSAM.java rename to playground/java/src/org/broadinstitute/sting/ValidateSAM.java index 841d88ccc..35ae388fc 100755 --- a/java/src/edu/mit/broad/sting/ValidateSAM.java +++ b/playground/java/src/org/broadinstitute/sting/ValidateSAM.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting; +package org.broadinstitute.sting; import net.sf.samtools.*; import net.sf.samtools.SAMFileReader.ValidationStringency; @@ -76,7 +76,7 @@ public class ValidateSAM extends CommandLineProgram { } private static void usage() { - System.err.println("USAGE: edu.mit.broad.sting.ValidateSAM "); + System.err.println("USAGE: org.broadinstitute.sting.ValidateSAM "); } private SAMFileReader getSamReader(final File samFile) { diff --git a/java/src/edu/mit/broad/sting/atk/AnalysisTK.java b/playground/java/src/org/broadinstitute/sting/atk/AnalysisTK.java similarity index 92% rename from java/src/edu/mit/broad/sting/atk/AnalysisTK.java rename to playground/java/src/org/broadinstitute/sting/atk/AnalysisTK.java index b0f71b91e..4a7c7b699 100644 --- a/java/src/edu/mit/broad/sting/atk/AnalysisTK.java +++ b/playground/java/src/org/broadinstitute/sting/atk/AnalysisTK.java @@ -1,14 +1,14 @@ -package edu.mit.broad.sting.atk; +package org.broadinstitute.sting.atk; import net.sf.samtools.SAMFileReader.ValidationStringency; import edu.mit.broad.picard.cmdline.CommandLineProgram; import edu.mit.broad.picard.cmdline.Usage; import edu.mit.broad.picard.cmdline.Option; -import edu.mit.broad.sting.atk.modules.*; -import edu.mit.broad.sting.utils.ReferenceOrderedData; -import edu.mit.broad.sting.utils.rodGFF; -import edu.mit.broad.sting.utils.rodDbSNP; +import org.broadinstitute.sting.atk.modules.*; +import org.broadinstitute.sting.utils.ReferenceOrderedData; +import org.broadinstitute.sting.utils.rodGFF; +import org.broadinstitute.sting.utils.rodDbSNP; import java.io.*; import java.util.HashMap; @@ -37,9 +37,6 @@ public class AnalysisTK extends CommandLineProgram { addModule("CountReads", new CountReadsWalker()); addModule("PrintReads", new PrintReadsWalker()); addModule("Base_Quality_Histogram", new BaseQualityHistoWalker()); - addModule("Genotype", new GenotypeWalker()); - addModule("SingleSampleGenotyper", new SingleSampleGenotyper()); - addModule("Null", new NullWalker()); } private TraversalEngine engine = null; diff --git a/java/src/edu/mit/broad/sting/atk/LocusContext.java b/playground/java/src/org/broadinstitute/sting/atk/LocusContext.java similarity index 94% rename from java/src/edu/mit/broad/sting/atk/LocusContext.java rename to playground/java/src/org/broadinstitute/sting/atk/LocusContext.java index b8b9c23e2..2a5552e04 100755 --- a/java/src/edu/mit/broad/sting/atk/LocusContext.java +++ b/playground/java/src/org/broadinstitute/sting/atk/LocusContext.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.atk; +package org.broadinstitute.sting.atk; import net.sf.samtools.SAMRecord; diff --git a/java/src/edu/mit/broad/sting/atk/LocusIterator.java b/playground/java/src/org/broadinstitute/sting/atk/LocusIterator.java similarity index 95% rename from java/src/edu/mit/broad/sting/atk/LocusIterator.java rename to playground/java/src/org/broadinstitute/sting/atk/LocusIterator.java index da7f73e07..84bb9bb08 100755 --- a/java/src/edu/mit/broad/sting/atk/LocusIterator.java +++ b/playground/java/src/org/broadinstitute/sting/atk/LocusIterator.java @@ -1,11 +1,11 @@ -package edu.mit.broad.sting.atk; +package org.broadinstitute.sting.atk; import net.sf.samtools.util.CloseableIterator; import net.sf.samtools.SAMRecord; -import edu.mit.broad.sting.utils.PushbackIterator; -import edu.mit.broad.sting.utils.Utils; -import edu.mit.broad.sting.utils.Predicate; -import edu.mit.broad.sting.utils.GenomeLoc; +import org.broadinstitute.sting.utils.PushbackIterator; +import org.broadinstitute.sting.utils.Utils; +import org.broadinstitute.sting.utils.Predicate; +import org.broadinstitute.sting.utils.GenomeLoc; import java.util.List; import java.util.ArrayList; @@ -33,7 +33,6 @@ public class LocusIterator implements Iterable, CloseableIterator public List getReads() { return reads; } public List getOffsets() { return offsets; } - public int numReads() { return reads.size(); } // ----------------------------------------------------------------------------------------------------------------- // diff --git a/java/src/edu/mit/broad/sting/atk/LocusWalker.java b/playground/java/src/org/broadinstitute/sting/atk/LocusWalker.java similarity index 75% rename from java/src/edu/mit/broad/sting/atk/LocusWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/LocusWalker.java index 72faf4a4c..275e93da0 100755 --- a/java/src/edu/mit/broad/sting/atk/LocusWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/LocusWalker.java @@ -1,7 +1,7 @@ -package edu.mit.broad.sting.atk; +package org.broadinstitute.sting.atk; -import edu.mit.broad.sting.atk.LocusIterator; -import edu.mit.broad.sting.utils.ReferenceOrderedDatum; +import org.broadinstitute.sting.atk.LocusIterator; +import org.broadinstitute.sting.utils.ReferenceOrderedDatum; import java.util.List; @@ -19,7 +19,7 @@ public interface LocusWalker { // Do we actually want to operate on the context? boolean filter(List rodData, char ref, LocusIterator context); - // Map over the edu.mit.broad.sting.atk.LocusContext + // Map over the org.broadinstitute.sting.atk.LocusContext MapType map(List rodData, char ref, LocusIterator context); // Given result of map function @@ -27,4 +27,4 @@ public interface LocusWalker { ReduceType reduce(MapType value, ReduceType sum); void onTraveralDone(); -} \ No newline at end of file +} diff --git a/java/src/edu/mit/broad/sting/atk/PrepareROD.java b/playground/java/src/org/broadinstitute/sting/atk/PrepareROD.java similarity index 96% rename from java/src/edu/mit/broad/sting/atk/PrepareROD.java rename to playground/java/src/org/broadinstitute/sting/atk/PrepareROD.java index aa379f12d..c393f2afc 100644 --- a/java/src/edu/mit/broad/sting/atk/PrepareROD.java +++ b/playground/java/src/org/broadinstitute/sting/atk/PrepareROD.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.atk; +package org.broadinstitute.sting.atk; import net.sf.samtools.SAMFileReader.ValidationStringency; import net.sf.samtools.SAMSequenceRecord; @@ -9,8 +9,8 @@ import edu.mit.broad.picard.reference.ReferenceSequenceFileFactory; import edu.mit.broad.picard.reference.ReferenceSequence; import edu.mit.broad.picard.reference.ReferenceSequenceFile; -import edu.mit.broad.sting.atk.modules.*; -import edu.mit.broad.sting.utils.*; +import org.broadinstitute.sting.atk.modules.*; +import org.broadinstitute.sting.utils.*; import java.io.*; import java.util.HashMap; diff --git a/java/src/edu/mit/broad/sting/atk/ReadWalker.java b/playground/java/src/org/broadinstitute/sting/atk/ReadWalker.java similarity index 80% rename from java/src/edu/mit/broad/sting/atk/ReadWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/ReadWalker.java index 13374a4e8..d063ef976 100755 --- a/java/src/edu/mit/broad/sting/atk/ReadWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/ReadWalker.java @@ -1,7 +1,7 @@ -package edu.mit.broad.sting.atk; +package org.broadinstitute.sting.atk; import net.sf.samtools.SAMRecord; -import edu.mit.broad.sting.atk.LocusContext; +import org.broadinstitute.sting.atk.LocusContext; /** * Created by IntelliJ IDEA. @@ -17,7 +17,7 @@ public interface ReadWalker { // Do we actually want to operate on the context? boolean filter(LocusContext context, SAMRecord read); - // Map over the edu.mit.broad.sting.atk.LocusContext + // Map over the org.broadinstitute.sting.atk.LocusContext MapType map(LocusContext context, SAMRecord read); // Given result of map function diff --git a/java/src/edu/mit/broad/sting/atk/TraversalEngine.java b/playground/java/src/org/broadinstitute/sting/atk/TraversalEngine.java similarity index 61% rename from java/src/edu/mit/broad/sting/atk/TraversalEngine.java rename to playground/java/src/org/broadinstitute/sting/atk/TraversalEngine.java index cb424aa1b..adf6205e9 100755 --- a/java/src/edu/mit/broad/sting/atk/TraversalEngine.java +++ b/playground/java/src/org/broadinstitute/sting/atk/TraversalEngine.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.atk; +package org.broadinstitute.sting.atk; import net.sf.samtools.*; import net.sf.samtools.SAMFileReader.ValidationStringency; @@ -8,7 +8,7 @@ import edu.mit.broad.picard.filter.SamRecordFilter; import edu.mit.broad.picard.filter.FilteringIterator; import edu.mit.broad.picard.reference.ReferenceSequenceFile; import edu.mit.broad.picard.reference.ReferenceSequenceFileFactory; -import edu.mit.broad.sting.utils.*; +import org.broadinstitute.sting.utils.*; import java.io.*; import java.util.*; @@ -22,51 +22,35 @@ import net.sf.functionalj.util.Operators; public class TraversalEngine { // Usage and parameters - private List rods = null; // list of reference ordered data objects + private File readsFile = null; + private File refFileName = null; + private List rods = null; - //private String regionStr = null; // String dec - //private String traversalType = null; // String describing this traversal type - - // How strict should we be with SAM/BAM parsing? + private String regionStr = null; + private String traversalType = null; private ValidationStringency strictness = ValidationStringency.STRICT; - // Time in milliseconds since we initialized this engine private long startTime = -1; - private long lastProgressPrintTime = -1; // When was the last time we printed our progress? - - // How long can we go without printing some progress info? - private long MAX_PROGRESS_PRINT_TIME = 10 * 1000; // 10 seconds in millisecs - - // Maximum number of reads to process before finishing + private long lastProgressPrintTime = -1; + private long MAX_PROGRESS_PRINT_TIME = 5 * 1000; // 10 seconds in millisecs private long maxReads = -1; - - // Name of the reads file, in BAM/SAM format - private File readsFile = null; // the name of the reads file - // iterator over the sam records in the readsFile - private Iterator samReadIter = null; - - // The reference data -- filename, refSeqFile, and iterator - private File refFileName = null; // the name of the reference file + private long nRecords = 0; + private SAMFileReader samReader = null; private ReferenceSequenceFile refFile = null; private ReferenceIterator refIter = null; + private SAMFileReader readStream; + private Iterator samReadIter = null; - // Number of records (loci, reads) we've processed - private long nRecords = 0; - // How many reads have we processed, along with those skipped for various reasons private int nReads = 0; private int nSkippedReads = 0; private int nUnmappedReads = 0; private int nNotPrimary = 0; private int nBadAlignments = 0; private int nSkippedIndels = 0; - - // Progress tracker for the sam file private FileProgressTracker samReadingTracker = null; public boolean DEBUGGING = false; - public long N_RECORDS_TO_PRINT = 100000; - // Locations we are going to process during the traversal private GenomeLoc[] locs = null; // -------------------------------------------------------------------------------------------------------------- @@ -74,191 +58,13 @@ public class TraversalEngine { // Setting up the engine // // -------------------------------------------------------------------------------------------------------------- - - /** - * Creates a new, uninitialized TraversalEngine - * - * @param reads SAM/BAM file of reads - * @param ref Reference file in FASTA format, assumes a .dict file is also available - * @param rods Array of reference ordered data sets - */ public TraversalEngine(File reads, File ref, ReferenceOrderedData[] rods ) { readsFile = reads; refFileName = ref; this.rods = Arrays.asList(rods); } - // -------------------------------------------------------------------------------------------------------------- - // - // Manipulating the underlying engine parameters - // - // -------------------------------------------------------------------------------------------------------------- - //public void setRegion(final String reg) { regionStr = regionStr; } - //public void setTraversalType(final String type) { traversalType = type; } - public void setStrictness( final ValidationStringency s ) { strictness = s; } - public void setMaxReads( final int maxReads ) { this.maxReads = maxReads; } - public void setDebugging( final boolean d ) { DEBUGGING = d; } - - // -------------------------------------------------------------------------------------------------------------- - // - // functions for dealing locations (areas of the genome we're traversing over) - // - // -------------------------------------------------------------------------------------------------------------- - - /** - * Parses the location string locStr and sets the traversal engine to only process - * regions specified by the location string. The string is of the form: - * Of the form: loc1;loc2;... - * Where each locN can be: - * Ôchr2Õ, Ôchr2:1000000Õ or Ôchr2:1,000,000-2,000,000Õ - * - * @param locStr - */ - public void setLocation( final String locStr ) { - this.locs = parseGenomeLocs(locStr); - } - - /** - * Useful utility function that parses a location string into a coordinate-order sorted - * array of GenomeLoc objects - * - * @param str - * @return Array of GenomeLoc objects corresponding to the locations in the string, sorted by coordinate order - */ - public static GenomeLoc[] parseGenomeLocs( final String str ) { - // Of the form: loc1;loc2;... - // Where each locN can be: - // Ôchr2Õ, Ôchr2:1000000Õ or Ôchr2:1,000,000-2,000,000Õ - StdReflect reflect = new JdkStdReflect(); - FunctionN parseOne = reflect.staticFunction(GenomeLoc.class, "parseGenomeLoc", String.class); - Function1 f1 = parseOne.f1(); - Collection result = Functions.map(f1, Arrays.asList(str.split(";"))); - GenomeLoc[] locs = (GenomeLoc[])result.toArray(new GenomeLoc[0]); - - Arrays.sort(locs); - for ( GenomeLoc l : locs ) - System.out.printf(" -> %s%n", l); - - System.out.printf(" Locations are: %s%n", Utils.join(" ", Functions.map( Operators.toString, Arrays.asList(locs) ) ) ); - - return locs; - } - - /** - * A key function that returns true if the proposed GenomeLoc curr is within the list of - * locations we are processing in this TraversalEngine - * - * @param curr - * @return true if we should process GenomeLoc curr, otherwise false - */ - public boolean inLocations( GenomeLoc curr ) { - if ( this.locs == null ) - return true; - else { - for ( GenomeLoc loc : this.locs ) { - //System.out.printf(" Overlap %s vs. %s => %b%n", loc, curr, loc.overlapsP(curr)); - if ( loc.overlapsP(curr) ) - return true; - } - return false; - } - } - - /** - * Returns true iff we have a specified series of locations to process AND we are past the last - * location in the list. It means that, in a serial processing of the genome, that we are done. - * - * @param curr Current genome Location - * @return true if we are past the last location to process - */ - private boolean pastFinalLocation( GenomeLoc curr ) { - boolean r = locs != null && locs[locs.length-1].compareTo( curr ) == -1 && ! locs[locs.length-1].overlapsP(curr); - //System.out.printf(" pastFinalLocation %s vs. %s => %d => %b%n", locs[locs.length-1], curr, locs[locs.length-1].compareTo( curr ), r); - return r; - } - - // -------------------------------------------------------------------------------------------------------------- - // - // printing - // - // -------------------------------------------------------------------------------------------------------------- - - /** - * - * @param curTime (current runtime, in millisecs) - * @return true if the maximum interval (in millisecs) has passed since the last printing - */ - private boolean maxElapsedIntervalForPrinting(final long curTime) { - return (curTime - this.lastProgressPrintTime) > MAX_PROGRESS_PRINT_TIME; - } - - /** - * Forward request to printProgress - * - * @param type - * @param loc - */ - public void printProgress(final String type, GenomeLoc loc) { - printProgress( false, type, loc ); - } - - /** - * Utility routine that prints out process information (including timing) every N records or - * every M seconds, for N and M set in global variables. - * - * @param mustPrint If true, will print out info, regardless of nRecords or time interval - * @param type String to print out describing our atomic traversal type ("read", "locus", etc) - * @param loc Current location - */ - public void printProgress( boolean mustPrint, final String type, GenomeLoc loc ) { - final long nRecords = this.nRecords; - final long curTime = System.currentTimeMillis(); - final double elapsed = (curTime - startTime) / 1000.0; - //System.out.printf("Cur = %d, last print = %d%n", curTime, lastProgressPrintTime); - - if ( mustPrint || nRecords % N_RECORDS_TO_PRINT == 0 || maxElapsedIntervalForPrinting(curTime)) { - this.lastProgressPrintTime = curTime; - final double secsPer1MReads = (elapsed * 1000000.0) / nRecords; - if ( loc != null ) - System.out.printf("[PROGRESS] Traversed to %s, processing %,d %s in %.2f secs (%.2f secs per 1M %s)%n", loc, nRecords, type, elapsed, secsPer1MReads, type); - else - System.out.printf("[PROGRESS] Traversed %,d %s in %.2f secs (%.2f secs per 1M %s)%n", nRecords, type, elapsed, secsPer1MReads, type); - - // Currently samReadingTracker will print misleading info if we're not processing the whole file - if ( this.locs == null ) - System.out.printf("[PROGRESS] -> %s%n", samReadingTracker.progressMeter()); - } - } - - /** - * Called after a traversal to print out information about the traversal process - * - * @param type String describing this type of traversal ("loci", "read") - * @param sum The reduce result of the traversal - * @param ReduceType of the traversal - */ - protected void printOnTraversalDone( final String type, T sum ) { - printProgress( true, type, null ); - System.out.println("Traversal reduce result is " + sum); - System.out.printf("Traversal skipped %d reads out of %d total (%.2f%%)%n", nSkippedReads, nReads, (nSkippedReads * 100.0) / nReads); - System.out.printf(" -> %d unmapped reads%n", nUnmappedReads ); - System.out.printf(" -> %d non-primary reads%n", nNotPrimary ); - System.out.printf(" -> %d reads with bad alignments%n", nBadAlignments ); - System.out.printf(" -> %d reads with indels%n", nSkippedIndels ); - } - - // -------------------------------------------------------------------------------------------------------------- - // - // Initialization - // - // -------------------------------------------------------------------------------------------------------------- - - /** - * Initialize the traversal engine. After this point traversals can be run over the data - * - * @return true on success - */ - public boolean initialize() { + protected int initialize() { lastProgressPrintTime = startTime = System.currentTimeMillis(); loadReference(); //testReference(); @@ -280,14 +86,105 @@ public class TraversalEngine { throw new RuntimeIOException(e); } - return true; + return 0; + } + + public void setRegion(final String reg) { regionStr = regionStr; } + public void setTraversalType(final String type) { traversalType = type; } + public void setStrictness( final ValidationStringency s ) { strictness = s; } + public void setMaxReads( final int maxReads ) { this.maxReads = maxReads; } + public void setDebugging( final boolean d ) { DEBUGGING = d; } + + + // -------------------------------------------------------------------------------------------------------------- + // + // functions for dealing locations (areas of the genome we're traversing over) + // + // -------------------------------------------------------------------------------------------------------------- + public void setLocation( final String locStr ) { + this.locs = parseGenomeLocs(locStr); } + public static GenomeLoc[] parseGenomeLocs( final String str ) { + // Of the form: loc1;loc2;... + // Where each locN can be: + // Ôchr2Õ, Ôchr2:1000000Õ or Ôchr2:1,000,000-2,000,000Õ + StdReflect reflect = new JdkStdReflect(); + FunctionN parseOne = reflect.staticFunction(GenomeLoc.class, "parseGenomeLoc", String.class); + Function1 f1 = parseOne.f1(); + Collection result = Functions.map(f1, Arrays.asList(str.split(";"))); + GenomeLoc[] locs = (GenomeLoc[])result.toArray(new GenomeLoc[0]); + Arrays.sort(locs); + for ( GenomeLoc l : locs ) + System.out.printf(" -> %s%n", l); + + System.out.printf(" Locations are: %s%n", Utils.join(" ", Functions.map( Operators.toString, Arrays.asList(locs) ) ) ); + + return locs; + } + + public boolean inLocations( GenomeLoc curr ) { + if ( this.locs == null ) + return true; + else { + for ( GenomeLoc loc : this.locs ) { + //System.out.printf(" Overlap %s vs. %s => %b%n", loc, curr, loc.overlapsP(curr)); + if ( loc.overlapsP(curr) ) + return true; + } + return false; + } + } + + public boolean pastFinalLocation( GenomeLoc curr ) { + boolean r = locs != null && locs[locs.length-1].compareTo( curr ) == -1 && ! locs[locs.length-1].overlapsP(curr); + //System.out.printf(" pastFinalLocation %s vs. %s => %d => %b%n", locs[locs.length-1], curr, locs[locs.length-1].compareTo( curr ), r); + return r; + } + + // -------------------------------------------------------------------------------------------------------------- + // + // functions for dealing with the reference sequence + // + // -------------------------------------------------------------------------------------------------------------- /** - * Prepare the reference for stream processing * + * @param curTime (current runtime, in millisecs) + * @return true if the maximum interval (in millisecs) has passed since the last printing */ + + private boolean maxElapsedIntervalForPrinting(final long curTime) { + return (curTime - this.lastProgressPrintTime) > MAX_PROGRESS_PRINT_TIME; + } + + public void printProgress(final String type, GenomeLoc loc) { printProgress( false, type, loc ); } + + public void printProgress( boolean mustPrint, final String type, GenomeLoc loc ) { + final long nRecords = this.nRecords; + final long curTime = System.currentTimeMillis(); + final double elapsed = (curTime - startTime) / 1000.0; + //System.out.printf("Cur = %d, last print = %d%n", curTime, lastProgressPrintTime); + + if ( mustPrint || nRecords % 100000 == 0 || maxElapsedIntervalForPrinting(curTime)) { + this.lastProgressPrintTime = curTime; + final double secsPer1MReads = (elapsed * 1000000.0) / nRecords; + if ( loc != null ) + System.out.printf("[PROGRESS] Traversed to %s, processing %d %s %.2f secs (%.2f secs per 1M %s)%n", loc, nRecords, type, elapsed, secsPer1MReads, type); + else + System.out.printf("[PROGRESS] Traversed %d %s %.2f secs (%.2f secs per 1M %s)%n", nRecords, type, elapsed, secsPer1MReads, type); + + if ( this.locs == null ) + System.out.printf("[PROGRESS] -> %s%n", samReadingTracker.progressMeter()); + } + } + + // -------------------------------------------------------------------------------------------------------------- + // + // functions for dealing with the reference sequence + // + // -------------------------------------------------------------------------------------------------------------- + protected void loadReference() { if ( refFileName!= null ) { this.refFile = ReferenceSequenceFileFactory.getReferenceSequenceFile(refFileName); @@ -296,11 +193,29 @@ public class TraversalEngine { } } - /** - * Prepare the list of reference ordered data iterators for each of the rods - * - * @return A list of ROD iterators for getting data from each ROD - */ + protected void testReference() { + String line = ""; + refIter.seekForward("chr20", 79); + for ( int i = 0; i < this.maxReads && refIter.hasNext(); i++ ) { + final ReferenceIterator refSite = refIter.next(); + final char refBase = refSite.getBaseAsChar(); + line += refBase; + if ( (i + 1) % 80 == 0 ) { + System.out.println(line); + line = ""; + } + //System.out.printf(" Reference: %s:%d %c%n", refSite.getCurrentContig().getName(), refSite.getPosition(), refBase); + } + System.out.println(line); + System.exit(1); + } + + // -------------------------------------------------------------------------------------------------------------- + // + // dealing with reference ordered data + // + // -------------------------------------------------------------------------------------------------------------- + protected List initializeRODs() { // set up reference ordered data List rodIters = new ArrayList(); @@ -310,38 +225,6 @@ public class TraversalEngine { return rodIters; } -// protected void testReference() { -// String line = ""; -// refIter.seekForward("chr20", 79); -// for ( int i = 0; i < this.maxReads && refIter.hasNext(); i++ ) { -// final ReferenceIterator refSite = refIter.next(); -// final char refBase = refSite.getBaseAsChar(); -// line += refBase; -// if ( (i + 1) % 80 == 0 ) { -// System.out.println(line); -// line = ""; -// } -// //System.out.printf(" Reference: %s:%d %c%n", refSite.getCurrentContig().getName(), refSite.getPosition(), refBase); -// } -// System.out.println(line); -// System.exit(1); -// } - - // -------------------------------------------------------------------------------------------------------------- - // - // dealing with reference ordered data - // - // -------------------------------------------------------------------------------------------------------------- - - /** - * Builds a list of the reference ordered datum at loc from each of the iterators. This function - * assumes you are accessing the data in order. You can't use this function for random access. Each - * successive call moves you along the file, consuming all data before loc. - * - * @param rodIters Iterators to access the RODs - * @param loc The location to get the rods at - * @return A list of ReferenceOrderDatum at loc. ROD without a datum at loc will be null in the list - */ protected List getReferenceOrderedDataAtLocus(List rodIters, final GenomeLoc loc) { List data = new ArrayList(); @@ -357,13 +240,6 @@ public class TraversalEngine { // traversal by loci functions // // -------------------------------------------------------------------------------------------------------------- - - /** - * Class to filter out un-handle-able reads from the stream. We currently are skipping - * unmapped reads, non-primary reads, unaligned reads, and those with indels. We should - * really change this to handle indel containing reads. - * - */ class locusStreamFilterFunc implements SamRecordFilter { public boolean filterOut(SAMRecord rec) { boolean result = false; @@ -404,30 +280,15 @@ public class TraversalEngine { } } - /** - * Traverse by loci -- the key driver of linearly ordered traversal of loci. Provides reads, RODs, and - * the reference base for each locus in the reference to the LocusWalker walker. Supports all of the - * interaction contract implied by the locus walker - * - * @param walker A locus walker object - * @param MapType -- the result of calling map() on walker - * @param ReduceType -- the result of calling reduce() on the walker - * @return 0 on success - */ protected int traverseByLoci(LocusWalker walker) { - // prepare the read filtering read iterator and provide it to a new locus iterator + walker.initialize(); FilteringIterator filterIter = new FilteringIterator(samReadIter, new locusStreamFilterFunc()); CloseableIterator iter = new LocusIterator(filterIter); - // Initial the reference ordered data iterators List rodIters = initializeRODs(); - // initialize the walker object - walker.initialize(); - // Initialize the T sum using the walker T sum = walker.reduceInit(); boolean done = false; - while ( iter.hasNext() && ! done ) { this.nRecords++; @@ -436,20 +297,13 @@ public class TraversalEngine { // Poor man's version of index LOL if ( inLocations(locus.getLocation()) ) { - - // Jump forward in the reference to this locus location - final ReferenceIterator refSite = refIter.seekForward(locus.getLocation()); + final ReferenceIterator refSite = refIter.seekForward(locus.getContig(), locus.getPosition()); final char refBase = refSite.getBaseAsChar(); - - // Iterate forward to get all reference ordered data covering this locus final List rodData = getReferenceOrderedDataAtLocus(rodIters, locus.getLocation()); if ( DEBUGGING ) System.out.printf(" Reference: %s:%d %c%n", refSite.getCurrentContig().getName(), refSite.getPosition(), refBase); - // - // Execute our contract with the walker. Call filter, map, and reduce - // final boolean keepMeP = walker.filter(rodData, refBase, locus); if ( keepMeP ) { M x = walker.map(rodData, refBase, locus); @@ -469,43 +323,37 @@ public class TraversalEngine { done = true; } - printOnTraversalDone("loci", sum); + printProgress( true, "loci", null ); + System.out.println("Traversal reduce result is " + sum); + System.out.printf("Traversal skipped %d reads out of %d total (%.2f%%)%n", nSkippedReads, nReads, (nSkippedReads * 100.0) / nReads); + System.out.printf(" -> %d unmapped reads%n", nUnmappedReads ); + System.out.printf(" -> %d non-primary reads%n", nNotPrimary ); + System.out.printf(" -> %d reads with bad alignments%n", nBadAlignments ); + System.out.printf(" -> %d reads with indels%n", nSkippedIndels ); walker.onTraveralDone(); return 0; } - /** - * Traverse by read -- the key driver of linearly ordered traversal of reads. Provides a single read to - * the walker object, in coordinate order. Supports all of the - * interaction contract implied by the read walker - * - * @param walker A read walker object - * @param MapType -- the result of calling map() on walker - * @param ReduceType -- the result of calling reduce() on the walker - * @return 0 on success - */ + // -------------------------------------------------------------------------------------------------------------- + // + // traversal by read functions + // + // -------------------------------------------------------------------------------------------------------------- protected int traverseByRead(ReadWalker walker) { - - // Initialize the walker walker.initialize(); - // Initialize the sum R sum = walker.reduceInit(); - boolean done = false; while ( samReadIter.hasNext() && ! done ) { this.nRecords++; - // get the next read + // actually get the read and hand it to the walker final SAMRecord read = samReadIter.next(); GenomeLoc loc = new GenomeLoc(read.getReferenceName(), read.getAlignmentStart()); if ( inLocations(loc) ) { - - // - // execute the walker contact - // final boolean keepMeP = walker.filter(null, read); + if ( keepMeP ) { M x = walker.map(null, read); sum = walker.reduce(x, sum); @@ -513,17 +361,19 @@ public class TraversalEngine { if ( this.maxReads > 0 && this.nRecords > this.maxReads ) { System.out.println("Maximum number of reads encountered, terminating traversal " + this.nRecords); - done = true; + break; } - } - printProgress("reads", loc); + printProgress("reads", loc); + } + if ( pastFinalLocation(loc) ) done = true; //System.out.printf("Done? %b%n", done); } - printOnTraversalDone("reads", sum); + printProgress( true, "reads", null ); + System.out.println("Traversal reduce result is " + sum); walker.onTraveralDone(); return 0; } diff --git a/java/src/edu/mit/broad/sting/atk/modules/BaseQualityHistoWalker.java b/playground/java/src/org/broadinstitute/sting/atk/modules/BaseQualityHistoWalker.java similarity index 88% rename from java/src/edu/mit/broad/sting/atk/modules/BaseQualityHistoWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/modules/BaseQualityHistoWalker.java index 969550c77..18e9a6bf1 100755 --- a/java/src/edu/mit/broad/sting/atk/modules/BaseQualityHistoWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/modules/BaseQualityHistoWalker.java @@ -1,8 +1,8 @@ -package edu.mit.broad.sting.atk.modules; +package org.broadinstitute.sting.atk.modules; import net.sf.samtools.SAMRecord; -import edu.mit.broad.sting.atk.ReadWalker; -import edu.mit.broad.sting.atk.LocusContext; +import org.broadinstitute.sting.atk.ReadWalker; +import org.broadinstitute.sting.atk.LocusContext; /** * Created by IntelliJ IDEA. @@ -27,7 +27,7 @@ public class BaseQualityHistoWalker implements ReadWalker { return true; // We are keeping all the reads } - // Map over the edu.mit.broad.sting.atk.LocusContext + // Map over the org.broadinstitute.sting.atk.LocusContext public Integer map(LocusContext context, SAMRecord read) { for ( byte qual : read.getBaseQualities() ) { //System.out.println(qual); diff --git a/java/src/edu/mit/broad/sting/atk/modules/BasicLociWalker.java b/playground/java/src/org/broadinstitute/sting/atk/modules/BasicLociWalker.java similarity index 82% rename from java/src/edu/mit/broad/sting/atk/modules/BasicLociWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/modules/BasicLociWalker.java index 3dbd143c3..72910f2be 100755 --- a/java/src/edu/mit/broad/sting/atk/modules/BasicLociWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/modules/BasicLociWalker.java @@ -1,8 +1,8 @@ -package edu.mit.broad.sting.atk.modules; +package org.broadinstitute.sting.atk.modules; -import edu.mit.broad.sting.atk.LocusWalker; -import edu.mit.broad.sting.atk.LocusIterator; -import edu.mit.broad.sting.utils.ReferenceOrderedDatum; +import org.broadinstitute.sting.atk.LocusWalker; +import org.broadinstitute.sting.atk.LocusIterator; +import org.broadinstitute.sting.utils.ReferenceOrderedDatum; import net.sf.samtools.SAMRecord; import java.util.List; diff --git a/java/src/edu/mit/broad/sting/atk/modules/BasicReadWalker.java b/playground/java/src/org/broadinstitute/sting/atk/modules/BasicReadWalker.java similarity index 85% rename from java/src/edu/mit/broad/sting/atk/modules/BasicReadWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/modules/BasicReadWalker.java index d78651edf..8692f49f5 100755 --- a/java/src/edu/mit/broad/sting/atk/modules/BasicReadWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/modules/BasicReadWalker.java @@ -1,8 +1,8 @@ -package edu.mit.broad.sting.atk.modules; +package org.broadinstitute.sting.atk.modules; import net.sf.samtools.SAMRecord; -import edu.mit.broad.sting.atk.LocusContext; -import edu.mit.broad.sting.atk.ReadWalker; +import org.broadinstitute.sting.atk.LocusContext; +import org.broadinstitute.sting.atk.ReadWalker; /** * Created by IntelliJ IDEA. diff --git a/java/src/edu/mit/broad/sting/atk/modules/CountLociWalker.java b/playground/java/src/org/broadinstitute/sting/atk/modules/CountLociWalker.java similarity index 76% rename from java/src/edu/mit/broad/sting/atk/modules/CountLociWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/modules/CountLociWalker.java index 98ee2d01f..372f453d1 100755 --- a/java/src/edu/mit/broad/sting/atk/modules/CountLociWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/modules/CountLociWalker.java @@ -1,7 +1,7 @@ -package edu.mit.broad.sting.atk.modules; +package org.broadinstitute.sting.atk.modules; -import edu.mit.broad.sting.atk.LocusIterator; -import edu.mit.broad.sting.utils.ReferenceOrderedDatum; +import org.broadinstitute.sting.atk.LocusIterator; +import org.broadinstitute.sting.utils.ReferenceOrderedDatum; import java.util.List; @@ -22,4 +22,4 @@ public class CountLociWalker extends BasicLociWalker { public Integer reduce(Integer value, Integer sum) { return value + sum; } -} \ No newline at end of file +} diff --git a/java/src/edu/mit/broad/sting/atk/modules/CountReadsWalker.java b/playground/java/src/org/broadinstitute/sting/atk/modules/CountReadsWalker.java similarity index 77% rename from java/src/edu/mit/broad/sting/atk/modules/CountReadsWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/modules/CountReadsWalker.java index 7699529b7..0f40c2c7b 100755 --- a/java/src/edu/mit/broad/sting/atk/modules/CountReadsWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/modules/CountReadsWalker.java @@ -1,7 +1,7 @@ -package edu.mit.broad.sting.atk.modules; +package org.broadinstitute.sting.atk.modules; import net.sf.samtools.SAMRecord; -import edu.mit.broad.sting.atk.LocusContext; +import org.broadinstitute.sting.atk.LocusContext; public class CountReadsWalker extends BasicReadWalker { public Integer map(LocusContext context, SAMRecord read) { diff --git a/java/src/edu/mit/broad/sting/atk/modules/PileupWalker.java b/playground/java/src/org/broadinstitute/sting/atk/modules/PileupWalker.java similarity index 89% rename from java/src/edu/mit/broad/sting/atk/modules/PileupWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/modules/PileupWalker.java index 6c4b8fb0a..ca01fc5ad 100644 --- a/java/src/edu/mit/broad/sting/atk/modules/PileupWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/modules/PileupWalker.java @@ -1,10 +1,10 @@ -package edu.mit.broad.sting.atk.modules; +package org.broadinstitute.sting.atk.modules; -import edu.mit.broad.sting.atk.LocusWalker; -import edu.mit.broad.sting.atk.LocusIterator; -import edu.mit.broad.sting.utils.ReferenceOrderedDatum; -import edu.mit.broad.sting.utils.rodDbSNP; -import edu.mit.broad.sting.utils.Utils; +import org.broadinstitute.sting.atk.LocusWalker; +import org.broadinstitute.sting.atk.LocusIterator; +import org.broadinstitute.sting.utils.ReferenceOrderedDatum; +import org.broadinstitute.sting.utils.rodDbSNP; +import org.broadinstitute.sting.utils.Utils; import net.sf.samtools.SAMRecord; import java.util.List; @@ -27,7 +27,7 @@ public class PileupWalker implements LocusWalker { return true; // We are keeping all the reads } - // Map over the edu.mit.broad.sting.atk.LocusContext + // Map over the org.broadinstitute.sting.atk.LocusContext public Integer map(List rodData, char ref, LocusIterator context) { //System.out.printf("Reads %s:%d %d%n", context.getContig(), context.getPosition(), context.getReads().size()); //for ( SAMRecord read : context.getReads() ) { diff --git a/java/src/edu/mit/broad/sting/atk/modules/PrintReadsWalker.java b/playground/java/src/org/broadinstitute/sting/atk/modules/PrintReadsWalker.java similarity index 79% rename from java/src/edu/mit/broad/sting/atk/modules/PrintReadsWalker.java rename to playground/java/src/org/broadinstitute/sting/atk/modules/PrintReadsWalker.java index 85eec90f9..b709d5563 100755 --- a/java/src/edu/mit/broad/sting/atk/modules/PrintReadsWalker.java +++ b/playground/java/src/org/broadinstitute/sting/atk/modules/PrintReadsWalker.java @@ -1,7 +1,7 @@ -package edu.mit.broad.sting.atk.modules; +package org.broadinstitute.sting.atk.modules; import net.sf.samtools.SAMRecord; -import edu.mit.broad.sting.atk.LocusContext; +import org.broadinstitute.sting.atk.LocusContext; public class PrintReadsWalker extends BasicReadWalker { public Integer map(LocusContext context, SAMRecord read) { diff --git a/java/src/edu/mit/broad/sting/utils/EndlessIterator.java b/playground/java/src/org/broadinstitute/sting/utils/EndlessIterator.java similarity index 93% rename from java/src/edu/mit/broad/sting/utils/EndlessIterator.java rename to playground/java/src/org/broadinstitute/sting/utils/EndlessIterator.java index 144473986..03df4fecd 100755 --- a/java/src/edu/mit/broad/sting/utils/EndlessIterator.java +++ b/playground/java/src/org/broadinstitute/sting/utils/EndlessIterator.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import java.util.Iterator; diff --git a/java/src/edu/mit/broad/sting/utils/FileProgressTracker.java b/playground/java/src/org/broadinstitute/sting/utils/FileProgressTracker.java similarity index 99% rename from java/src/edu/mit/broad/sting/utils/FileProgressTracker.java rename to playground/java/src/org/broadinstitute/sting/utils/FileProgressTracker.java index 206fbe6f6..6b458d31b 100644 --- a/java/src/edu/mit/broad/sting/utils/FileProgressTracker.java +++ b/playground/java/src/org/broadinstitute/sting/utils/FileProgressTracker.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import java.io.File; import java.io.IOException; diff --git a/java/src/edu/mit/broad/sting/utils/GenomeLoc.java b/playground/java/src/org/broadinstitute/sting/utils/GenomeLoc.java similarity index 99% rename from java/src/edu/mit/broad/sting/utils/GenomeLoc.java rename to playground/java/src/org/broadinstitute/sting/utils/GenomeLoc.java index 6c55928de..acedd4209 100644 --- a/java/src/edu/mit/broad/sting/utils/GenomeLoc.java +++ b/playground/java/src/org/broadinstitute/sting/utils/GenomeLoc.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import java.util.*; import java.util.regex.Pattern; diff --git a/java/src/edu/mit/broad/sting/utils/Predicate.java b/playground/java/src/org/broadinstitute/sting/utils/Predicate.java similarity index 85% rename from java/src/edu/mit/broad/sting/utils/Predicate.java rename to playground/java/src/org/broadinstitute/sting/utils/Predicate.java index 1d015534e..cbf689970 100755 --- a/java/src/edu/mit/broad/sting/utils/Predicate.java +++ b/playground/java/src/org/broadinstitute/sting/utils/Predicate.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; /** * Created by IntelliJ IDEA. diff --git a/java/src/edu/mit/broad/sting/utils/PushbackIterator.java b/playground/java/src/org/broadinstitute/sting/utils/PushbackIterator.java similarity index 96% rename from java/src/edu/mit/broad/sting/utils/PushbackIterator.java rename to playground/java/src/org/broadinstitute/sting/utils/PushbackIterator.java index 37dfe6bef..1adf13052 100755 --- a/java/src/edu/mit/broad/sting/utils/PushbackIterator.java +++ b/playground/java/src/org/broadinstitute/sting/utils/PushbackIterator.java @@ -7,7 +7,7 @@ * This software is supplied without any warranty or guaranteed support whatsoever. Neither * the Broad Institute nor MIT can be responsible for its use, misuse, or functionality. */ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import java.util.Iterator; diff --git a/java/src/edu/mit/broad/sting/utils/ReferenceIterator.java b/playground/java/src/org/broadinstitute/sting/utils/ReferenceIterator.java similarity index 99% rename from java/src/edu/mit/broad/sting/utils/ReferenceIterator.java rename to playground/java/src/org/broadinstitute/sting/utils/ReferenceIterator.java index a9c80f044..83f268cf6 100755 --- a/java/src/edu/mit/broad/sting/utils/ReferenceIterator.java +++ b/playground/java/src/org/broadinstitute/sting/utils/ReferenceIterator.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import edu.mit.broad.picard.reference.ReferenceSequenceFile; import edu.mit.broad.picard.reference.ReferenceSequence; diff --git a/java/src/edu/mit/broad/sting/utils/ReferenceOrderedData.java b/playground/java/src/org/broadinstitute/sting/utils/ReferenceOrderedData.java similarity index 99% rename from java/src/edu/mit/broad/sting/utils/ReferenceOrderedData.java rename to playground/java/src/org/broadinstitute/sting/utils/ReferenceOrderedData.java index e5a62d5c4..c3bffe30a 100644 --- a/java/src/edu/mit/broad/sting/utils/ReferenceOrderedData.java +++ b/playground/java/src/org/broadinstitute/sting/utils/ReferenceOrderedData.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import java.io.File; import java.io.FileOutputStream; diff --git a/java/src/edu/mit/broad/sting/utils/ReferenceOrderedDatum.java b/playground/java/src/org/broadinstitute/sting/utils/ReferenceOrderedDatum.java similarity index 95% rename from java/src/edu/mit/broad/sting/utils/ReferenceOrderedDatum.java rename to playground/java/src/org/broadinstitute/sting/utils/ReferenceOrderedDatum.java index 709fd8b3d..85b111e46 100644 --- a/java/src/edu/mit/broad/sting/utils/ReferenceOrderedDatum.java +++ b/playground/java/src/org/broadinstitute/sting/utils/ReferenceOrderedDatum.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; /** * Created by IntelliJ IDEA. diff --git a/java/src/edu/mit/broad/sting/utils/Utils.java b/playground/java/src/org/broadinstitute/sting/utils/Utils.java similarity index 58% rename from java/src/edu/mit/broad/sting/utils/Utils.java rename to playground/java/src/org/broadinstitute/sting/utils/Utils.java index d02d47843..af59a0dcc 100755 --- a/java/src/edu/mit/broad/sting/utils/Utils.java +++ b/playground/java/src/org/broadinstitute/sting/utils/Utils.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import net.sf.samtools.SAMRecord; import net.sf.samtools.SAMSequenceRecord; @@ -108,93 +108,4 @@ public class Utils { GenomeLoc.setContigOrdering(refContigOrdering); } - - // Java Generics can't do primitive types, so I had to do this the simplistic way - - public static Integer[] SortPermutation(final int[] A) - { - class comparator implements Comparator - { - public int compare(Object a, Object b) - { - if (A[(Integer)a] < A[(Integer)b]) { return -1; } - if (A[(Integer)a] == A[(Integer)b]) { return 0; } - if (A[(Integer)a] > A[(Integer)b]) { return 1; } - return 0; - } - } - Integer[] permutation = new Integer[A.length]; - for (int i = 0; i < A.length; i++) - { - permutation[i] = i; - } - Arrays.sort(permutation, new comparator()); - return permutation; - } - - public static Integer[] SortPermutation(final double[] A) - { - class comparator implements Comparator - { - public int compare(Object a, Object b) - { - if (A[(Integer)a] < A[(Integer)b]) { return -1; } - if (A[(Integer)a] == A[(Integer)b]) { return 0; } - if (A[(Integer)a] > A[(Integer)b]) { return 1; } - return 0; - } - } - Integer[] permutation = new Integer[A.length]; - for (int i = 0; i < A.length; i++) - { - permutation[i] = i; - } - Arrays.sort(permutation, new comparator()); - return permutation; - } - - public static int[] PermuteArray(int[] array, Integer[] permutation) - { - int[] output = new int[array.length]; - for (int i = 0; i < output.length; i++) - { - output[i] = array[permutation[i]]; - } - return output; - } - - public static double[] PermuteArray(double[] array, Integer[] permutation) - { - double[] output = new double[array.length]; - for (int i = 0; i < output.length; i++) - { - output[i] = array[permutation[i]]; - } - return output; - } - - public static Object[] PermuteArray(Object[] array, Integer[] permutation) - { - Object[] output = new Object[array.length]; - for (int i = 0; i < output.length; i++) - { - output[i] = array[permutation[i]]; - } - return output; - } - - public static String[] PermuteArray(String[] array, Integer[] permutation) - { - String[] output = new String[array.length]; - for (int i = 0; i < output.length; i++) - { - output[i] = array[permutation[i]]; - } - return output; - } - } - - - - diff --git a/java/src/edu/mit/broad/sting/utils/WhitespaceTextFileParser.java b/playground/java/src/org/broadinstitute/sting/utils/WhitespaceTextFileParser.java similarity index 93% rename from java/src/edu/mit/broad/sting/utils/WhitespaceTextFileParser.java rename to playground/java/src/org/broadinstitute/sting/utils/WhitespaceTextFileParser.java index 7c128b05e..5c5bbc8d8 100644 --- a/java/src/edu/mit/broad/sting/utils/WhitespaceTextFileParser.java +++ b/playground/java/src/org/broadinstitute/sting/utils/WhitespaceTextFileParser.java @@ -7,7 +7,7 @@ * This software is supplied without any warranty or guaranteed support whatsoever. Neither * the Broad Institute nor MIT can be responsible for its use, misuse, or functionality. */ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import edu.mit.broad.picard.util.BasicTextFileParser; diff --git a/java/src/edu/mit/broad/sting/utils/rodDbSNP.java b/playground/java/src/org/broadinstitute/sting/utils/rodDbSNP.java similarity index 99% rename from java/src/edu/mit/broad/sting/utils/rodDbSNP.java rename to playground/java/src/org/broadinstitute/sting/utils/rodDbSNP.java index 74b03ad8e..393a42d58 100644 --- a/java/src/edu/mit/broad/sting/utils/rodDbSNP.java +++ b/playground/java/src/org/broadinstitute/sting/utils/rodDbSNP.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import net.sf.samtools.SAMRecord; import net.sf.samtools.util.CloseableIterator; diff --git a/java/src/edu/mit/broad/sting/utils/rodGFF.java b/playground/java/src/org/broadinstitute/sting/utils/rodGFF.java similarity index 98% rename from java/src/edu/mit/broad/sting/utils/rodGFF.java rename to playground/java/src/org/broadinstitute/sting/utils/rodGFF.java index 0eab78300..7d2515ca5 100644 --- a/java/src/edu/mit/broad/sting/utils/rodGFF.java +++ b/playground/java/src/org/broadinstitute/sting/utils/rodGFF.java @@ -1,4 +1,4 @@ -package edu.mit.broad.sting.utils; +package org.broadinstitute.sting.utils; import net.sf.samtools.SAMRecord; import net.sf.samtools.util.CloseableIterator; diff --git a/python/EvalMapping.py b/playground/python/EvalMapping.py similarity index 100% rename from python/EvalMapping.py rename to playground/python/EvalMapping.py diff --git a/python/FastaQuals2Fastq.py b/playground/python/FastaQuals2Fastq.py similarity index 100% rename from python/FastaQuals2Fastq.py rename to playground/python/FastaQuals2Fastq.py diff --git a/python/MergeEvalMapTabs.py b/playground/python/MergeEvalMapTabs.py similarity index 100% rename from python/MergeEvalMapTabs.py rename to playground/python/MergeEvalMapTabs.py diff --git a/python/SAM.py b/playground/python/SAM.py similarity index 100% rename from python/SAM.py rename to playground/python/SAM.py diff --git a/python/SamWalk.py b/playground/python/SamWalk.py similarity index 100% rename from python/SamWalk.py rename to playground/python/SamWalk.py diff --git a/python/SamWalkTest.py b/playground/python/SamWalkTest.py similarity index 100% rename from python/SamWalkTest.py rename to playground/python/SamWalkTest.py diff --git a/python/SimpleSAM.py b/playground/python/SimpleSAM.py similarity index 100% rename from python/SimpleSAM.py rename to playground/python/SimpleSAM.py diff --git a/python/SimulateReads.py b/playground/python/SimulateReads.py similarity index 100% rename from python/SimulateReads.py rename to playground/python/SimulateReads.py diff --git a/python/SpawnMapperJobs.py b/playground/python/SpawnMapperJobs.py similarity index 100% rename from python/SpawnMapperJobs.py rename to playground/python/SpawnMapperJobs.py diff --git a/python/SpawnValidationJobs.py b/playground/python/SpawnValidationJobs.py similarity index 100% rename from python/SpawnValidationJobs.py rename to playground/python/SpawnValidationJobs.py diff --git a/python/WalkLociTest.py b/playground/python/WalkLociTest.py similarity index 100% rename from python/WalkLociTest.py rename to playground/python/WalkLociTest.py diff --git a/python/Walker.py b/playground/python/Walker.py similarity index 100% rename from python/Walker.py rename to playground/python/Walker.py diff --git a/python/aln_file.nocvs.py b/playground/python/aln_file.nocvs.py similarity index 100% rename from python/aln_file.nocvs.py rename to playground/python/aln_file.nocvs.py diff --git a/python/aln_file.py b/playground/python/aln_file.py similarity index 100% rename from python/aln_file.py rename to playground/python/aln_file.py diff --git a/python/compSNPCalls.py b/playground/python/compSNPCalls.py similarity index 100% rename from python/compSNPCalls.py rename to playground/python/compSNPCalls.py diff --git a/python/countCoverageWithSamtools.py b/playground/python/countCoverageWithSamtools.py similarity index 100% rename from python/countCoverageWithSamtools.py rename to playground/python/countCoverageWithSamtools.py diff --git a/python/farm_commands.py b/playground/python/farm_commands.py similarity index 100% rename from python/farm_commands.py rename to playground/python/farm_commands.py diff --git a/python/fasta.py b/playground/python/fasta.py similarity index 100% rename from python/fasta.py rename to playground/python/fasta.py diff --git a/python/memo.py b/playground/python/memo.py similarity index 100% rename from python/memo.py rename to playground/python/memo.py diff --git a/python/pushback_file.py b/playground/python/pushback_file.py similarity index 100% rename from python/pushback_file.py rename to playground/python/pushback_file.py diff --git a/python/qltout.py b/playground/python/qltout.py similarity index 100% rename from python/qltout.py rename to playground/python/qltout.py diff --git a/python/samtooltest.sh b/playground/python/samtooltest.sh similarity index 100% rename from python/samtooltest.sh rename to playground/python/samtooltest.sh diff --git a/python/tgtc2sam.py b/playground/python/tgtc2sam.py similarity index 100% rename from python/tgtc2sam.py rename to playground/python/tgtc2sam.py diff --git a/scripts/TraverseTest.sh b/playground/shell/TraverseTest.sh similarity index 100% rename from scripts/TraverseTest.sh rename to playground/shell/TraverseTest.sh diff --git a/scripts/TraverseTestProf.sh b/playground/shell/TraverseTestProf.sh similarity index 100% rename from scripts/TraverseTestProf.sh rename to playground/shell/TraverseTestProf.sh diff --git a/playground/shell/buildRODs.sh b/playground/shell/buildRODs.sh new file mode 100755 index 000000000..76584826c --- /dev/null +++ b/playground/shell/buildRODs.sh @@ -0,0 +1,2 @@ +java -Xmx40000m -cp ../java/dist/AnalysisTK.jar org.broadinstitute.sting.atk.PrepareROD REF_FILE_ARG=/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta ROD_FILE=/seq/references/dbsnp/downloads/snp129_hg18.txt OUT=`echo $1/snp129_hg18.txt.rod` ROD_TYPE=dbSNP ROD_NAME=dbSNP + diff --git a/scripts/buildRODs.sh b/scripts/buildRODs.sh deleted file mode 100755 index e80534ca0..000000000 --- a/scripts/buildRODs.sh +++ /dev/null @@ -1,2 +0,0 @@ -java -Xmx40000m -cp out/production/AnalysisTK:trunk/java/jars/functionalj.jar edu.mit.broad.sting.atk.PrepareROD REF_FILE_ARG=/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta ROD_FILE=/seq/references/dbsnp/downloads/snp129_hg18.txt OUT=`echo $1/snp129_hg18.txt.rod` ROD_TYPE=dbSNP ROD_NAME=dbSNP -