Skip to content

Command Line Syntax Transition For Users (Pre Transition)

Chris Norman edited this page Jul 26, 2018 · 1 revision

Command Line Syntax Transition For Users (Pre Transition)

Work In Progress...

This is one of 3 landing pages for Picard users that will contain notes about the Barclay command line syntax transition. Since the transition will be phased over several releases (first a warning that the transition is coming; followed by a warning that the transition has occurred but you can still opt in for the old syntax, and finally the removal of the old parser) a link to the page describing the options appropriate for that stage will be displayed on the command line when the user attempts to use old syntax. This document is for the first (current) phase.

In a future release, Picard will transition to a new command line argument syntax. Below is an example command line showing the difference between the old and new syntax, with the old command line shown first:

java -jar build/libs/picard.jar SortSam I=testdata/picard/sam/namesorted.test.sam SORT_ORDER=coordinate O=sorted.sam

java -jar build/libs/picard.jar SortSam -I testdata/picard/sam/namesorted.test.sam -SORT_ORDER coordinate -O sorted.sam

The main difference is that when using the new syntax, argument names are specified using a leading "-" or "--", with the argument value following, and separated from the argument name by a space. Picard arguments have both short names and long names (in the example above, the SORT_ORDER argument has the shortname alias "SO"). The new parser accepts either "-" or "-" interchangeably, for either the short or long name.

Users can begin using the new syntax with the currently released version of Picard by passing the system property picard.useLegacyParser=false on the command line:

java -Dpicard.useLegacyParser=false -jar build/libs/picard.jar SortSam -I testdata/picard/sam/namesorted.test.sam -SORT_ORDER coordinate -O sorted.sam