Dispom
by Jens Keilwagen, Jan Grau, Ivan A. Paponov, Stefan Posch, Marc Strickert and Ivo Grosse.
Description
Background
Transcription factors are a main component of gene regulation as they activate or repress gene expression by binding to specific binding sites in promoters. The de-novo discovery of transcription factor binding sites in target regions obtained by wet-lab experiments is a challenging problem in computational biology, which has not been fully solved yet.
Results
We present a de-novo motif discovery tool for finding differentially abundant transcription factor binding sites that models existing positional preferences of binding sites and adjusts the length of the motif in the learning process. Based on the evaluation of 18 various benchmark data sets we find that the prediction performance of this tool is superior to existing tools for de-novo motif discovery. Finally, we apply the tool to discover binding sites enriched in promoters of auxin-responsive genes extracted from Arabidopsis thaliana microarray data, and we find a motif that can be interpreted as an elongated auxin-responsive element predominately positioned in the 250-bp region upstream of the transcription start site. Using an independent data set of auxin-responsive genes, we find that the refined motif increases the auxin specificity by more than three orders of magnitude in genome-wide predictions compared to the canonical auxin-responsive element.
Conclusions
We find that the combination of searching for differentially abundant motifs and inferring a position distribution from the data is beneficial for de-novo motif discovery. Hence, we make the tool freely available as a component of the open-source Java framework Jstacs and as a stand-alone application.
Paper
The paper De-novo discovery of differentially abundant transcription factor binding sites including their positional preference has been published in PLoS Computational Biology.
Download
- Dispom can be downloaded here.
- The benchmark data sets with implanted binding sites from Jaspar database can be downloaded here.
- The auxin data sets can be downloaded here.
- The position frequency matrices (PFMs) of the predictions on the metazoan compendium can be downloaded here.
- The sources of Dispom are available as part of the Jstacs sources. You find the main class of Dispom at projects.dispom.Dispom.java.
Start instructions
Once you have unzipped the archive, you can start Dispom e.g. by invoking
java -jar Dispom.jar home=path/to/data/directory/ fg=fgfile.txt bg=bgfile.txt init=best-random=100 p-val=1E-4
to search for motifs that are over-represented in path/to/data/directory/fgfile.txt
but not in path/to/data/directory/bgfile.txt
, initialize Dispom with the best from 100 randomly drawn starting values, and search for motif occurrences with a p-value of less than 1E-4
.
The arguments have the following meaning
name | comment | type |
home | the path to the data directory, default = ./ | String |
ignore | the char that is used to mask comment lines in data files, e.g., '>' in a FASTA-file, default = > | Character |
fg | the file name of the foreground data file (target data set, i.e. the file containing sequences which are expected to contain binding sites of a common motif) | String |
bg | the file name of the background data file (control data set), OPTIONAL | String |
position | a switch whether to use uniform, skew-normal, or mixture position distribution, range={UNIFORM, SKEW_NORMAL, MIXTURE}, default = MIXTURE | String |
mean | the mean of the a priori TFBS distribution, default = 250.0 | Double |
sd | the sd of the a priori TFBS distribution, valid range = [1.0, Infinity], default = 150.0 | Double |
motifs | the number of motifs to be searched for, valid range = [1, 5], default = 1 | Integer |
length | the motif length that is used at the beginning, valid range = [1, 50], default = 15 | Integer |
flankOrder | The Markov order of the model for the flanking sequence and the background sequence, valid range = [0, 5], default = 0 | Integer |
motifOrder | The Markov order of the motif model, valid range = [0, 3], default = 0 | Integer |
bothStrands | a switch whether to use both strands or not, default = true | Boolean |
init | the method that is used for initialization, one of 'best-random=<number>', 'best-random-plugin=<number>', 'best-random-motif=<number>', 'enum-all=<length>', 'enum-data=<length>', 'heuristic=<number>', and 'specific=<sequence or file of sequences>' (also see Initialization strategies below) | String=[Integer | String] |
adjust | a switch whether to adjust the motif length, i.e., either to shrink or expand, default = true | Boolean |
maxPos | a switch whether to use max. pos. in the heuristic or not, default = true | Boolean |
learning | a switch for the learning principle, range={ML, MAP, MCL, MSP}, default = MSP | String |
threads | the number of threads that are use to evaluate the objective function and its gradient, valid range = [1, 128], default = 4 | Integer |
starts | the number of independent starts of Dispom, valid range = [1, 100], default = 1 | Integer |
xml | the file name of the xml file the classifier is written to, default = ./classifier.xml | String |
p-val | a p-value for predicting binding sites, valid range = [0.0, 1.0], OPTIONAL | Double |
Memory requirements: If your data sets are rather large, i.e. contain a great number of sequences or rather long sequences, the standard memory allocation of Java may not be sufficient. In such cases, you can increase the amount of memory requested by the virtual machine by specifying -Xms and -Xmx VM-arguments. If, for instance, you want Dispom to start with an initial memory of 512MB which may increase up to 1GB, the above command line must be changed to
java -Xms512M -Xmx1G -jar Dispom.jar home=path/to/data/directory/ fg=fgfile.txt bg=bgfile.txt init=best-random=100 p-val=1E-4
AFAIC that's the best aswner so far!
Case studies
In case studies presented in the paper, we started Dispom 50 times.
- 47 times, we used init=best-random-plugin=100.
- Once, we used init=heuristic=100.
- Once, we used init=enum-data=6.
- Once, we used init=enum-data=8.
For predicting binding sites, we used p-val=1E-4.