JAL-629 Add --seqid for non-subval use, make arg value naming more consistent in...
authorBen Soares <b.soares@dundee.ac.uk>
Tue, 9 May 2023 10:19:37 +0000 (11:19 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Tue, 9 May 2023 10:19:37 +0000 (11:19 +0100)
help/help/html/features/clarguments-ng-summary.html
help/help/html/features/clarguments-ng.html
src/jalview/bin/Commands.java
src/jalview/bin/argparser/Arg.java

index a85dc24..ef766b1 100644 (file)
@@ -30,7 +30,7 @@
   <tr>
   <td><code>--open&nbsp;<em>filename/URL ...</em></code></td>
   <td>
-  Opens one or more alignment files in new alignment windows.
+  Opens one or more alignment files <em>filename</em> or URLs <em>URL</em> in new alignment windows.
   <a href="clarguments-ng.html#open">Examples</a>.
   </td>
   <td>
   
   <tr>
   <td><code>--append&nbsp;<em>filename/URL ...</em></code></td>
-  <td>Appends one or more alignment files to an open alignment window (or opens a new alignment if none already open).</td>
+  <td>Appends one or more alignment files <em>filename</em> or URLs <em>URL</em> to the open alignment window (or opens a new alignment if none already open).</td>
   <td>
    <code>
-      colour=<em>colourscheme</em>,
+      colour=<em>name</em>,
       title=<em>title</em>,
       features=<em>featurefile</em>,
       annotations=<em>annotationfile</em>,
   </tr>
   
   <tr>
-  <td><code>--title&nbsp;<em>"title"</em></code></td>
-  <td>Specifies the title for the open alignment window.</td>
+  <td><code>--title&nbsp;<em>"string""</em></code></td>
+  <td>Specifies the title for the open alignment window as <em>string</em>.</td>
   <td></td>
   <td align="center">&#x2713;</td>
   </tr>
   
   <tr>
-  <td><code>--colour&nbsp;<em>colourscheme</em></code></td>
-  <td>Applies the given colour scheme to the open alignment window.  Valid values are:
+  <td><code>--colour&nbsp;<em>name</em></code></td>
+  <td>Applies the colour scheme <em>name</em> to the open alignment window.  Valid values for <em>name</em>are:
   <code>clustal</code>,
   <code>blosum62</code>,
   <code>pc-identity</code>,
   
   <tr>
   <td><code>--features&nbsp;<em>filename/URL</em></code></td>
-  <td>Add a feature file to the open alignment.</td>
+  <td>Add a feature file <em>filename</em> or URL <em>URL</em> to the open alignment.</td>
   <td></td>
   <td align="center">&#x2713;</td>
   </tr>
   
   <tr>
   <td><code>--tree&nbsp;<em>filename/URL</em></code></td>
-  <td>Add a tree file to the open alignment.</td>
+  <td>Add a tree file <em>filename</em> or URL <em>URL</em> to the open alignment.</td>
   <td></td>
   <td align="center">&#x2713;</td>
   </tr>
   
   <tr>
   <td><code>--annotations&nbsp;<em>filename/URL</em></code></td>
-  <td>Add an annotations file to the open alignment.</td>
+  <td>Add an annotations file <em>filename</em> or URL <em>URL</em> to the open alignment.</td>
   <td></td>
   <td align="center">&#x2713;</td>
   </tr>
-  
+
   <tr>
   <td><code>--showannotations / --noshowannotations</code></td>
   <td>Enforces showing (or not showing) alignment annotations.</td>
   <td></td>
   <td align="center">&#x2713;</td>
   </tr>
-  
+
+  <tr>
+  <td><code>--wrap / --nowrap</code></td>
+  <td>Enforces wrapped (or not wrapped) alignment formatting.</td>
+  <td></td>
+  <td align="center">&#x2713;</td>
+  </tr>
+
   
   <tr>
   <td><code>--structure&nbsp;<em>filename/URL</em></code></td>
-  <td>Load a structure file attached to a sequence in the open alignment.</td>
+  <td>Load a structure file <em>filename</em> or URL <em>URL</em> associated with a sequence in the open alignment.  The sequence to be associated with can be specified with a following <code>--seqid</code> argument, or the subval modifier <code>seqid=<em>ID</em></code> can be used.  A subval <em>INDEX</em> can also be used to specify the <em>INDEX-th</em> sequence in the open alignment.</td>
   <td>
     <code>
-      seqid=<em>sequenceid</em></code> or <code><em>sequence index</em>,
+      seqid=<em>sequenceid</em></code> or <code><em>INDEX</em>,
       paefile=<em>paefilename</em>,
       tempfac=<em>temperature factor type</em>,
       ssannotations,
     </code></td>
   <td align="center">&#x2713;</td>
   </tr>
-  
-  
+
+
+  <tr>
+  <td><code>--seqid&nbsp;<em>ID</em></code></td>
+  <td>Specify the sequence name for the preceding <code>--structure</code> to be associated with.</td>
+  <td></td>
+  <td align="center">&#x2713;</td>
+  </tr>
+
+
   <tr>
   <td><code>--paematrix&nbsp;<em>filename</em></code></td>
-  <td>Add a PAE file to the preceding <code>--structure</code></td>
+  <td>Add a PAE json matrix file <em>filename</em> to the preceding <code>--structure</code>.</td>
   <td></td>
   <td align="center">&#x2713;</td>
   </tr>
-  
+
   
   <tr>
-  <td><code>--tempfac&nbsp;<em>temperature factor type</em></code></td>
-  <td>Set the type of temperature factor.  Possible values are
+  <td><code>--tempfac&nbsp;<em>name</em></code></td>
+  <td>Set the type of temperature factor.  Possible values for <em>name</em> are
     <code>default</code>,
     <code>plddt</code>
   </td>
   
   
   <tr>
-  <td><code>--structureviewer&nbsp;<em>structure viewer</em></code></td>
-  <td>Set the structure viewer to use to open the 3d structure file specified in previous <code>--structure</code>.  Possible values are:
+  <td><code>--structureviewer&nbsp;<em>name</em></code></td>
+  <td>Set the structure viewer to use to open the 3d structure file specified in previous <code>--structure</code> to <em>name</em>.  Possible values of <em>name</em> are:
   <br/>
     <code>none</code>,
     <br/>
index dbef941..a6c91fe 100644 (file)
 
 
 
-
-  <p>
-  Jalview processes arguments on the command line sequentially. If
-  you would like to pass a <a href="jvlfiles.html">'JVL' file</a> containing
-  <a href="../memory.html">memory settings</a> or any other launch
-  parameters, then include it at the beginning of the command line to
-  ensure they are processed before any remaining arguments.
-  <br>
-  Typical command line execution follows the following pattern:
-  <pre>
-  jalview -open &lt;Alignment File/URL&gt; [additional import arguments] [export arguments]
-  </pre>
-  
-  <table width="100%" border="1" cellspacing="0" cellpadding="0">
-    <tr>
-      <td width="27%"><div align="center">-nodisplay</div></td>
-      <td width="73%"><div align="left">Run Jalview without
-          User Interface. (automatically disables questionnaire, version
-          and usage stats checks)</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-nowebservicediscovery</div></td>
-      <td><div align="left">Do not query configured servers to
-          discover web services (<em>Since 2.11.2.0</em>)</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-open FILE/URL</div></td>
-      <td><div align="left">Specify the alignment file to
-          open or process by providing additional arguments.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-props FILE/URL</div></td>
-      <td><div align="left">Use the given Jalview properties
-          file instead of users default.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-setprop PROPERTY=value</div></td>
-      <td><div align="left">(JalviewJS ONLY) sets the given
-          property to the given value</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-features FILE/URL</div></td>
-      <td><div align="left">
-          <p>
-            Use the given file to add sequence features to an alignment.
-            See <a href="featuresFormat.html" target="NEW">Features
-              File</a> (Known as Groups file prior to 2.08) description.
-          </p>
-
-        </div></td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-colour COLOURSCHEME</div>
-      </td>
-      <td>Set the colourscheme for the alignment. This can be any
-        of the built-in colourschemes, a name of a predefined
-        colourscheme (defined in the Jalview properties file), or an
-        'inline' colourscheme (see the applet's colour parameter for
-        more information).</td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-annotations FILE/URL</div>
-      </td>
-      <td>Add precalculated annotations to the alignment. See <a
-        href="annotationsFormat.html" target="NEW">Annotation
-          File</a> description.
-      </td>
-    </tr>
-        <tr>
-      <td>
-        <div align="center">-no-annotation</div>
-      </td>
-      <td>Do not display annotation below the alignment. 
-      </td>
-    </tr>
-    
-    <tr>
-      <td>
-        <div align="center">-tree FILE/URL</div>
-      <td>
-        <div align="left">Load the given newick format tree file
-          onto the alignment</div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-questionnaire URL</div>
-      <td>
-        <div align="left">Queries the given URL for information
-          about any Jalview user questionnaires</div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-noquestionnaire</div>
-      <td>
-        <div align="left">Turn off questionnaire check</div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-nonews</div>
-      <td>
-        <div align="left">
-          Disable check for <a href="../webServices/newsreader.html">Jalview
-            news</a> on startup (not recommended other than for classroom /
-          demo usage)
-        </div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-nousagestats</div>
-      <td>
-        <div align="left">Turn off google analytics usage tracking</div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-[no]sortbytree</div>
-      <td>
-        <div align="left">Enable or disable automatic sorting of
-          associated view when a new tree is displayed</div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-groovy FILE/URL</div>
-      <td>
-        <div align="left">Execute groovy script in FILE (where
-          FILE may be 'STDIN' to read from the standard input) after all
-          other arguments have been processed</div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-jabaws URL</div>
-      <td>
-        <div align="left">Specify the URL of the preferred JABAWS
-          server</div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-fasta FILE</div>
-      </td>
-
-      <td>
-        <div align="left">Create alignment file FILE in Fasta
-          format.</div>
-      </td>
-    </tr>
-    <tr>
-      <td><div align="center">-clustal FILE</div></td>
-      <td><div align="left">Create alignment file FILE in
-          Clustal format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-msf FILE</div></td>
-
-      <td><div align="left">Create alignment file FILE in MSF
-          format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-pileup FILE</div></td>
-      <td><div align="left">Create alignment file FILE in
-          Pileup format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-pir FILE</div></td>
-
-      <td><div align="left">Create alignment file FILE in PIR
-          format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-pfam FILE</div></td>
-      <td><div align="left">Create alignment file FILE in
-          PFAM format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-blc FILE</div></td>
-      <td><div align="left">Create alignment file FILE in BLC
-          format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-json FILE</div></td>
-      <td><div align="left">Create alignment file FILE in
-          JSON format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-jalview FILE</div></td>
-
-      <td><div align="left">Create alignment file FILE in
-          Jalview format.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-png FILE</div></td>
-      <td><div align="left">Create PNG image FILE from
-          alignment.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-imgMap FILE</div></td>
-
-      <td><div align="left">Create HTML file FILE with image
-          map of PNG image.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-eps FILE</div></td>
-      <td><div align="left">Create EPS file FILE from
-          alignment.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-svg FILE</div></td>
-      <td><div align="left">Create Scalable Vector Graphics
-          file FILE from alignment.</div></td>
-    </tr>
-    <tr>
-      <td><div align="center">-biojsMSA FILE</div></td>
-      <td><div align="left">Write an HTML page to display
-          the alignment with the <a href="biojsmsa.html">
-          BioJS MSAviewer MSA</a>
-          </div>
-      </td>
-    </tr>
-    <tr>
-      <td><div align="center">-jvmmempc=PERCENT</div></td>
-      <td><div align="left"><em>Only available with standalone executable jar or jalview.bin.Launcher.</em>
-          Limit maximum heap size (memory) to PERCENT% of total physical memory detected.
-         This defaults to 90 if total physical memory can be detected.
-         See <a href="../memory.html">Memory usage settings for Jalview</a> for more details.
-          </div>
-      </td>
-    </tr>
-    <tr>
-      <td><div align="center">-jvmmemmax=MAXMEMORY</div></td>
-      <td><div align="left"><em>Only available with standalone executable jar or jalview.bin.Launcher.</em>
-          Limit maximum heap size (memory) to MAXMEMORY. MAXMEMORY can be specified in bytes, kilobytes(k), megabytes(m),
-         gigabytes(g) or if you're lucky enough, terabytes(t).
-         This defaults to 32g if total physical memory can be detected, or to 8g if total physical memory cannot be detected.
-         See <a href="../memory.html">Memory usage settings for Jalview</a> for more details.
-          </div>
-      </td>
-    </tr>
-  </table>
 </body>
 </html>
index a0209fd..328c6e1 100644 (file)
@@ -413,7 +413,7 @@ public class Commands
         {
           String val = av.getValue();
           SubVals subVals = av.getSubVals();
-          SequenceI seq = getSpecifiedSequence(af, subVals);
+          SequenceI seq = getSpecifiedSequence(af, avm, av);
           if (seq == null)
           {
             // Could not find sequence from subId, let's assume the first
@@ -835,21 +835,34 @@ public class Commands
     return true;
   }
 
-  private SequenceI getSpecifiedSequence(AlignFrame af, SubVals subId)
+  private SequenceI getSpecifiedSequence(AlignFrame af, ArgValuesMap avm,
+          ArgValue av)
   {
-    if (subId == null)
+    SubVals subVals = av.getSubVals();
+    ArgValue idAv = avm.getClosestNextArgValueOfArg(av, Arg.SEQID);
+    SequenceI seq = null;
+    if (subVals == null && idAv == null)
       return null;
     AlignmentI al = af.getCurrentView().getAlignment();
-    if (subId.has("seqid"))
+    if (al == null)
+      return null;
+    if (subVals != null)
     {
-      return al.findName(subId.get("seqid"));
+      if (subVals.has("seqid"))
+      {
+        seq = al.findName(subVals.get("seqid"));
+      }
+      else if (-1 < subVals.getIndex()
+              && subVals.getIndex() < al.getSequences().size())
+      {
+        seq = al.getSequenceAt(subVals.getIndex());
+      }
     }
-    else if (-1 < subId.getIndex()
-            && subId.getIndex() < al.getSequences().size())
+    else if (idAv != null)
     {
-      return al.getSequenceAt(subId.getIndex());
+      seq = al.findName(idAv.getValue());
     }
-    return null;
+    return seq;
   }
 
   // returns the first Arg value intended for the structure structFilename
index 763a6f2..d77c075 100644 (file)
@@ -17,7 +17,7 @@ public enum Arg
   TYPE, FORMAT, OVERWRITE, TEXTRENDERER, QUIT, CLOSE, DEBUG("d"), TRACE,
   QUIET("q"), ARGFILE, NEW, NPP("n++"), SUBSTITUTIONS, INITSUBSTITUTIONS,
   NIL, SPLASH, SETARGFILE, UNSETARGFILE, WEBSERVICEDISCOVERY, ALL, BACKUPS,
-  TESTOUTPUT;
+  TESTOUTPUT, SEQID;
 
   public static enum Opt
   {
@@ -111,6 +111,8 @@ public enum Arg
     TITLE.setOptions(Opt.STRING, Opt.LINKED);
     PAEMATRIX.setOptions(Opt.STRING, Opt.LINKED, Opt.MULTI,
             Opt.ALLOWSUBSTITUTIONS);
+    SEQID.setOptions(Opt.STRING, Opt.LINKED, Opt.MULTI,
+            Opt.ALLOWSUBSTITUTIONS);
     NOSTRUCTURE.setOptions(Opt.UNARY, Opt.LINKED);
     STRUCTURE.setOptions(Opt.STRING, Opt.LINKED, Opt.MULTI,
             Opt.ALLOWSUBSTITUTIONS);