Skip to content

A machine learning model for the prediction of optimal growth temperature of microorganisms and enzyme catalytic optima

License

Notifications You must be signed in to change notification settings

EngqvistLab/Tome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tome: Temperature optima for microorganisms and enzymes

Tome (Temperature optima for microorganisms and enzymes) is an open source suite for two fundamental applications:

  • predict the optimal growth temperature from proteome sequences
  • get enzymes that have a temperature optima in a specified range for a given EC number or CAZy family ID. If a protein sequence is provided, then it will select and report all homologous enzymes.

Citation

If you have used tome getEnzymes in Tome v1.0 or tome predOGT, please cite
Li G., et al., (2019). Machine learning applied to predicting microorganism growth temperatures and enzyme catalytic optima. ACS Synthetic Biology, 8, 1411–1420.

If you have tome getEnzymes in Tome v2.0, please cite
Li G., et al., (2019). Performance of regression models as a function of experiment noise. arXiv:1912.08141 [q-bio.BM]

System

  • macOS
  • Linux

Installation

(1). Download tome package
(2). Open your terminal
(3). Change directory to the tome package
cd [directory to tome, where setup.py is]
(4). Run following command
pip install -e .
(5) Now you can use 'tome' via command line.

There is a folder named 'test' in the package. One can use the instructions in 'Usage' section to test the package.

Depedences

  • ncbi-blast-2.7.1+ (ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/) (This is only mandatory for 'tome predOGT -seq')
  • pandas
  • Biopython
  • numpy
  • sklearn
  • Pyhton 2.7 or Python 3

Usage:

Get help message of tome with

tome -h
usage: tome [-h] {predOGT,getEnzymes} ...

Tome (Temperature optima for microorganisms and enzymes) is an open source suite for two purposes: (1) predict the
optimal growth temperature from proteome sequences (predOGT) (2) get homologue enzymes for a given class id (EC number or
CAZy family) with/without a sequence (getEnzymes) A detailed list of options can be obtained by calling 'tome predOGT
--help'for predOGT or 'tome getEnzymes --help' for getEnzymes

positional arguments:
  {predOGT,getEnzymes}
    predOGT             Predict the optimal growth temperature from proteomes
    getEnzymes          Get (homologue) enzymes for a given EC number of CAZy class with/without a sequence

optional arguments:
  -h, --help            show this help message and exit

1. Prediction of optimal growth temperature

Get help message of tome predOGT with

tome predOGT -h
usage: tome predOGT [-h] [--fasta] [--indir] [--train] [-o] [-p]

optional arguments:
  -h, --help       show this help message and exit
  --fasta          a fasta file containing all protein sequence of a proteome.
  --indir          a directory that contains a list of fasta files. Each fasta file is a proteome. Required for the
                   prediction of OGT for a list of microorganisms. Important: Fasta file names much end with .fasta
  --train          train the model again
  -o , --out       out file name
  -p , --threads   number of threads used for feature extraction, default is 1. if set to 0, it will use all cpus
                   available

Case 1.1 Prediction of optimal growth temperature for one microorganism

tome predOGT --fasta test/proteomes/pyrococcus_horikoshii.fasta

Then you will get following results:

FileName	predOGT (C)
pyrococcus_horikoshii.fasta	94.0

Case 1.2 Predict optimal growth temperatures for a list of microorganisms. Fasta files must end with .fasta

tome predOGT --indir test/proteomes/ -o test/proteomes/predicted_ogt.tsv

Then you will get an tab-seperated output file predicted_ogt.tsv with following contents:

FileName	predOGT (C)
succinivibrio_dextrinosolvens.fasta	38.27
pyrococcus_horikoshii.fasta	94.0
caldanaerobacter_subterraneus.fasta	70.0

train the model

In case there would be some warnings due to the versions of sklearn when loading the model, one can use following command to train the model again:

tome predOGT --train

Expected output after training is

A new model has beed successfully trained.
Model performance:
        RMSE: 2.159489340036136
          r2: 0.9552614628185572
  Pearson r:(0.9775886084277753, 0.0)
  Spearman r:SpearmanrResult(correlation=0.93331975456613, pvalue=0.0)

Saving the new model to replace the original one...
Done!

2. Get enzyme sequences

The first time tome getEnzymes --database brenda used, a SQLite3 database ~3.5 GB will be downloaded.
The first time tome getEnzymes --database cazy used, a SQLite3 database ~601 MB will be downloaded.
Those two databases are deposited on Zenodo (https://zenodo.org/record/3578468#.XffgbpP0nOQ). These files contain the enzyme annotation data.

If automatic download failed, then one can manually download following two files from Zenodo and put them into tome/external_data/: BRENDA: https://zenodo.org/record/3578468/files/brenda.sql CAZy : https://zenodo.org/record/3578468/files/cazy.sql

Get help message of tome getEnzymes with

tome getEnzymes -h
usage: tome getEnzymes [-h] [--database] [--class_id] [--temp_range] [--data_type] [--seq] [--outdir] [--evalue] [-p]

optional arguments:
  -h, --help          show this help message and exit
  --database          the dataset should be used. Should be either brenda or cazy
  --class_id , --ec   EC number or CAZy family. 1.1.1.1 for BRENDA, GH1 for CAZy, for instance.
  --temp_range        the temperature range that target enzymes should be in. For example: 50,100. 50 is lower bound and
                      100 is upper bound of the temperature.
  --data_type         [OGT or Topt], If OGT, Tome will find enzymes whose OGT of its source organims fall into the
                      temperature range specified by --temp_range. If Topt, Tome will find enzymes whose Topt fall into
                      the temperature range specified by --temp_range. Default is Topt
  --seq               input fasta file which contains the sequence of the query enzyme. Optional
  --outdir            directory for ouput files. Default is current working folder.
  --evalue            evalue used in ncbi blastp. Default is 1e-10
  -p , --threads      number of threads used for blast, default is 1. if set to 0, it will use all cpus available

Brenda Case 2.1 Get enzymes for a given ec number.

For example, we want to get the enzymes with EC 3.2.1.1 with a temperature optima higher 50 °C.

tome getEnzymes --ec 3.2.1.1 --temp_range 50,200 --data_type Topt --outdir test/enzyme_without_seq/

Two output files will be generated: test/enzyme_without_seq/3.2.1.1_all.fasta and test/enzyme_without_seq/3.2.1.1_all.tsv 3.2.1.1_all.fasta contains all sequences for this EC number. This can be used for mutisequence alignment with tools like Clustal Omega (https://www.ebi.ac.uk/Tools/msa/clustalo/) enzyme_without_seq/3.2.1.1_all.tsv contains following columns:

  • uniprot id
  • domain: Domain information of source organism (Archaea/Bacteria/Eukaryote)
  • organism: name of source organism
  • ogt: optimal growth temperature of source organism
  • ogt_source: if the growth temperature is predicted or experimentally determined
  • topt: temperature optima of the enzyme
  • topt_source: if topt is predicted or experimentally determined
  • seqeunce: protein sequence

One can also use following command to find enzymes from organisms with a OGT fall into the temperature range specified with --temp_range. The output files have the same format as above described.

tome getEnzymes --ec 3.2.1.1 --temp_range 50,200 --data_type OGT --outdir test/enzyme_without_seq/

Brenda Case 2.2 Get homologous enzymes for an given ec number and sequence.

For example, we want to get all homologs of an enzyme with EC 3.2.1.1 from Photobacterium profundum (OGT = 13°C). We want those homologs with a temperature optima higher 50 °C. The sequence for this enzyme is

>Q1Z0D7
MTSLFNTEYASTLSAPSVATNVILHAFDWPYSKVTENAKAIADNGYKAILVSPPLKSFHSKDGTQWWQRYQPQDYRVIDN
QLGNTNDFRTMVEILSLHDIDIYADIVFNHMANESHERSDLNYPNSNIISQYKDKREYFDSIKLFGDLSQPLFSKDDFLS
AFPIKDWKDPWQVQHGRISSGGSDPGLPTLKNNENVVKKQKLYLKALKKIGVKGFRIDAAKHMTLDHIQELCDEDITDGI
HIFGEIITDGGATKEEYELFLQPYLEKTTLGAYDFPLFHTVLDVFNKNASMASLINPYSLGSALENQRAITFAITHDIPN
NDVFLDQVMSEKNEQLAYCYILGRDGGVPLIYTDLDTSGIKNSRGKPRWCEAWNDPIMAKMIHFHNIMHCQPMVIIEQTL
DLLVFSRGHSGIVAINKGKTAVCYKLPAKYSEQDHTEIKEVINMEGVKLSPPSLSTEAGVILQLPAQSCAMLMV

There should be only one sequence in the fasta file. If more than 1 sequence is provided, only the first sequence would be used.

tome getEnzymes --seq test/enzyme_with_seq/test.fasta --ec 3.2.1.1 --temp_range 50,200 --data_type Topt --outdir test/enzyme_with_seq/

Two output files will be created:

  • Q1Z0D7_homologs.fasta: a fasta file which contains sequences for all homologs of query enzyme
  • Q1Z0D7_homologs.tsv: a tab-seperated file with following columns:
    • uniprot id
    • domain: Domain information of source organism (Archaea/Bacteria/Eukaryote)
    • organism: name of source organism
    • ogt: optimal growth temperature of source organism
    • ogt_source: if the growth temperature is predicted or experimentally determined
    • topt: temperature optima of the enzyme
    • topt_source: if topt is predicted or experimentally determined
    • Identity(%) from blast
    • Coverage(%) from blast
    • seqeunce: protein sequence

In this test case, 44 homologs with a temperature optima higher than 50 °C were found.

One can also use following command to find homologous enzymes from organisms with a OGT fall into the temperature range specified with --temp_range. The output files have the same format as above described.

tome getEnzymes --seq test/enzyme_with_seq/test.fasta --ec 3.2.1.1 --temp_range 50,200 --data_type OGT --outdir test/enzyme_with_seq/

In this case, 13 homologs from organisms with a OGT higher than 50 °C were found

CAZy case 2.4 Get enzymes for a given CAZy family ID.

tome getEnzymes --database cazy --class_id GH1 --temp_range 50,60 --data_type Topt --outdir test/cazy_enzyme_without_seq/

Similar as for BRENDA, This will find all enzymes in CAZy database that (1) belongs to GH1 family, (2) have a predicted Topt between 50 and 60 °C.

CAZy case 2.4 Get homologous enzymes for a given CAZy family ID.

tome getEnzymes --database cazy --class_id GH1 --temp_range 50,60 --data_type Topt --outdir test/cazy_enzyme_with_seq/ --seq test/cazy_enzyme_with_seq/test.fasta

Similar as for BRENDA, This will find all enzymes in CAZy database that (1) belongs to GH1 family, (2) have a predicted Topt between 50 and 60 °C, (3) homologous to the given sequence in test.fasta