Merge branch 'master' into rodrewrite

This commit is contained in:
Mark DePristo 2011-09-20 06:54:18 -04:00
commit 230e16d7c0
4 changed files with 44 additions and 17 deletions

View File

@ -163,6 +163,14 @@
<!-- Remove old versions of ivy jars AFTER the ivy:retrieve has been class loaded. --> <!-- Remove old versions of ivy jars AFTER the ivy:retrieve has been class loaded. -->
<delete file="${ivy.jar.dir}/ivy-2.0.0.jar"/> <delete file="${ivy.jar.dir}/ivy-2.0.0.jar"/>
<delete file="${ivy.jar.dir}/ivy-2.2.0-rc1.jar"/> <delete file="${ivy.jar.dir}/ivy-2.2.0-rc1.jar"/>
<!--
An old versions of the ivy-1.4.1.xml does not contain /ivy-module/configuration/conf/@name="compile".
Easier to upgrade to 1.4.4 than try to deal with xmlproperty and conditional deletion in ant.
Just in case we remove explicit 1.4.4 and go back to 1.4.1, try to clean out the file for now.
-->
<delete file="${ivy.home}/cache/javax.mail/mail/ivy-1.4.1.xml"/>
<delete file="${ivy.home}/cache/javax.mail/mail/ivydata-1.4.1.properties"/>
<delete file="${ivy.home}/cache/javax.mail/mail/jars/mail-1.4.1.jar"/>
</target> </target>
<target name="init.buildall"> <target name="init.buildall">

View File

@ -15,10 +15,8 @@
<!-- Tribble --> <!-- Tribble -->
<dependency org="org.broad" name="tribble" rev="latest.integration"/> <dependency org="org.broad" name="tribble" rev="latest.integration"/>
<dependency org="log4j" name="log4j" rev="1.2.15"> <dependency org="log4j" name="log4j" rev="1.2.15"/>
<!-- Don't include javax.mail here in default, only used in scala->default by commons-email --> <dependency org="javax.mail" name="mail" rev="1.4.4"/>
<exclude org="javax.mail" />
</dependency>
<dependency org="colt" name="colt" rev="1.2.0"/> <dependency org="colt" name="colt" rev="1.2.0"/>
<dependency org="jboss" name="javassist" rev="3.7.ga"/> <dependency org="jboss" name="javassist" rev="3.7.ga"/>
<dependency org="org.simpleframework" name="simple-xml" rev="2.0.4"/> <dependency org="org.simpleframework" name="simple-xml" rev="2.0.4"/>

View File

@ -118,31 +118,40 @@ public class ReadUtils {
/** /**
* This enum represents all the different ways in which a read can overlap an interval. * This enum represents all the different ways in which a read can overlap an interval.
* *
* NO_OVERLAP: * NO_OVERLAP_CONTIG:
* read and interval are in different contigs.
*
* NO_OVERLAP_LEFT:
* the read does not overlap the interval.
*
* |----------------| (interval)
* <----------------> (read)
*
* NO_OVERLAP_RIGHT:
* the read does not overlap the interval. * the read does not overlap the interval.
* *
* |----------------| (interval) * |----------------| (interval)
* <----------------> (read) * <----------------> (read)
* *
* LEFT_OVERLAP: * OVERLAP_LEFT:
* the read starts before the beginning of the interval but ends inside of it * the read starts before the beginning of the interval but ends inside of it
* *
* |----------------| (interval) * |----------------| (interval)
* <----------------> (read) * <----------------> (read)
* *
* RIGHT_OVERLAP: * OVERLAP_RIGHT:
* the read starts inside the interval but ends outside of it * the read starts inside the interval but ends outside of it
* *
* |----------------| (interval) * |----------------| (interval)
* <----------------> (read) * <----------------> (read)
* *
* FULL_OVERLAP: * OVERLAP_LEFT_AND_RIGHT:
* the read starts before the interval and ends after the interval * the read starts before the interval and ends after the interval
* *
* |-----------| (interval) * |-----------| (interval)
* <-------------------> (read) * <-------------------> (read)
* *
* CONTAINED: * OVERLAP_CONTAINED:
* the read starts and ends inside the interval * the read starts and ends inside the interval
* *
* |----------------| (interval) * |----------------| (interval)
@ -658,7 +667,7 @@ public class ReadUtils {
return ReadAndIntervalOverlap.OVERLAP_RIGHT; return ReadAndIntervalOverlap.OVERLAP_RIGHT;
} }
@Ensures({"result >= read.getUnclippedStart()", "result <= read.getUnclippedEnd()"}) @Ensures({"result >= read.getUnclippedStart()", "result <= read.getUnclippedEnd() || readIsEntirelyInsertion(read)"})
public static int getRefCoordSoftUnclippedStart(SAMRecord read) { public static int getRefCoordSoftUnclippedStart(SAMRecord read) {
int start = read.getUnclippedStart(); int start = read.getUnclippedStart();
for (CigarElement cigarElement : read.getCigar().getCigarElements()) { for (CigarElement cigarElement : read.getCigar().getCigarElements()) {
@ -670,9 +679,13 @@ public class ReadUtils {
return start; return start;
} }
@Ensures({"result >= read.getUnclippedStart()", "result <= read.getUnclippedEnd()"}) @Ensures({"result >= read.getUnclippedStart()", "result <= read.getUnclippedEnd() || readIsEntirelyInsertion(read)"})
public static int getRefCoordSoftUnclippedEnd(SAMRecord read) { public static int getRefCoordSoftUnclippedEnd(SAMRecord read) {
int stop = read.getUnclippedStart(); int stop = read.getUnclippedStart();
if (readIsEntirelyInsertion(read))
return stop;
int shift = 0; int shift = 0;
CigarOperator lastOperator = null; CigarOperator lastOperator = null;
for (CigarElement cigarElement : read.getCigar().getCigarElements()) { for (CigarElement cigarElement : read.getCigar().getCigarElements()) {
@ -686,6 +699,14 @@ public class ReadUtils {
return (lastOperator == CigarOperator.HARD_CLIP) ? stop-1 : stop+shift-1 ; return (lastOperator == CigarOperator.HARD_CLIP) ? stop-1 : stop+shift-1 ;
} }
private static boolean readIsEntirelyInsertion(SAMRecord read) {
for (CigarElement cigarElement : read.getCigar().getCigarElements()) {
if (cigarElement.getOperator() != CigarOperator.INSERTION)
return false;
}
return true;
}
/** /**
* Looks for a read coordinate that corresponds to the reference coordinate in the soft clipped region before * Looks for a read coordinate that corresponds to the reference coordinate in the soft clipped region before
* the alignment start of the read. * the alignment start of the read.

View File

@ -131,11 +131,11 @@ class GATKResourcesBundle extends QScript {
addResource(new Resource("/humgen/gsa-hpprojects/GATK/data/Comparisons/Validated/HapMap/3.3/genotypes_r27_nr.b37_fwd.vcf", addResource(new Resource("/humgen/gsa-hpprojects/GATK/data/Comparisons/Validated/HapMap/3.3/genotypes_r27_nr.b37_fwd.vcf",
"hapmap_3.3", b37, true, true)) "hapmap_3.3", b37, true, true))
addResource(new Resource("/humgen/gsa-hpprojects/GATK/data/Comparisons/Unvalidated/AFR+EUR+ASN+1KG.dindel_august_release_merged_pilot1.20110126.sites.vcf", addResource(new Resource("/humgen/1kg/processing/official_release/phase1/ALL.wgs.VQSR_consensus_biallelic.20101123.indels.sites.vcf",
"1000G_indels_for_realignment", b37, true, false)) "1000G_biallelic.indels", b37, true, false))
addResource(new Resource("/humgen/gsa-hpprojects/GATK/data/Comparisons/Validated/Mills_Devine_Indels_2011/ALL.wgs.indels_mills_devine_hg19_leftAligned_collapsed_double_hit.sites.vcf", addResource(new Resource("/humgen/gsa-hpprojects/GATK/data/Comparisons/Validated/Mills_Devine_Indels_2011/ALL.wgs.indels_mills_devine_hg19_leftAligned_collapsed_double_hit.sites.vcf",
"indels_mills_devine", b37, true, true)) "Mills_Devine_2hit.indels", b37, true, true))
// //
// example call set for wiki tutorial // example call set for wiki tutorial
@ -300,9 +300,9 @@ class GATKResourcesBundle extends QScript {
bamFile = bamIn bamFile = bamIn
} }
class IndexVCF(@Input vcf: File, @Input ref: File) extends CountRod with UNIVERSAL_GATK_ARGS { class IndexVCF(@Input vcf: File, @Input ref: File) extends CountRODs with UNIVERSAL_GATK_ARGS {
//@Output val vcfIndex: File = swapExt(vcf.getParent, vcf, ".vcf", ".vcf.idx") //@Output val vcfIndex: File = swapExt(vcf.getParent, vcf, ".vcf", ".vcf.idx")
this.rodBind :+= RodBind(vcf.getName, "VCF", vcf) this.rod :+= vcf
this.reference_sequence = ref this.reference_sequence = ref
} }
@ -313,7 +313,7 @@ class GATKResourcesBundle extends QScript {
} }
class MakeDBSNP129(@Input dbsnp: File, @Input ref: File, @Output dbsnp129: File) extends SelectVariants with UNIVERSAL_GATK_ARGS { class MakeDBSNP129(@Input dbsnp: File, @Input ref: File, @Output dbsnp129: File) extends SelectVariants with UNIVERSAL_GATK_ARGS {
this.rodBind :+= RodBind("variant", "VCF", dbsnp) this.variant = dbsnp
this.select ++= List("\"dbSNPBuildID <= 129\"") this.select ++= List("\"dbSNPBuildID <= 129\"")
this.reference_sequence = ref this.reference_sequence = ref
this.out = dbsnp129 this.out = dbsnp129