by Jan Grau, Stefan Posch, Ivo Grosse, and Jens Keilwagen
Dimont is a universal tool for de-novo motif discovery. Dimont has successfully been applied to ChIP-seq, ChIP-exo and protein-binding microarray (PBM) data.
We provide Dimont as a public web-server, a web-application that can be installed in a local Galaxy server, and as a command line program.
If you use Dimont, please cite
J. Grau, S. Posch, I. Grosse, and J. Keilwagen. A general approach for discriminative de-novo motif discovery from high-throughput data. Nucleic Acids Research, 41(21):e197, 2013. doi: 10.1093/nar/gkt831
Dimont is available as a public web-server at galaxy.informatik.uni-halle.de.
Dimont @ Galaxy toolshed
Dimont, DimontPredictor, DimontGenomeScan, and a data extraction tool are also available from the Galaxy tool shed in repository dimont_motif_discovery. From the toolshed, all tools can be installed with minimal effort from the Galaxy admin interface.
Dimont @ Chipster
Dimont is also provided with Chipster starting from Chipster release 2.11.
Dimont is implemented in Java using Jstacs. You can download the command line application as a Jar. In addition, we provide the Jar of the Galaxy web-application for installing it in your local Galaxy server.
Dimont will be part of the next public release of the Jstacs library.
Running the command line application
For running the command line application, Java v1.6 or later is required.
The arguments of the command line application have the following meaning:
|home||Home directory (The path to the directory containing the input file. Output files are written to this directory as well., default = ./)||String|
|data||Input file (The file name of the file containing the input sequences in annotated FastA format (see below))||String|
|infix||Infix (a infix to be used for all output files (model, sequence logos, predicted binding sites))||String|
|position||Position tag (The tag for the position information in the FastA-annotation of the input file)||String|
|value||Value tag (The tag for the value information in the FastA-annotation of the input file)||String|
|sd||Standard deviation (The standard deviation of the position distribution centered at the position specified by the position tag, valid range = [1.0, 10000.0], default = 75.0)||Double|
|weightingFactor||Weighting factor (The value for weighting the data; either a value between 0 and 1, or a description relative to the standard deviation (e.g. +4sd), default = 0.2)||Double|
|starts||Starts (The number of pre-optimization runs., valid range = [1, 100], default = 20)||Integer|
|motifWidth||Initial motif width (The motif width that is used initially, may be adjusted during optimization., valid range = [1, 50], default = 15)||Integer|
|motifOrder||Markov order of motif model (The Markov order of the model for the motif., valid range = [0, 3], default = 0)||Integer|
|bgOrder||Markov order of background model (The Markov order of the model for the background sequence and the background sequence, -1 defines uniform distribution., valid range = [-1, 5], default = -1)||Integer|
|ess||Equivalent sample size (Reflects the strength of the prior on the model parameters., valid range = [0.0, Infinity], default = 4.0)||Double|
|delete||Delete BSs from profile (A switch for deleting binding site positions of discovered motifs from the profile before searching for futher motifs., default = true)||Boolean|
|threads||Compute threads (The number of threads that are use to evaluate the objective function and its gradient., valid range = [1, 128], OPTIONAL)||Integer|
Input sequences must be supplied in an annotated FastA format. In the annotation of each sequence, you need to provide a value that reflects the confidence that this sequence is bound by the factor of interest. Such confidences may be peak statistics (e.g., number of fragments under a peak) for ChIP data or signal intensities for PBM data. In addition, you need to provide an anchor position within the sequence. In case of ChIP data, this anchor position could for instance be the peak summit. For instance, an annotated FastA file for ChIP-exo data comprising sequences of length 100 centered around the peak summit could look like:
> peak: 50; signal: 515 ggccatgtgtatttttttaaatttccac... > peak: 50; signal: 199 GGTCCCCTGGGAGGATGGGGACGTGCTG... ...
where the anchor point is given as 50 for the first two sequences, and the confidence amounts to 515 and 199, respectively. The FastA comment may contain additional annotations of the format
key1 : value1; key2: value2;..... We also provide an example input file.
Accordingly, you would need to set the parameter "position" to
peak and the parameter "value" to
signal for the input file.
For the initial motif width and the number of pre-optimization runs, we provide default values that worked well in our studies on ChIP and PBM data. However, you may want adjust these parameters to meet your prior information.
The parameter "motifOrder" sets the order of the inhomogeneous Markov model used for modeling the motif. If this parameter is set to
0, you obtain a position weight matrix (PWM) model. If it is set to
1, you obtain a weight array matrix (WAM) model. You can set the order of the motif model to at most
The parameter "bgOrder" sets the order of the homogeneous Markov model used for modeling positions not covered by a motif. If this parameter is set to
-1, you obtain a uniform distribution, which worked well for ChIP data. For PBM data, orders of up to
4 resulted in an increased prediction performance in our case studies. The maximum allowed value is
The parameter "weightingFactor" defines the proportion of sequences that you expect to be bound by the targeted factor with high confidence. For ChIP data, the default value of
0.2 typically works well. For PBM data, containing a large number of unspecific probes, this parameter should be set to a lower value, e.g. 0.01.
The "ess" reflects the strength of the influence of the prior on the model parameters, where higher values smooth out the parameters to a greater extent.
The parameter "delete" defines if BSs of already discovered motifs should be deleted, i.e., "blanked out", from the sequence before searching for futher motifs.
Using the parameter "threads" you can set the number of threads that are used by Dimont. If you do not provide a value for this parameter, all available threads are used.
For instance, you can start Dimont on the example input file by calling
java -jar Dimont.jar home=./ data=dimont-example.fa infix=example position=peak value=signal threads=2
using a PWM as motif model, a uniform distribution as background model and two threads for optimization.
For larger data sets, the standard memory allocation of Java may not be sufficient. You can increase the amount of RAM allocated by the virtual machine using the VM parameters
-Xmx. To start Dimont using initially 512MB and a maximum of 2GB of RAM, you call
java -Xms512M -Xmx2G -jar Dimont.jar home=./ data=dimont-example.fa infix=example position=peak value=signal threads=2
We provide a Perl script for generating an annotated FastA file in the format required by Dimont from chromosome sequences and a BED file.
The chromosome sequences should be provided in a directory containing one FastA file for each chromosome, where the filename should match the chromosome identifier of the BED file with extension
.fa. For instance, if chromosome 1 is identified as
chr1 in the BED file, the corresponding sequence should be available in a file
The complete list of parameters of this Perl script is
perl extract_data.pl <chromDir> <bedfile> <chromcol> <poscol> <widthcol> <statcol> <outfile> <chromDir>: the directory containing the chromosome FastAs (as typically downloaded from UCSC as "chromFa"): one FastA per chromosome, one sequence per file <bedfile>: the file containing the peaks in tabular format, e.g., bed, gff, narrowPeak <chromcol>: the column of <bedfile> containing the chromosome <poscol>: the column of <bedfile> containing the position relative to the chromosome start <widthcol>: either i) <int> the column of <bedfile> containing the width of the peak or any region to be extracted symmetrically around <poscol> or ii) f<int> a fixed width of all regions, centered at the position given in <poscol>, e.g., f100 for a fixed width of 100 bp <statcol>: the column of <bedfile> containing the peak statistic or a similar measure of confidence <outfile>: the path to the output file, written as FastA
ChIP-seq input data
We thank Xiaotu Ma, Ashwinikumar Kulkarni, and Michael Q. Zhang for kindly providing the ChIP-seq binding regions compiled for their publication
X. Ma, A. Kulkarni, Z. Zhang, Z. Xuan, R. Serfling, and M. Q. Zhang. A highly efficient and effective motif discovery method for chip-seq/chip-chip data using positional information. Nucleic Acids Research, 40(7):e50, 2012.
Based on these data, we provide Dimont input data in the annotated FastA format required by Dimont.
If you use these data, please cite above publication and all appropriate original publications related to the data. In the archive, you find a ReadMe file containing the references to the original publications for each of the data sets.
In addition to the Dimont application, we also provide a command line program and a web-application of a prediction program that can be used to predict binding sites for motifs discovered by Dimont in small (training or test) data sets. This tool loads a Dimont model from the XML output of a previous Dimont run. In addition to the input parameters explained above, you can specify a threshold on the p-value of predicted binding sites. DimontPredictor may be useful if you, for instance, want to predict binding sites of a previously discovered motifs in other data sets, or if you want to try different p-values for filtering predictions. However, you should not use this tool for genomewide scans (cf. below).
The web-application of DimontPredictor is also installed at galaxy.informatik.uni-halle.de.
In addition to the Dimont and DimontPredictor, we also provide a command line program for genomewide scans. This tool loads a Dimont model from the XML output of a previous Dimont run and a genome to be scanned in fastA format.
You can download the DimontGenomeScan as a Jar.
Installing the web-application
The command-line program behind the web-application is a Jar as well, so Java is required on the server running Galaxy.
To install this command line program in Galaxy, copy it to the desired destination in the Galaxy
The command line application writes its Galaxy tool definition file itself. If you are in the directory containing the command-line program for Galaxy, you can create the tool definition file by calling
java -jar DimontWeb.jar --create DimontWeb.xml
Afterwards, this directory contains the tool definition file
DimontWeb.xml. Now you can register Dimont in the Galaxy
tool_conf.xml file. For details, see the Galaxy tutorial for adding new tools.