Merged bug fix from Stable into Unstable
This commit is contained in:
commit
a82ec7ad80
|
|
@ -33,6 +33,7 @@ import org.broadinstitute.sting.gatk.CommandLineGATK;
|
||||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||||
import org.broadinstitute.sting.utils.help.ApplicationDetails;
|
import org.broadinstitute.sting.utils.help.ApplicationDetails;
|
||||||
import org.broadinstitute.sting.utils.help.HelpFormatter;
|
import org.broadinstitute.sting.utils.help.HelpFormatter;
|
||||||
|
import org.broadinstitute.sting.utils.help.HelpUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -288,7 +289,7 @@ public abstract class CommandLineProgram {
|
||||||
*/
|
*/
|
||||||
private static void printDocumentationReference() {
|
private static void printDocumentationReference() {
|
||||||
errorPrintf("Visit our website and forum for extensive documentation and answers to %n");
|
errorPrintf("Visit our website and forum for extensive documentation and answers to %n");
|
||||||
errorPrintf("commonly asked questions http://www.broadinstitute.org/gatk%n");
|
errorPrintf("commonly asked questions " + HelpUtils.BASE_GATK_URL + "%n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import org.broadinstitute.sting.utils.exceptions.UserException;
|
||||||
import org.broadinstitute.sting.utils.help.ApplicationDetails;
|
import org.broadinstitute.sting.utils.help.ApplicationDetails;
|
||||||
import org.broadinstitute.sting.utils.help.DocumentedGATKFeature;
|
import org.broadinstitute.sting.utils.help.DocumentedGATKFeature;
|
||||||
import org.broadinstitute.sting.utils.help.GATKDocUtils;
|
import org.broadinstitute.sting.utils.help.GATKDocUtils;
|
||||||
|
import org.broadinstitute.sting.utils.help.HelpUtils;
|
||||||
import org.broadinstitute.sting.utils.text.TextFormattingUtils;
|
import org.broadinstitute.sting.utils.text.TextFormattingUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -160,7 +161,7 @@ public class CommandLineGATK extends CommandLineExecutable {
|
||||||
List<String> header = new ArrayList<String>();
|
List<String> header = new ArrayList<String>();
|
||||||
header.add(String.format("The Genome Analysis Toolkit (GATK) v%s, Compiled %s",getVersionNumber(), getBuildTime()));
|
header.add(String.format("The Genome Analysis Toolkit (GATK) v%s, Compiled %s",getVersionNumber(), getBuildTime()));
|
||||||
header.add("Copyright (c) 2010 The Broad Institute");
|
header.add("Copyright (c) 2010 The Broad Institute");
|
||||||
header.add("For support and documentation go to http://www.broadinstitute.org/gatk");
|
header.add("For support and documentation go to " + HelpUtils.BASE_GATK_URL);
|
||||||
return header;
|
return header;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,11 +25,9 @@
|
||||||
|
|
||||||
package org.broadinstitute.sting.gatk.filters;
|
package org.broadinstitute.sting.gatk.filters;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
|
||||||
import com.google.common.collect.Collections2;
|
|
||||||
import org.broadinstitute.sting.utils.Utils;
|
|
||||||
import org.broadinstitute.sting.utils.classloader.PluginManager;
|
import org.broadinstitute.sting.utils.classloader.PluginManager;
|
||||||
import org.broadinstitute.sting.utils.help.GATKDocUtils;
|
import org.broadinstitute.sting.utils.help.GATKDocUtils;
|
||||||
|
import org.broadinstitute.sting.utils.help.HelpUtils;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -73,7 +71,7 @@ public class FilterManager extends PluginManager<ReadFilter> {
|
||||||
|
|
||||||
return String.format("Read filter %s not found. Available read filters:%n%n%s%n%n%s",pluginName,
|
return String.format("Read filter %s not found. Available read filters:%n%n%s%n%n%s",pluginName,
|
||||||
userFriendlyListofReadFilters(availableFilters),
|
userFriendlyListofReadFilters(availableFilters),
|
||||||
"Please consult the GATK Documentation (http://www.broadinstitute.org/gatk/gatkdocs/) for more information.");
|
"Please consult the GATK Documentation (" + HelpUtils.GATK_DOCS_URL + ") for more information.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private String userFriendlyListofReadFilters(List<Class<? extends ReadFilter>> filters) {
|
private String userFriendlyListofReadFilters(List<Class<? extends ReadFilter>> filters) {
|
||||||
|
|
|
||||||
|
|
@ -282,7 +282,8 @@ public class DiffEngine {
|
||||||
// now that we have a specific list of values we want to show, display them
|
// now that we have a specific list of values we want to show, display them
|
||||||
GATKReport report = new GATKReport();
|
GATKReport report = new GATKReport();
|
||||||
final String tableName = "differences";
|
final String tableName = "differences";
|
||||||
report.addTable(tableName, "Summarized differences between the master and test files. See http://www.broadinstitute.org/gsa/wiki/index.php/DiffEngine for more information", 3);
|
// TODO for Geraldine -- link needs to be updated below
|
||||||
|
report.addTable(tableName, "Summarized differences between the master and test files. See [ask Geraldine to fix link to DiffEngine wiki] for more information", 3);
|
||||||
final GATKReportTable table = report.getTable(tableName);
|
final GATKReportTable table = report.getTable(tableName);
|
||||||
table.addColumn("Difference");
|
table.addColumn("Difference");
|
||||||
table.addColumn("NumberOfOccurrences");
|
table.addColumn("NumberOfOccurrences");
|
||||||
|
|
|
||||||
|
|
@ -138,6 +138,7 @@ public class DiffObjects extends RodWalker<Integer, Integer> {
|
||||||
/**
|
/**
|
||||||
* Writes out a file of the DiffEngine format:
|
* Writes out a file of the DiffEngine format:
|
||||||
*
|
*
|
||||||
|
* TODO for Geraldine -- link needs to be updated below (and also in SelectVariants and RefSeqCodec GATK docs)
|
||||||
* http://www.broadinstitute.org/gsa/wiki/index.php/DiffEngine
|
* http://www.broadinstitute.org/gsa/wiki/index.php/DiffEngine
|
||||||
*/
|
*/
|
||||||
@Output(doc="File to which results should be written",required=true)
|
@Output(doc="File to which results should be written",required=true)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import java.util.Set;
|
||||||
/**
|
/**
|
||||||
* Stratifies the eval RODs by user-supplied JEXL expressions
|
* Stratifies the eval RODs by user-supplied JEXL expressions
|
||||||
*
|
*
|
||||||
* See http://www.broadinstitute.org/gsa/wiki/index.php/Using_JEXL_expressions for more details
|
* See http://gatkforums.broadinstitute.org/discussion/1255/what-are-jexl-expressions-and-how-can-i-use-them-with-the-gatk for more details
|
||||||
*/
|
*/
|
||||||
public class JexlExpression extends VariantStratifier implements StandardStratification {
|
public class JexlExpression extends VariantStratifier implements StandardStratification {
|
||||||
// needs to know the jexl expressions
|
// needs to know the jexl expressions
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ import org.broadinstitute.sting.utils.GenomeLoc;
|
||||||
import org.broadinstitute.sting.utils.MathUtils;
|
import org.broadinstitute.sting.utils.MathUtils;
|
||||||
import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
|
import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
|
||||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||||
|
import org.broadinstitute.sting.utils.help.HelpUtils;
|
||||||
import org.broadinstitute.sting.utils.variantcontext.writer.VariantContextWriter;
|
import org.broadinstitute.sting.utils.variantcontext.writer.VariantContextWriter;
|
||||||
import org.broadinstitute.sting.utils.collections.ExpandingArrayList;
|
import org.broadinstitute.sting.utils.collections.ExpandingArrayList;
|
||||||
import org.broadinstitute.sting.utils.exceptions.UserException;
|
import org.broadinstitute.sting.utils.exceptions.UserException;
|
||||||
|
|
@ -80,7 +81,7 @@ public class VariantDataManager {
|
||||||
final double theSTD = standardDeviation(theMean, iii);
|
final double theSTD = standardDeviation(theMean, iii);
|
||||||
logger.info( annotationKeys.get(iii) + String.format(": \t mean = %.2f\t standard deviation = %.2f", theMean, theSTD) );
|
logger.info( annotationKeys.get(iii) + String.format(": \t mean = %.2f\t standard deviation = %.2f", theMean, theSTD) );
|
||||||
if( Double.isNaN(theMean) ) {
|
if( Double.isNaN(theMean) ) {
|
||||||
throw new UserException.BadInput("Values for " + annotationKeys.get(iii) + " annotation not detected for ANY training variant in the input callset. VariantAnnotator may be used to add these annotations. See http://www.broadinstitute.org/gsa/wiki/index.php/VariantAnnotator");
|
throw new UserException.BadInput("Values for " + annotationKeys.get(iii) + " annotation not detected for ANY training variant in the input callset. VariantAnnotator may be used to add these annotations. See " + HelpUtils.GATK_FORUM_URL + "discussion/49/using-variant-annotator");
|
||||||
}
|
}
|
||||||
|
|
||||||
foundZeroVarianceAnnotation = foundZeroVarianceAnnotation || (theSTD < 1E-6);
|
foundZeroVarianceAnnotation = foundZeroVarianceAnnotation || (theSTD < 1E-6);
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,7 @@ import java.util.*;
|
||||||
* The Variant Validation Assessor is a tool for vetting/assessing validation data (containing genotypes).
|
* The Variant Validation Assessor is a tool for vetting/assessing validation data (containing genotypes).
|
||||||
* The tool produces a VCF that is annotated with information pertaining to plate quality control and by
|
* The tool produces a VCF that is annotated with information pertaining to plate quality control and by
|
||||||
* default is soft-filtered by high no-call rate or low Hardy-Weinberg probability.
|
* default is soft-filtered by high no-call rate or low Hardy-Weinberg probability.
|
||||||
* If you have .ped files, please first convert them to VCF format
|
* If you have .ped files, please first convert them to VCF format.
|
||||||
* (see http://www.broadinstitute.org/gsa/wiki/index.php/Converting_ped_to_vcf).
|
|
||||||
*
|
*
|
||||||
* <h2>Input</h2>
|
* <h2>Input</h2>
|
||||||
* <p>
|
* <p>
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import net.sf.samtools.SAMSequenceDictionary;
|
||||||
import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
|
import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
|
||||||
import org.broadinstitute.sting.utils.GenomeLoc;
|
import org.broadinstitute.sting.utils.GenomeLoc;
|
||||||
import org.broadinstitute.sting.utils.help.DocumentedGATKFeature;
|
import org.broadinstitute.sting.utils.help.DocumentedGATKFeature;
|
||||||
|
import org.broadinstitute.sting.utils.help.HelpUtils;
|
||||||
import org.broadinstitute.sting.utils.sam.ReadUtils;
|
import org.broadinstitute.sting.utils.sam.ReadUtils;
|
||||||
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
|
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
|
||||||
|
|
||||||
|
|
@ -267,7 +268,7 @@ public class UserException extends ReviewedStingException {
|
||||||
|
|
||||||
public static class ReadMissingReadGroup extends MalformedBAM {
|
public static class ReadMissingReadGroup extends MalformedBAM {
|
||||||
public ReadMissingReadGroup(SAMRecord read) {
|
public ReadMissingReadGroup(SAMRecord read) {
|
||||||
super(read, String.format("Read %s is either missing the read group or its read group is not defined in the BAM header, both of which are required by the GATK. Please use http://www.broadinstitute.org/gsa/wiki/index.php/ReplaceReadGroups to fix this problem", read.getReadName()));
|
super(read, String.format("Read %s is either missing the read group or its read group is not defined in the BAM header, both of which are required by the GATK. Please use " + HelpUtils.GATK_FORUM_URL + "discussion/59/companion-utilities-replacereadgroups to fix this problem", read.getReadName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -343,7 +344,7 @@ public class UserException extends ReviewedStingException {
|
||||||
super(String.format("Lexicographically sorted human genome sequence detected in %s."
|
super(String.format("Lexicographically sorted human genome sequence detected in %s."
|
||||||
+ "\nFor safety's sake the GATK requires human contigs in karyotypic order: 1, 2, ..., 10, 11, ..., 20, 21, 22, X, Y with M either leading or trailing these contigs."
|
+ "\nFor safety's sake the GATK requires human contigs in karyotypic order: 1, 2, ..., 10, 11, ..., 20, 21, 22, X, Y with M either leading or trailing these contigs."
|
||||||
+ "\nThis is because all distributed GATK resources are sorted in karyotypic order, and your processing will fail when you need to use these files."
|
+ "\nThis is because all distributed GATK resources are sorted in karyotypic order, and your processing will fail when you need to use these files."
|
||||||
+ "\nYou can use the ReorderSam utility to fix this problem: http://www.broadinstitute.org/gsa/wiki/index.php/ReorderSam"
|
+ "\nYou can use the ReorderSam utility to fix this problem: " + HelpUtils.GATK_FORUM_URL + "discussion/58/companion-utilities-reordersam"
|
||||||
+ "\n %s contigs = %s",
|
+ "\n %s contigs = %s",
|
||||||
name, name, ReadUtils.prettyPrintSequenceRecords(dict)));
|
name, name, ReadUtils.prettyPrintSequenceRecords(dict)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,14 +44,13 @@ public class ForumAPIUtils {
|
||||||
/**
|
/**
|
||||||
* How we post to the forum
|
* How we post to the forum
|
||||||
*/
|
*/
|
||||||
private final static String API_URL = "https://gatkforums.broadinstitute.org/api/v1/";
|
|
||||||
final private static String ACCESS_TOKEN = "access_token=";
|
final private static String ACCESS_TOKEN = "access_token=";
|
||||||
|
|
||||||
public static List<String> getPostedTools(String forumKey) {
|
public static List<String> getPostedTools(String forumKey) {
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
List<String> output = new ArrayList<String>();
|
List<String> output = new ArrayList<String>();
|
||||||
|
|
||||||
String text = httpGet(API_URL + "categories.json?CategoryIdentifier=tool-bulletin&page=1-100000&" + ACCESS_TOKEN + forumKey);
|
String text = httpGet(HelpUtils.GATK_FORUM_API_URL + "categories.json?CategoryIdentifier=tool-bulletin&page=1-100000&" + ACCESS_TOKEN + forumKey);
|
||||||
|
|
||||||
APIQuery details = gson.fromJson(text, APIQuery.class);
|
APIQuery details = gson.fromJson(text, APIQuery.class);
|
||||||
ForumDiscussion[] discussions = details.Discussions;
|
ForumDiscussion[] discussions = details.Discussions;
|
||||||
|
|
@ -159,7 +158,7 @@ public class ForumAPIUtils {
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
|
|
||||||
String data = gson.toJson(post.getPostData());
|
String data = gson.toJson(post.getPostData());
|
||||||
httpPost(data, API_URL + "post/discussion.json?" + ACCESS_TOKEN + forumKey);
|
httpPost(data, HelpUtils.GATK_FORUM_API_URL + "post/discussion.json?" + ACCESS_TOKEN + forumKey);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -167,8 +166,7 @@ public class ForumAPIUtils {
|
||||||
class APIQuery {
|
class APIQuery {
|
||||||
ForumDiscussion[] Discussions;
|
ForumDiscussion[] Discussions;
|
||||||
|
|
||||||
public APIQuery() {
|
public APIQuery() {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ public class GATKDocUtils {
|
||||||
/**
|
/**
|
||||||
* The URL root for RELEASED GATKDOC units
|
* The URL root for RELEASED GATKDOC units
|
||||||
*/
|
*/
|
||||||
public final static String URL_ROOT_FOR_RELEASE_GATKDOCS = "http://www.broadinstitute.org/gatk/gatkdocs/";
|
public final static String URL_ROOT_FOR_RELEASE_GATKDOCS = HelpUtils.GATK_DOCS_URL;
|
||||||
/**
|
/**
|
||||||
* The URL root for STABLE GATKDOC units
|
* The URL root for STABLE GATKDOC units
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,15 @@ import org.broadinstitute.sting.utils.classloader.JVMUtils;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
public class HelpUtils {
|
public class HelpUtils {
|
||||||
|
|
||||||
|
public final static String BASE_GATK_URL = "http://www.broadinstitute.org/gatk";
|
||||||
|
public final static String GATK_DOCS_URL = BASE_GATK_URL + "/gatkdocs/";
|
||||||
|
public final static String GATK_FORUM_URL = "http://gatkforums.broadinstitute.org/";
|
||||||
|
public final static String GATK_FORUM_API_URL = "https://gatkforums.broadinstitute.org/api/v1/";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected static boolean assignableToClass(ProgramElementDoc classDoc, Class lhsClass, boolean requireConcrete) {
|
protected static boolean assignableToClass(ProgramElementDoc classDoc, Class lhsClass, boolean requireConcrete) {
|
||||||
try {
|
try {
|
||||||
Class type = getClassForDoc(classDoc);
|
Class type = getClassForDoc(classDoc);
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,6 @@ abstract class SortingVariantContextWriterBase implements VariantContextWriter {
|
||||||
this.takeOwnershipOfInner = takeOwnershipOfInner;
|
this.takeOwnershipOfInner = takeOwnershipOfInner;
|
||||||
|
|
||||||
// has to be PriorityBlockingQueue to be thread-safe
|
// has to be PriorityBlockingQueue to be thread-safe
|
||||||
// see http://getsatisfaction.com/gsa/topics/missing_loci_output_in_multi_thread_mode_when_implement_sortingvcfwriterbase?utm_content=topic_link&utm_medium=email&utm_source=new_topic
|
|
||||||
this.queue = new PriorityBlockingQueue<VCFRecord>(50, new VariantContextComparator());
|
this.queue = new PriorityBlockingQueue<VCFRecord>(50, new VariantContextComparator());
|
||||||
|
|
||||||
this.mostUpstreamWritableLoc = BEFORE_MOST_UPSTREAM_LOC;
|
this.mostUpstreamWritableLoc = BEFORE_MOST_UPSTREAM_LOC;
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,6 @@ public class VCFIntegrationTest extends WalkerTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(enabled = true)
|
@Test(enabled = true)
|
||||||
// See https://getsatisfaction.com/gsa/topics/support_vcf_4_1_structural_variation_breakend_alleles?utm_content=topic_link&utm_medium=email&utm_source=new_topic
|
|
||||||
public void testReadingAndWritingBreakpointAlleles() {
|
public void testReadingAndWritingBreakpointAlleles() {
|
||||||
String testVCF = privateTestDir + "breakpoint-example.vcf";
|
String testVCF = privateTestDir + "breakpoint-example.vcf";
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue