
The command-line interface to Silk, a Java package for multi-dimensional
histograms and density traces (aka kernel density estimation or KDE).

    java -cp silk.jar silk.SilkCmdLine [options] < input.file > output.file

INPUT / OUTPUT
    All I/O is done with stdin and stdout. Informational messages are written
    to stderr. Use -h or -help to get this message.
    
DESCRIBING YOUR DATA
    -ndim=#             (REQUIRED)
        Number of dimensions in the input data, between 1 and 30.
        
    -coords=#,#,...     (REQUIRED)
        Which column(s) in the input data hold the data coordinates. There must
        be exactly NDIM coordinates. Column numbering starts at 1.
        
    -label=#            (optional)
        Which column in the input data holds a text label identifying that
        data point. Column numbering starts at 1.
        
    -color=#           (optional)
        Which column in the input data holds a kinemage color for each point.
        Has an effect only with -kin. Column numbering starts at 1.
        
    -weight=#           (optional)
        Which column in the input data holds a weight for each point. Defaults
        to all points counting equally. Column numbering starts at 1.
        
    -bounds=#,#,#,#,... (REQUIRED)
        The minimum and maximum values for each coordinate, listed in the form
        min1,max1,min2,max2,...,minN,maxN.
        
    -wrap               (optional)
        Indicates that for each coordinate, min and max are equivalent. Used
        for angle measurements because 0 degrees == 360 degrees.
    
    -crop=#,#,#,#,...   (optional)
        Causes Silk to ignore input data points that lie outside the specified
        rectangular region. While -bounds can often be used to the same effect,
        complications with wrapping sometimes come up. Thus, this is a
        convenience function for examining subregions of the overall space.
        Listed in the form min1,max1,min2,max2,...,minN,maxN (like -bounds).
        
    -gridsize=#         (REQUIRED)
    -gridsize=#,#,...
    -gridsamples=#
    -gridsamples=#,#,...
        Either gridsize (width of one bin) or gridsamples (number of bins) must
        be specified. They may be assigned uniformly or per dimension. 
        
    -insep=:            (optional)
        Field delimiter character for input data. Defaults to a space (' ').
        Colons, commas, and tabs are other popular options.
        
    -sparse, -dense     (optional)
        Whether to use sparse data storage (the default) or dense. Sparse is
        slightly slower but requires less memory if there are many empty bins.
        Writing an .ndft file (see below) requires dense mode.
        
SMOOTHING OPERATIONS
    -histogram          (optional, choose one)
    -gaussian=#
    -cosine=#
        Specifies whether to do a histogram or a density trace, and whether to
        use a Gaussian or cosine mask (aka kernel) for the density trace.
        Gaussian and cosine flags require a half-width-at-half-height for the
        kernel. Histogram is much faster than the other two, especially for
        high-dimensional data.
        
    -twopass=#          (optional)
        Used with -gaussian or -cosine to invoke two-pass density-dependent
        smoothing, as described in Lovell et al. (2004) Proteins. The number
        given is the base second-pass kernel width ("k" in the paper).
        
    -lambda=#           (optional)
        Sets the exponential parameter "lambda" for density-dependent smoothing.
        It defaults to 0.5, which has worked well for our applications.
        
    -aniso=#,#,...      (optional)
        Scales the mask/kernel for the Gaussian or cosine anisotropically in
        different dimensions, so the final shape is ellipsoidal. For example,
        a value of 2 means twice as much smoothing in that dimension; a value
        of 0.5 means half as much smoothing.
        
POST-PROCESSING
    -no-op              (optional, choose one; default = no-op)
    -counts
    -ln
    -0to1
    -fraction
    -prob
    -energy
        Modifies the histogram / density trace values "x" after data processing:
            no-op       counts per dimensional unit
            counts      counts per "bin" (typical histogram output)
            ln          ln(1+x)
            0to1        all values linearly scaled to lie on [0,1]
            fraction    fraction of input points that map to density less than
                        x, when those points are looked up on the current trace.
            prob        probability: counts per bin divided by total counts,
                        so that sum of all bins is 1.0
            energy      -kT ln (x / num_input_points)
            
        Using the Ramachandran plot as an example, the default is to report
        number of points per square degree, but -counts will report points per
        bin (such that the sum of all the bin counts equals the total number
        of input points).  Thus, the values from -no-op do not change when
        -gridsize or -gridsamples is changed, but the values from -count do.
        
    -scale=#            (optional)
        Multiplies every value in the table by the given number (after the
        above operations are complete).
        
    -hillclimb          (optional)
    -hillclimb=#
        Values below the specified cutoff are "squashed" to zero (defaults to
        no squash), then all non-zero points are assigned a positive integer
        label. Each point walks "uphill" until it can go no higher; it takes on
        the (unique) label of the "peak" it reaches.
        
OUTPUT FORMATS
    -title="text..."    (optional)
        Embeds a descriptive title in the output file.
        
    -first              (optional)
        For text output, the value appears before the coordinates instead of
        after them. Text output is the default.
        
    -outsep=:           (optional)
        Not supported. The text output is always space delimited.
        
    -sigdig=#           (optional)
        Not supported. The text output always has full precision.
        
    -kin                (optional)
        Write a kinemage file plotting the input data points. For 1-, 2-, and
        3-D input data only.
        
    -ndft               (optional)
        Write a binary file that can be read by the old NDFloatTable class.
        Some loss of precision will occur. This option implies -dense.
    
    -hillmodes
        Outputs only a text file of the modal peaks found by the 'hills' method
        above. This option requires the ue of -hillclimb[=#].    
    
    -v                  (optional)
        Verbose output -- extra status messages.
        
    -quiet              (optional)
        Quiet output -- fewer status messages.

