Code Monkey home page Code Monkey logo

tfpredict's Introduction

TFpredict

Identification and structural characterization of transcription factors based on supervised machine learning

License (GPL version 3) Stable version DOI

Authors: Johannes Eichner*, Florian Topf*, Andreas Dräger, James T. Yurkovich, Michael Römer

*These two authors contributed equally to this work.


Article citations are critical for us to be able to continue support for TFpredict. If you use TFpredict and you publish papers about work that uses TFpredict, we ask that you please cite the TFpredict paper.

Research Article:
Johannes Eichner, Florian Topf, Andreas Dräger, Clemens Wrzodek, Dierk Wanke, and Andreas Zell. TFpredict and SABINE: Sequence-Based Prediction of Structural and Functional Characteristics of Transcription Factors. PLoS ONE, 8(12):e82238, December 2013. [ DOI | PDF ]

TFpredict is a tool which implements a novel three-step classification method which expects a protein sequence as input and (1) distinguishes transcription factors (TF) from other proteins (Non-TF), (2) predicts the structural superclass of TFs (see TransFac classification), and (3) identifies the DNA-binding domains of TFs. The latter two classification steps are only to be performed if the given protein sequence was identified as a TF. The tool incorporates the results from a BLAST+ search into a novel feature representation which allows TF/non-TF classification by state-of-the-art machine learning methods. Specific supervised classifiers were constructed for the task of identifying TFs and their structural superclasses, respectively. Next, known protein domains are detected by the tool InterProScan, and then the DNA-binding domains among these are filtered through GO-terms. TFpredict was implemented as an additional preprocessing tool for SABINE, which predicts the DNA-motif bound by a transcription factor, given its amino acid sequence, superclass, DNA-binding domains and organism.


Availability

Please note that TFpredict is available in two different versions that are currently organized in two separate branches. Each branch can be used for classification of transcription factors from a different domain:

  1. Eukaryotic transcription factors (master branch)
  2. Prokaryotic σ-factors (prokaryote branch) The algorithm itself is identical. What is different are the training data and weights for both scenarios. So, this distinctionis more for convenience to directly provide preconfigured versions of TFpredict for both domains of organisms.

Table of Contents

Introduction

Transcription factors (TF) are the key regulators of cell- and tissue-specific regulation of gene expression and play a crucial role in the orchestration of diverse biological processes, such as cell differentiation and the adaptation to changed environmental conditions. The induction or activation of target genes is achieved by the specific recognition of a DNA-motif located in the corresponding promoter regions, which is specifically recognized by the DNA-binding domain(s) of a TF. The specific interactions between TFs and their target genes are of high relevance for a more profound understanding of transcriptional gene expression in eukaryotes.

In recent work, we presented a novel method for the inference of the DNA-motif recognized by a particular TF, which is inferred from sequence-based features using Support Vector Regression. This method has been implemented in the tool SABINE (Stand-Alone BINding specificity Estimator) which is also available from our website. Besides the protein sequence, SABINE requires knowledge of the structural superclass and the DNA-binding domains of the input TF. Here, we present TFpredict, a tool which can 1) reliable distinguish TFs from other proteins, 2) predict the structural superclass of a TF and 3) detects its the DNA-binding domains. As TFpredict returns all structural information needed by SABINE to predict the DNA-motif of a given TF, we recommend the combined use of the two complementary tools.

TFpredict employs supervised machine learning methods implemented in the WEKA package for the classification of protein sequences. First, a binary classifier is used for the discrimination of TFs from other proteins (Non-TFs), and in a second step, a multi-class classifier is employed for superclass (Basic domain, Zinc Finger, Helix-turn-helix, Beta scaffold or Other) prediction. A look-up complements the second prediction step in the TransFac TF Classification in which the superclass of the input TF may already be annotated. A BLAST+ search is performed to obtain the feature representation of the input sequences and the homology of a query sequence to other proteins with known class is captured using a novel feature representation called bit score percentile features. Next, the domain composition of the query sequence is reconstructed using the tool InterProScan, and the DNA-binding domains are filtered based on a pre-defined set of GO terms.

Summary: The tool TFpredict provides an effective means for the identification and structural annotation of transcription factors (TFs), based on sequence homology features inferred from their amino acid sequence using the tool BLAST. In short, TFpredict combines sequence similarity searching with supervised machine learning methods (e.g., SVM, KNN, Naive Bayes) from the WEKA package for the identification of TFs and the prediction of their structural superclass. Furthermore, using the domain detection tool InterProScan in conjunction with a gene ontology-based filter the sequence regions spanned by DNA-binding domains are identified. If the tool is used in conjunction with SABINE the DNA motif of the TF may be determined in another prediction step. For this purpose, TFpredict generates a machine-readable text file which can be post-processed using the tool SABINE to perform the inference of the DNA-motif recognized by the given TF.

How to get started

The stand-alone version of TFpredict is equipped with a command-line interface which can be used for the batch processing of multiple protein sequences given in FASTA format. For convenience, TFpredict uses the webservice version of InterproScan. Thus, installing the perl stand-alone version of InterProScan (approx. 40GB) is not required. To support applications, which require the processing of a large number of sequences (e.g., the genome-wide prediction of TFs in a specific organism) TFpredict can alternatively be used with a local installation of InterProScan.

Installation

Download the JAR file TFPredict from https://github.com/draeger-lab/TFpredict/releases and also the example file test_seq.fasta.

You can also clone this repository and build a new snapshot release using the ant script shipped with this project by executing the following command:

ant jar_incl-lib

TFpredict is completely implemented in Java and provided as a runnable JAR file. All platforms (Windows, Mac, Linux) are supported provided that Java (JDK 1.6 or later) and BLAST (NCBI BLAST 2.2.27+ or later) is installed. You can download the latest version of BLAST from ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/.

Requirements:

  • BLAST (NCBI BLAST 2.2.27+ or later)

The analysis framework of TFpredict is entirely written in Java. Thus, it requires that Java Virtual Machine (JDK version 1.6 or newer) is installed on your system.

Installation and configuration of BLAST

Follow the instructions at the BLAST home-page for your operating system. For Unix, go to http://www.ncbi.nlm.nih.gov/books/NBK52640/ For Windows, see the instructions http://www.ncbi.nlm.nih.gov/books/NBK52637/.

Having BLAST successfully installed, it is necessary to pass the path to the executable to TFpredict. To this end, define the environment variable

BLAST_DIR

on your system to point to the installation directory of your copy of BLAST. This might be, for instance,

Path Operating System
/usr/local/ncbi/blast/ macOS
/opt/blast/latest/ Linux
C:\program~\NCBI\blast-x.x.xxx\ MS Windows

Note that x.x.xxx stands for some arbitrary version number of BLAST and must be replaced as necessary.

So, the variable BLAST_DIR could be set to one of the above example folders. In the bash under MacOS you would, e.g., type

export BLAST_DIR=/usr/local/ncbi/blast/

before executing TFpredict.


Manual

INPUT: FASTA file: contains the protein identifiers and sequences in FASTA format (see Format Specification). You can find the example file test_seq.fasta in the project's main folder.

OUTPUT: SABINE input file: contains all information required for post-processing the results with SABINE (see Format Specification at https://github.com/draeger-lab/SABINE/). The output filename can be specified by the user (see OPTIONS: -sabineOutfile). The argument -species also has to be specified if an output file for SABINE shall be created.

USAGE:

java -jar TFpredict.jar <input_filename> [OPTIONS]

OPTIONS:

  • -sabineOutfile <output_filename> Output file for post-processing of the results with SABINE.
  • -species <organism_name> Organism name (e.g., Homo sapiens). See list of supported organisms: http://www.cogsys.cs.uni-tuebingen.de/software/SABINE/doc/organism_list.txt
  • -tfClassifier <classifier_name> Classifier used for TF/non-TF classification possible values: SVM_linear, NaiveBayes, KNN
  • -superClassifier <classifier_name> Classifier used for superclass prediction possible values: SVM_linear, NaiveBayes, KNN
  • -iprscanPath <path_to_iprscan> Path to iprscan executable from local InterProScan installation. Only needed if you have a local installation of InterProScan which shall be used by TFpredict.
  • -blastPath <path_to_blast> Path to "bin" directory containing BLAST executables (e.g., /opt/blast/latest). Only needed if environment variable BLAST_PATH is not set.
  • -ignoreCharacteristicDomains no classification based on predefined InterPro domains.
  • --help to display the usage of the script and an overview of the command line options.

How to proceed

First, you need to generate an input file in FASTA format (see format specification below) or example input file. The input file should contain the following information about the protein under study:

To run TFpredict on the example input file, use the command:

java -jar TFpredict.jar test_seq.fasta

To post-process the results generated by TFpredict with SABINE to predict DNA-motives for transcription factors identified among the input protein sequences, you have to pass two additional arguments to the program. First, the destination to which the output file shall be written has to be specified, and second, the correct species has to be provided. Please ensure that SABINE supports the given species (see list of supported organisms).

An exemplary call of the program which facilitates the post-processing of the results using the tool SABINE is shown here:

java -jar TFpredict.jar example.input -sabineOutfile example.output -species "Homo sapiens"

TFpredict returns an output file, which contains the results of the performed prediction steps in the SABINE input file format.

If you have a local installation of the tool InterProScan, which shall be used by TFpredict, you have to pass the destination of the main executable of InterProScan as an argument to TFpredict.

Assuming that InterProScan was installed to the directory /opt/iprscan you could use the following command:

java -jar TFpredict.jar example.input -iprscanPath /opt/iprscan/bin/iprscan

Format specification

To analyze a given protein with TFpredict the tool needs the corresponding amino acid sequence and organism. This information has to be formatted as specified in the TFpredict input file format description.

The results of TFpredict are returned to the user via the standard output. Optionally, an output file can be generated which can be processed using SABINE to predict the DNA-binding specificity of transcription factors identified among the protein sequences analyzed by TFpredict. See the SABINE input file format specification for a detailed description of the file format.

The input file format description specifies the input data for an individual TF. You can pack multiple TFs in one input file to sequentially process more extensive datasets with SABINE. In addition to the general description of the file formats, example input and output files for SABINE are provided.

FASTA file:  

  >Sequence_1
  MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGP
  DEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAK
  SVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHE
  RCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNS
  SCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELP
  PGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPG
  GSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD

  >Sequence_2
  ...

  >Sequence_3
  ...

 SABINE input file:

  NA  Identifier
  XX
  SP  Organism
  XX
  CL  Classification (decimal classification no. as in TRANSFAC)
  XX
  S1  Amino acid sequence
  XX
  FT  DNA-binding domain (InterPro ID   start position   end position)
  XX
  //
  XX

Copyright and License

Copyright © 2013-2018 by the individual authors of this software.

GPL Version 3

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses/.


Acknowledgments

This project is promoted by

Federal Ministry of Education and Research The Virtual Liver Network Spher4Sys Marie Skłowdowska-Curie Actions

Contact

In case of any questions, please contact Andreas Dräger.

tfpredict's People

Contributors

draeger avatar ftopf avatar jeichner avatar mariahei avatar mroemer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tfpredict's Issues

0 InterPro domain(s) found.

hello,
I work TFpredict with interproscan-5.52-86.0 and latest blast in conda environment, with followed commands;
java -jar ~/Softwares/Miniconda3/DeepTFactor/TFpredict/dist/TFpredict_1.3.jar
test_seq.fasta
-sabineOutfile example.output
-species "Homo sapiens"
-iprscanPath /home/stone/Softwares/Miniconda3/miniconda3/envs/interproscan/bin/interproscan.sh
-blastPath /home/stone/Softwares/Miniconda3/miniconda3/envs/interproscan/

However, there is no InterPro domain(s) found.

The Softwares output as follow:

TFpredict
Identification and structural characterization of transcription factors

(version 1.3)

Copyright (C) 2012 Center for Bioinformatics Tuebingen (ZBIT),
University of Tuebingen, Florian Topf and Johannes Eichner.

This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain
conditions.
For details see: http://www.gnu.org/licenses/gpl-3.0.html

Third-party software used by this program:
WEKA. Copyright (C) 1998, 1999 Eibe Frank, Leonard Trigg, Mark Hall.
All rights reserved.
InterProScan. Copyright (C) 2011 Sarah Hunter, EMBL-EBI. All rights reserved.

Input FASTA file: test_seq.fasta
SABINE output file: example.output
Organism: Homo sapiens
TF/non-TF classifier: SVM linear kernel
Superclass classifier: SVM linear kernel

  • Fetching domains from InterProScan. This may take several minutes...

Processed Sequence1:
0 InterPro domain(s) found.
0 / 0 InterPro domain(s) are relevant for TF/Non-TF classification.
0 / 0 InterPro domain(s) are relevant for Superclass prediction.
0 / 0 InterPro domain(s) were identified as DNA-binding domain(s).

==========================================
Results report for sequence: Sequence1

TF/Non-TF prediction:

            Probability

TF 1.00
Non-TF 0.00

Superclass prediction:

                  Probability

Basic domain 0.00
Zinc finger 0.00
Helix-turn-helix 0.00
Beta scaffold 1.00
Other 0.00

DNA-binding domain could not be predicted.

So, Could you please help me resolve this problem, Is interproscan-5.52-86.0 not the right version or any others?

TFPredict prokaryote

Hello,
I would like to use TFPredict for prokaryotes, but I keep running into all sorts of problems.

Here is the summary of what I've found:

The downloaded release 1.3 for prokaryotes (md5sum 30d0bab360671f19b8015f5b876354a1) reports that it's version is 1.2. Is the latest version for prokaryotes actually 1.2?

Testing with provided test vector (with specified blastPath from commandline) the run ends with

java.lang.NullPointerException
        at java.base/java.io.Reader.<init>(Reader.java:167)
        at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:72)
        at io.BasicTools.readStream2List(BasicTools.java:451)
        at io.BasicTools.readResource2List(BasicTools.java:418)
        at io.BasicTools.readResource2List(BasicTools.java:408)
        at modes.Predict.prepareInput(Predict.java:352)
        at modes.Predict.main(Predict.java:187)
        at main.TFpredictMain.main(TFpredictMain.java:123)

I was able to track this to missing resources in the .jar archive (e.g. domainsTFpred.txt). Once copied the content of the 1.3 release zip file into the jar and repacking, this exception disappeared. However, I have no idea, if these files are the correct one for the prokaryote branch.

With the altered jar file I've managed to get to the phase where interproscan is running, however, the interproscan step never finishes (yes - I've waited quite a while).

Next, I've installed local copy of the interproscan to run locally and now the run ends with

java.lang.ArrayIndexOutOfBoundsException: Index 11 out of bounds for length 1
        at ipr.IPRextract.getSeq2DomainMap(IPRextract.java:57)
        at ipr.IPRextract.getSeq2DomainMap(IPRextract.java:46)
        at modes.Predict.runInterproScan(Predict.java:485)
        at modes.Predict.main(Predict.java:189)
        at main.TFpredictMain.main(TFpredictMain.java:123)

I've also tried out the release for eukaryotes. This appeared to work better (no missing files), however, I've encountered an issue with the web version of interproscan, the run on he test vector ends with

# continued output
/tmp/TFpredict_2548192364576464553_basedir/iprscan5-S20211026-090003-0157-94737396-p2m.tsv.txt (No such file or directory)

ls /tmp/TFpredict_2548192364576464553_basedir
iprscan5-S20211026-090003-0157-94737396-p2m.tsv.tsv  query.fasta

When I've used locally installed interproscan, the test vector run finished.


I also have few minor notes

  • the TFPredict prokaryotes does not print to stdout instead all output goes automatically to output.txt (this is different from the TFPredict eukaryotes)
  • what should be provided as path is inconsistent, for the blast, it appears to be the parrent directory for the bin/[blast executables], for the interproscan it appears to be the executable script directly. This was not obvious from the documentation
  • I've also tried the ant build for the prokaryotes and that didn't work either.

Could you please advise me, how to get the TFpredict for prokaryotes working?

Can this handle more than 1 sequence at a time?

I am wondering if this can handle a fasta file with more than 1 sequence? Or perhaps there is a limit? Maybe 20,000 cds? I have been trying to use this software with my transcriptome and it keeps running but no output is created. It does not have a problem with the provided test fasta which has 1 sequence.
Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.