GeMoMa
Gene Model Mapper (GeMoMa) is a homology-based gene prediction program. GeMoMa uses the annotation of protein-coding genes in a reference genome to infer the annotation of protein-coding genes in a target genome. Thereby, GeMoMa utilizes amino acid sequence and intron position conservation. In addition, GeMoMa allows to incorporate RNA-seq evidence for splice site prediction.
Paper
If you use GeMoMa, please cite
J. Keilwagen, M. Wenk, J. L. Erickson, M. H. Schattat, J. Grau, and F. Hartung. Using intron position conservation for homology-based gene prediction. Nucleic Acids Research, 2016. doi: 10.1093/nar/gkw092
J. Keilwagen, F. Hartung, M. Paulini, S. O. Twardziok, and J. Grau Combining RNA-seq data and homology-based gene prediction for plants, animals and fungi. BMC Bioinformatics, 2018. doi: 10.1186/s12859-018-2203-5
Download
GeMoMa is implemented in Java using Jstacs. You can download a zip file containing a readme, the GeMoMa jar file and some tiny scripts for running GeMoMa. The jar file allows for
- creating the XML file needed for the Galaxy integration
- running the command line interface (CLI) version.
You can also download a small manual for GeMoMa which explains the main steps for the analysis.
Galaxy
GeMoMa is available in a public web-server at galaxy.informatik.uni-halle.de. The provided web-server only allows a limited number of reference genes and uses a time out of 2 minutes per transcript prediction. For unlimited use, please use the command line program or integrate GeMoMa in your only Galaxy instance.
Running the command line application
For running the command line application, Java v1.8 or later is required.
NCBIReferenceRetriever
We provide the module NCBIReferenceRetriever allowing to retrieve data for reference organisms easily from NCBI. You can run NCBIReferenceRetriever from the command line with
java -jar GeMoMa-<version>.jar CLI NRR [<parameter>=<value> ...]
The parameters comprise:
name | comment | type |
r | reference directory (the directory where the genome and annotation files of the reference organisms should be stored, default = references/) | STRING |
n | number of tries (the number of tries for downloading a reference file, valid range = [1, 100], default = 10) | INT |
rl | reference list (a list of reference organisms) | FILE |
outdir | The output directory, defaults to the current working directory (.) | STRING |
GeMoMaPipeline
If you like to run the GeMoMaPipeline on a server as a single job, you can use the module GeMoMaPipeline which allows to exploit the full compute power of the computer server via multi-threading. However, GeMoMaPipeline does not distribute task on a compute cluster.
You can run GeMoMaPipeline from the command line with
java -jar GeMoMa-<version>.jar CLI GeMoMaPipeline [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
t | target genome (Target genome file (FASTA)) | FILE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The following parameter(s) can be used multiple times: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
selected | selected (The path to list file, which allows to make only a predictions for the contained transcript ids. The first column should contain transcript IDs as given in the annotation. Remaining columns can be used to determine a target region that should be overlapped by the prediction, if columns 2 to 5 contain chromosome, strand, start and end of region, OPTIONAL) | FILE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gc | genetic code (optional user-specified genetic code, OPTIONAL) | FILE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tblastn | tblastn (if *true* tblastn is used as search algorithm, otherwise mmseqs is used. Tblastn and mmseqs need to be installed to use the corresponding option, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tag | tag (A user-specified tag for transcript predictions in the third column of the returned gff. It might be beneficial to set this to a specific value for some genome browsers., default = prediction) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
r | RNA-seq evidence (data for RNA-seq evidence, range={NO, MAPPED, EXTRACTED}, default = NO) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
d | denoise (removing questionable introns that have been extracted by ERE, range={DENOISE, RAW}, default = DENOISE) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Extractor.p | proteins (whether the complete proteins sequences should returned as output, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Extractor.r | repair (if a transcript annotation can not be parsed, the program will try to infer the phase of the CDS parts to repair the annotation, default = false) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Extractor.a | Ambiguity (This parameter defines how to deal with ambiguities in the DNA. There are 3 options: EXCEPTION, which will remove the corresponding transcript, AMBIGUOUS, which will use an X for the corresponding amino acid, and RANDOM, which will randomly select an amnio acid from the list of possibilities., range={EXCEPTION, AMBIGUOUS, RANDOM}, default = AMBIGUOUS) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Extractor.s | stop-codon excluded from CDS (A flag that states whether the reference annotation contains the stop codon in the CDS annotation or not, default = false) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Extractor.f | full-length (A flag which allows for choosing between only full-length and all (i.e., full-length and partial) transcripts, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.r | reads (if introns are given by a GFF, only use those which have at least this number of supporting split reads, valid range = [1, 2147483647], default = 1) | INT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.s | splice (if no intron is given by RNA-seq, compute candidate splice sites or not, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.sm | substitution matrix (optional user-specified substitution matrix, OPTIONAL) | FILE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.g | gap opening (The gap opening cost in the alignment, default = 11) | INT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.ge | gap extension (The gap extension cost in the alignment, default = 1) | INT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.m | maximum intron length (The maximum length of an intron, default = 15000) | INT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.sil | static intron length (A flag which allows to switch between static intron length, which can be specified by the user and is identical for all genes, and dynamic intron length, which is based on the gene-specific maximum intron length in the reference organism plus the user given maximum intron length, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.i | intron-loss-gain-penalty (The penalty used for intron loss and gain, default = 25) | INT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.e | e-value (The e-value for filtering blast results, default = 100.0) | DOUBLE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.c | contig threshold (The threshold for evaluating contigs, valid range = [0.0, 1.0], default = 0.4) | DOUBLE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.rt | region threshold (The threshold for evaluating regions, valid range = [0.0, 1.0], default = 0.9) | DOUBLE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.h | hit threshold (The threshold for adding additional hits, valid range = [0.0, 1.0], default = 0.9) | DOUBLE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.p | predictions (The (maximal) number of predictions per transcript, default = 10) | INT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.a | avoid stop (A flag which allows to avoid stop codons in a transcript (except the last AS), default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.approx | approx (whether an approximation is used to compute the score for intron gain, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.prefix | prefix (A prefix to be used for naming the predictions, default = ) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.t | timeout (The (maximal) number of seconds to be used for the predictions of one transcript, if exceeded GeMoMa does not output a prediction for this transcript., valid range = [0, 604800], default = 3600) | LONG | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeMoMa.Score | Score (A flag which allows to do nothing, re-score or re-align the search results, range={Trust, ReScore, ReAlign}, default = Trust) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GAF.c | common border filter (the filter on the common borders of transcripts, the lower the more transcripts will be checked as alternative splice isoforms, valid range = [0.0, 1.0], default = 0.75) | DOUBLE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GAF.m | maximal number of transcripts per gene (the maximal number of allowed transcript predictions per gene, valid range = [1, 2147483647], default = 2147483647) | INT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GAF.d | default attributes (Comma-separated list of attributes that is set to NaN if they are not given in the annotation file. This allows to use these attributes for sorting or filter criteria. It is especially meaningful if the gene annotation files were received fom different software packages (e.g., GeMoMa, Braker, ...) having different attributes., default = tie,tde,tae,iAA,pAA,score) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GAF.f | filter (A filter can be applied to transcript predictions to receive only reasonable predictions. The filter is applied to the GFF attributes. The deault filter decides based on the completeness of the prediction (start=='M' and stop=='*') and the relative score (score/AA>=0.75) whether a prediction is used or not. Different criteria can be combined using 'and' and 'or'. In addition, you can check for NaN, e.g., 'isNaN(score)'. A more sophisticated filter could be applied for instance using the completeness, the relative score, the evidence as well as statistics based on RNA-seq: start=='M' and stop =='*' and score/AA>=0.75 and (evidence>1 or tpc==1.0), default = start=='M' and stop =='*' and score/AA>=0.75, OPTIONAL) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GAF.s | sorting (comma-separated list that defines the way predictions are sorted within a cluster, default = evidence,score) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GAF.a | alternative transcript filter (If a prediction is suggested as an alternative transcript, this additional filter will be applied. The filter works syntactically like the 'filter' parameter and allows you to keep the number of alternative transcripts small based on meaningful criteria. Reasonable filter could be based on RNA-seq data (tie==1) or on evidence (evidence>1). A more sophisticated filter could be applied combining several criteria: tie==1 or evidence>1, default = tie==1 or evidence>1, OPTIONAL) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AnnotationFinalizer.u | UTR (allows to predict UTRs using RNA-seq data, range={NO, YES}, default = NO) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AnnotationFinalizer.r | rename (allows to generate generic gene and transcripts names (cf. attribute "Name"), range={COMPOSED, SIMPLE, NO}, default = COMPOSED) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
p | predicted proteins (If *true*, returns the predicted proteins of the target organism as fastA file, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pc | predicted CDSs (If *true*, returns the predicted CDSs of the target organism as fastA file, default = false) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pgr | predicted genomic regions (If *true*, returns the genomic regions of predicted gene models of the target organism as fastA file, default = false) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
o | output individual predictions (If *true*, returns the predictions for each reference species, default = false) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
debug | debug (If *false* removes all temporary files even if the jobs exits unexpected, default = true) | BOOLEAN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
outdir | The output directory, defaults to the current working directory (.) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
threads | The number of threads used for the tool, defaults to 1 | INT |
Extract RNA-seq Evidence (ERE)
For post-processing the mapped RNA-seq data, we provide the tool ExtractRNAseqEvidence (ERE). You can run Extractor from the command line with
java -jar GeMoMa-<version>.jar CLI ERE [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | |||
s | Stranded (Defines whether the reads are stranded. In case of FR_FIRST_STRAND, the first read of a read pair or the only read in case of single-end data is assumed to be located on forward strand of the cDNA, i.e., reverse to the mRNA orientation. If you are using Illumina TruSeq you should use FR_FIRST_STRAND., range={FR_UNSTRANDED, FR_FIRST_STRAND, FR_SECOND_STRAND}, default = FR_UNSTRANDED) | STRING | |||
The following parameter(s) can be used multiple times: | |||||
| |||||
v | ValidationStringency (Defines how strict to be when reading a SAM or BAM, beyond bare minimum validation., range={STRICT, LENIENT, SILENT}, default = LENIENT) | STRING | |||
u | use secondary alignments (allows to filter flags in the SAM or BAM, default = true) | BOOLEAN | |||
c | coverage (allows to output the coverage, default = false) | BOOLEAN | |||
mmq | minimum mapping quality (reads with a mapping quality that is lower than this value will be ignored, valid range = [0, 254], default = 40) | INT | |||
outdir | The output directory, defaults to the current working directory (.) | STRING |
CheckIntrons
This tool allows to check whether the extracted introns show the expected patterns of di-nucleotides at the splice sites. You can run CheckIntrons from the command line with
java -jar GeMoMa-<version>.jar CLI CheckIntrons [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | |||
t | target genome (The target genome file (FASTA), i.e., the target sequences in the blast run. Should be in IUPAC code) | FILE | |||
The following parameter(s) can be used multiple times: | |||||
| |||||
v | verbose (A flag which allows to output a wealth of additional information per transcript, default = false) | BOOLEAN | |||
outdir | The output directory, defaults to the current working directory (.) | STRING |
DenoiseIntrons
This tool allows to remove potentially incorrectly extracted introns. You can run Denoise from the command line with
java -jar GeMoMa-<version>.jar CLI DenoiseIntrons [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | |||||||||||||||||||||
The following parameter(s) can be used multiple times: | |||||||||||||||||||||||
| |||||||||||||||||||||||
The following parameter(s) can be used multiple times: | |||||||||||||||||||||||
| |||||||||||||||||||||||
m | maximum intron length (The maximum length of an intron, default = 15000) | INT | |||||||||||||||||||||
me | minimum expression (The threshold for removing introns, valid range = [0.0, 1.0], default = 0.01) | DOUBLE | |||||||||||||||||||||
context | context (The context upstream a donor and donwstream an acceptor site that is used to determine the expression of the region, valid range = [0, 100], default = 10) | INT | |||||||||||||||||||||
outdir | The output directory, defaults to the current working directory (.) | STRING |
Extractor
For preparing the data, we provide the tool Extractor. You can run Extractor from the command line with
java -jar GeMoMa-<version>.jar CLI Extractor [<parameter>=<value> ...]
The parameters comprise:
name | comment | type |
a | annotation (Reference annotation file (GFF or GTF), which contains gene models annotated in the reference genome) | FILE |
g | genome (Reference genome file (FASTA)) | FILE |
gc | genetic code (optional user-specified genetic code, OPTIONAL) | FILE |
p | proteins (whether the complete proteins sequences should returned as output, default = false) | BOOLEAN |
c | cds (whether the complete CDSs should returned as output, default = false) | BOOLEAN |
genomic | genomic (whether the genomic regions should be returned (upper case = coding, lower case = non coding), default = false) | BOOLEAN |
r | repair (if a transcript annotation can not be parsed, the program will try to infer the phase of the CDS parts to repair the annotation, default = false) | BOOLEAN |
s | selected (The path to list file, which allows to make only a predictions for the contained transcript ids. The first column should contain transcript IDs as given in the annotation. Remaining columns will be ignored., OPTIONAL) | FILE |
Ambiguity | Ambiguity (This parameter defines how to deal with ambiguities in the DNA. There are 3 options: EXCEPTION, which will remove the corresponding transcript, AMBIGUOUS, which will use an X for the corresponding amino acid, and RANDOM, which will randomly select an amnio acid from the list of possibilities., range={EXCEPTION, AMBIGUOUS, RANDOM}, default = EXCEPTION) | STRING |
sefc | stop-codon excluded from CDS (A flag that states whether the reference annotation contains the stop codon in the CDS annotation or not, default = false) | BOOLEAN |
f | full-length (A flag which allows for choosing between only full-length and all (i.e., full-length and partial) transcripts, default = true) | BOOLEAN |
v | verbose (A flag which allows to output a wealth of additional information, default = false) | BOOLEAN |
outdir | The output directory, defaults to the current working directory (.) | STRING |
Gene Model Mapper (GeMoMa)
For predicting gene models, we provide the tool GeMoMa. You can run GeMoMa from the command line with
java -jar GeMoMa-<version>.jar CLI GeMoMa [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | |||||||||||||||||||||
s | search results (The search results, e.g., from tblastn or mmseqs) | FILE | |||||||||||||||||||||
t | target genome (The target genome file (FASTA), i.e., the target sequences in the blast run. Should be in IUPAC code) | FILE | |||||||||||||||||||||
c | cds parts (The query cds parts file (FASTA), i.e., the cds parts that have been blasted) | FILE | |||||||||||||||||||||
a | assignment (The assignment file, which combines parts of the CDS to transcripts, OPTIONAL) | FILE | |||||||||||||||||||||
q | query proteins (optional query protein file (FASTA) for computing the optimal alignment score against complete protein prediction, OPTIONAL) | FILE | |||||||||||||||||||||
The following parameter(s) can be used zero or multiple times: | |||||||||||||||||||||||
| |||||||||||||||||||||||
r | reads (if introns are given by a GFF, only use those which have at least this number of supporting split reads, valid range = [1, 2147483647], default = 1) | INT | |||||||||||||||||||||
splice | splice (if no intron is given by RNA-seq, compute candidate splice sites or not, default = true) | BOOLEAN | |||||||||||||||||||||
The following parameter(s) can be used zero or multiple times: | |||||||||||||||||||||||
| |||||||||||||||||||||||
g | genetic code (optional user-specified genetic code, OPTIONAL) | FILE | |||||||||||||||||||||
sm | substitution matrix (optional user-specified substitution matrix, OPTIONAL) | FILE | |||||||||||||||||||||
go | gap opening (The gap opening cost in the alignment, default = 11) | INT | |||||||||||||||||||||
ge | gap extension (The gap extension cost in the alignment, default = 1) | INT | |||||||||||||||||||||
m | maximum intron length (The maximum length of an intron, default = 15000) | INT | |||||||||||||||||||||
sil | static intron length (A flag which allows to switch between static intron length, which can be specified by the user and is identical for all genes, and dynamic intron length, which is based on the gene-specific maximum intron length in the reference organism plus the user given maximum intron length, default = true) | BOOLEAN | |||||||||||||||||||||
intron-loss-gain-penalty | intron-loss-gain-penalty (The penalty used for intron loss and gain, default = 25) | INT | |||||||||||||||||||||
e | e-value (The e-value for filtering blast results, default = 100.0) | DOUBLE | |||||||||||||||||||||
ct | contig threshold (The threshold for evaluating contigs, valid range = [0.0, 1.0], default = 0.4) | DOUBLE | |||||||||||||||||||||
rt | region threshold (The threshold for evaluating regions, valid range = [0.0, 1.0], default = 0.9) | DOUBLE | |||||||||||||||||||||
h | hit threshold (The threshold for adding additional hits, valid range = [0.0, 1.0], default = 0.9) | DOUBLE | |||||||||||||||||||||
p | predictions (The (maximal) number of predictions per transcript, default = 10) | INT | |||||||||||||||||||||
selected | selected (The path to list file, which allows to make only a predictions for the contained transcript ids. The first column should contain transcript IDs as given in the annotation. Remaining columns can be used to determine a target region that should be overlapped by the prediction, if columns 2 to 5 contain chromosome, strand, start and end of region, OPTIONAL) | FILE | |||||||||||||||||||||
as | avoid stop (A flag which allows to avoid stop codons in a transcript (except the last AS), default = true) | BOOLEAN | |||||||||||||||||||||
approx | approx (whether an approximation is used to compute the score for intron gain, default = true) | BOOLEAN | |||||||||||||||||||||
prefix | prefix (A prefix to be used for naming the predictions, default = ) | STRING | |||||||||||||||||||||
tag | tag (A user-specified tag for transcript predictions in the third column of the returned gff. It might be beneficial to set this to a specific value for some genome browsers., default = prediction) | STRING | |||||||||||||||||||||
v | verbose (A flag which allows to output a wealth of additional information per transcript, default = false) | BOOLEAN | |||||||||||||||||||||
timeout | timeout (The (maximal) number of seconds to be used for the predictions of one transcript, if exceeded GeMoMa does not output a prediction for this transcript., valid range = [0, 604800], default = 3600) | LONG | |||||||||||||||||||||
sort | sort (A flag which allows to sort the search results, default = false) | BOOLEAN | |||||||||||||||||||||
Score | Score (A flag which allows to do nothing, re-score or re-align the search results, range={Trust, ReScore, ReAlign}, default = Trust) | STRING | |||||||||||||||||||||
outdir | The output directory, defaults to the current working directory (.) | STRING |
GeMoMa returns the predicted annotation as gff file.
GeMoMa Annotation Filter (GAF)
The GeMoMa Annotation Filter allows to combine and reduce predictions from GeMoMa into a single final prediction. It is able to handle predictions from different reference species. It also handles overlapping or identical predictions.
You can run GeMoMa from the command line with
java -jar GeMoMa-<version>.jar CLI GAF[<parameter>=<value> ...]
The parameters comprise:
name | comment | type | ||||||||||||
t | tag (the tag used to read the GeMoMa annotations, default = prediction) | STRING | ||||||||||||
c | common border filter (the filter on the common borders of transcripts, the lower the more transcripts will be checked as alternative splice isoforms, valid range = [0.0, 1.0], default = 0.75) | DOUBLE | ||||||||||||
m | maximal number of transcripts per gene (the maximal number of allowed transcript predictions per gene, valid range = [1, 2147483647], default = 2147483647) | INT | ||||||||||||
The following parameter(s) can be used multiple times: | ||||||||||||||
| ||||||||||||||
d | default attributes (Comma-separated list of attributes that is set to NaN if they are not given in the annotation file. This allows to use these attributes for sorting or filter criteria. It is especially meaningful if the gene annotation files were received fom different software packages (e.g., GeMoMa, Braker, ...) having different attributes., default = tie,tde,tae,iAA,pAA,score) | STRING | ||||||||||||
f | filter (A filter can be applied to transcript predictions to receive only reasonable predictions. The filter is applied to the GFF attributes. The deault filter decides based on the completeness of the prediction (start=='M' and stop=='*') and the relative score (score/AA>=0.75) whether a prediction is used or not. Different criteria can be combined using 'and' and 'or'. In addition, you can check for NaN, e.g., 'isNaN(score)'. A more sophisticated filter could be applied for instance using the completeness, the relative score, the evidence as well as statistics based on RNA-seq: start=='M' and stop =='*' and score/AA>=0.75 and (evidence>1 or tpc==1.0), default = start=='M' and stop =='*' and score/AA>=0.75, OPTIONAL) | STRING | ||||||||||||
s | sorting (comma-separated list that defines the way predictions are sorted within a cluster, default = evidence,score) | STRING | ||||||||||||
atf | alternative transcript filter (If a prediction is suggested as an alternative transcript, this additional filter will be applied. The filter works syntactically like the 'filter' parameter and allows you to keep the number of alternative transcripts small based on meaningful criteria. Reasonable filter could be based on RNA-seq data (tie==1) or on evidence (evidence>1). A more sophisticated filter could be applied combining several criteria: tie==1 or evidence>1, default = tie==1 or evidence>1, OPTIONAL) | STRING | ||||||||||||
outdir | The output directory, defaults to the current working directory (.) | STRING |
CompareTranscripts
For comparing gene models from GeMoMa predictions with existing annotation, we provide the tool CompareTranscripts. You can run CompareTranscripts from the command line with
java -jar GeMoMa-<version>.jar CLI CompareTranscripts [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | ||||||
p | prediction (The predicted annotation) | FILE | ||||||
a | annotation (The true annotation) | FILE | ||||||
The following parameter(s) can be used zero or multiple times: | ||||||||
| ||||||||
outdir | The output directory, defaults to the current working directory (.) | STRING |
AnnotationEvidence
For providing RNA-seq evidence (e.g. tie) for existing annotation, we provide the tool AnnotationEvidence. You can run AnnotationEvidence from the command line with
java -jar GeMoMa-<version>.jar CLI AnnotationEvidence [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | ||||||||||||||||||||||||
a | annotation (The genome annotation file (GFF)) | FILE | ||||||||||||||||||||||||
g | genome (The genome file (FASTA), i.e., the target sequences in the blast run. Should be in IUPAC code) | FILE | ||||||||||||||||||||||||
The following parameter(s) can be used multiple times: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
r | reads (if introns are given by a GFF, only use those which have at least this number of supporting split reads, valid range = [1, 2147483647], default = 1) | INT | ||||||||||||||||||||||||
The following parameter(s) can be used multiple times: | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
ao | annotation output (if the annotation should be returned with attributes tie, tpc, and AA, default = false) | BOOLEAN | ||||||||||||||||||||||||
gc | genetic code (optional user-specified genetic code, OPTIONAL) | FILE | ||||||||||||||||||||||||
outdir | The output directory, defaults to the current working directory (.) | STRING |
AnnotationFinializer
This tool allows to predict UTR and to rename predictions. You can run AnnotationEvidence from the command line with
java -jar GeMoMa-<version>.jar CLI AnnotationFinalizer [<parameter>=<value> ...]
The parameters comprise:
name | comment | type | |||||||||||||||||||||||||||||||||||||||||||||||||||
a | annotation (The predicted genome annotation file (GFF)) | FILE | |||||||||||||||||||||||||||||||||||||||||||||||||||
t | tag (A user-specified tag for transcript predictions in the third column of the returned gff. It might be beneficial to set this to a specific value for some genome browsers., default = prediction) | STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||
u | UTR (allows to predict UTRs using RNA-seq data, range={NO, YES}, default = NO) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
rename | rename (allows to generate generic gene and transcripts names (cf. attribute "Name"), range={COMPOSED, SIMPLE, NO}, default = COMPOSED) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
outdir | The output directory, defaults to the current working directory (.) | STRING |
GFF attributes
Using GeMoMa and GAF, you'll obtain GFFs containing some special attributes. We briefly explain the most prominent attributes in the following table.
Attribute | Long name | Tool | Necessary parameter | Feature | Description |
---|---|---|---|---|---|
score | GeMoMa score | GeMoMa | prediction | score computed by GeMoMa using the substitution matrix, gap costs and additional penalties | |
minCov | minimal coverage | GeMoMa | coverage, ... | prediction | minimal coverage of any base of the prediction given RNA-seq evidence |
avgCov | average coverage | GeMoMa | coverage, ... | prediction | average coverage of all bases of the prediction given RNA-seq evidence |
tpc | transcript percentage coverage | GeMoMa | coverage, ... | prediction | percentage of covered bases per predicted transcript given RNA-seq evidence |
tae | transcript acceptor evidence | GeMoMa | introns | prediction | percentage of predicted acceptor sites per predicted transcript with RNA-seq evidence |
tde | transcript donor evidence | GeMoMa | introns | prediction | percentage of predicted donor sites per predicted transcript with RNA-seq evidence |
tie | transcript intron evidence | GeMoMa | introns | prediction | percentage of predicted introns per predicted transcript with RNA-seq evidence |
minSplitReads | minimal split reads | GeMoMa | introns | prediction | minimal number of split reads for any of the predicted introns per predicted transcript |
iAA | identical amino acid | GeMoMa | query proteins | prediction | percentage of identical amino acids between reference transcript and prediction |
pAA | positive amino acid | GeMoMa | query proteins | prediction | percentage of aligned positions between reference transcript and prediction yielding a positive score in the substitution matrix |
evidence | GAF | prediction | number of reference organisms that have a transcript yielding this prediction | ||
alternative | GAF | prediction | alternative gene ID(s) leading to the same prediction | ||
sumWeight | GAF | prediction | the sum of the weights of the references that perfectly support this prediction | ||
maxTie | maximal tie | GAF | gene | maximal tie of all transcripts of this gene | |
maxEvidence | maximal evidence | GAF | gene | maximal evidence of all transcripts of this gene |
FAQs
- Why does the Extractor not return a single CDS-part, protein, ...?
- First, please check whether the names of your contigs/chromosomes in your annotation (gff) and genome file (fasta) are identical. The fasta comments should at best only contain the contig/chromosome name. (Since GeMoMa 1.4, comments, which contain the contig/chromosome name and some additional information separated by a space, are also fine.) Second, please check whether you have a valid GFF/GTF file. Valid GFF files should have a valid "ID" or "Parent" entry in the attributes column. Valid GTF files should have a valid "gene_id" and "transcript_id" entry. Finally, please check the statistics that are given by the Extractor. It lists how many genes have been read and how many genes have been removed for different reasons. One common problem is that some annotation files do not include the stop codon in the CDS annotation.
- How can I force GeMoMa to make more predictions?
- There are several parameters affecting the number of predictions. The most prominent are the number of predictions (p) and the contig threshold (ct). For each reference transcript/CDS, GeMoMa initially makes a preliminary prediction and uses this prediction to determine whether a contig is promising and should be used to determine the final predictions. You may decrease ct and increase p to have more contigs in the final prediction. Increasing the number of predictions allows GeMoMa to output more predictions that have been computed. Decreasing the contig threshold allows to increase the number of predictions that are (internally) computed. Increasing p to a very large number without decreasing ct does not help.
- Running GeMoMa on a single contig of my assembly yield thousands of weird predictions. What went wrong?
- By default, GeMoMa is not build to be run on a single contig. GeMoMa tries to make predictions for all given reference CDS in the given target sequence(s). If the given target sequence is only a fraction of the complete target genome/assembly, GeMoMa will produce weird predictions as it does not filter for the quality of the predictions internally. There are two options to handle this:
- Use a list of gene models that you expect to be located on this contig (cf. parameter "selected").
- Filter the predictions using GAF (cf.
java -jar GeMoMa-<version>.jar CLI GAF
).
- Is it mandatory to use RNA-seq data?
- No, GeMoMa is able to make predictions with and without RNA-seq evidence.
- Is it possible to use multiple reference organisms?
- It is possible to use multiple reference organisms for GeMoMa. Just run GeMoMa on each reference organism separately. Finally, you can employ GAF (cf.
java -jar GeMoMa-<version>.jar CLI GAF
) to combine these annotations. - Why do some reference genes not lead to a prediction in the target genome?
- Please first check whether your reference genes have been discarded by the Extractor (cf. assignment file).
- If the genes have been discarded, there are two possibilities:
- The CDS might be redundant, i.e. the coding exons are identical to those of another transcript. In this case, only one CDS is further evaluated.
- There might be something wrong with your reference genes, e.g., missing start codon, missing stop codon, premature stop codon, ambiguous nucleotides, ... and you should check the options of Extractor or the annotation.
- If the reference genes passed the Extractor, there are several possible explanations for this behavior. The two most prominent are:
- GeMoMa stopped the prediction of a reference genes since it does not return a result within the given time (cf. parameter "timeout").
- GeMoMa simply did not find a prediction matching the remaining quality criteria
- GeMoMa did find a prediction, but it was filtered out by GAF, e.g. to low relative score, missing start or stop codon (cf. GAF parameters).
- What does "partial gene model" mean in the context of GeMoMa?
- We called a gene model partial if it does not contain an initial start codon and a final stop codon. However, this does not mean that the gene model is located at or close to the border of a chromosome or contig.
- For two different reference transcripts, the predictions of GeMoMa overlap or are identical. What should I do with those?
- GeMoMa makes the predictions for each reference transcript independently. Hence, it can occur that some of predictions of different reference transcripts overlap or are identical especially in gene families. Typically, you might like to filter or rank these predictions. We have implemented GAF (cf.
java -jar GeMoMa-<version>.jar CLI GAF
) to do this automatically. However, you can also do it by hand using the GFF attributes. Using RNA-seq data in GeMoMa yields additional fields in the annotation that can be used, e.g., average coverage (avgCov). - A lot of transcripts have been filtered out by the Extractor. What can I do?
- There are several reasons for removing transcripts by the Extractor. At least in two cases you can try to get more transcripts by setting specific parameter values. First, if the transcript contains ambiguous nucleotides, please test the parameter "Ambiguity". Second, sometimes we received GFFs which contain wrong phases for CDS entries (e.g., 0 for all CDS entries in the phase column of the GFF). Since version 1.3.2, we provide the option "r" which stands for repair. If r=true is chosen, the Extractor tries to infer all phases for transcripts that show an error and would be filtered out.
- Is GeMoMa able to predict pseudo-genes/ncRNA?
- No, currently not.
- My RNA-seq data indicates there is an additional intron in a transcipt, but GeMoMa does not predict this. Or vice versa, GeMoMa predicts an intron that is not supported by RNA-seq data. What's the reason?
- GeMoMa is mainly based on the assumptions of amino acid and intron position conservation between reference and target species. Hence, GeMoMa tries to predict a gene model with similar exon-intron structure in the target species and does not stick too much to RNA-seq data. Although intron position conservation can be observed in most cases, sometimes new introns evolve or others vanish. For this reasons, GeMoMa also allows for the inclusion or exclusion of introns adding some additional costs (cf. GeMoMa parameter intron-loss-gain-penalty). However, the behaviour of GeMoMa depends on the parameters settings (especially intron-loss-gain-penalty, sm (substitution matrix), go (gap opening), ge (gap extension)) and the length of the missed/additional intron. Nevertheless, such cases can only occur if the additional/missed intron has a length that can be divided by 3 preserving the reading frame.
- Since the available RNA-seq data only reflects a fraction of tissues/environmental conditions/..., missing RNA-seq evidence does not necessarily mean that the predictions is wrong.
- My RNA-seq data indicates two alternative, highly overlapping introns. Interestingly, GeMoMa does not take the intron that is more abundant. Why?
- GeMoMa reads the introns from the input file using some filter (cf. GeMoMa parameter r (reads)). All introns that pass the filter are used and treated equally. Hence, GeMoMa uses the intron that matches the expectation of intron position and amino acid conservation compared to the reference transcript.
- Does GeMoMa predict multiple transcripts per gene?
- GeMoMa in principle allows to predict multiple transcripts per gene, if corresponding transcripts are given in the reference species or if multiple reference species are used.
- GeMoMa failed with java.lang.OutOfMemoryError. What can I do?
- Whenever you see a java.lang.OutOfMemoryError, you should rerun the program with Java virtual machine (VM) options. More specifically you should set: -Xms the initally used RAM, e.g. to 5Gb (–Xms5G), and -Xmx the maximally used RAM, e.g. to 50Gb (-Xmx50G). GeMoMa often needs more memory if you have a large genome and if you’re providing a large coverage file (extracted from RNA-seq data). If you don’t have a compute node with enough memory, you can run GeMoMa without coverage, which will return the same predictions, but does not include all statistics. Another point could be the protein alignment, if you use the optional parameter query protein. Again you can run GeMoMa without this parameter, which will return the same predictions, but less statistics.
- I need to specify the genetic code for my organisms. What is the expected format?
- The genetic code is given in a two column tab-delimited table, where the first column is the one letter code of the amino acid and the second column is a comma-separated list of triplets. As we are working on genomic DNA, GeMoMa expects the bases A, C, G, and T, and not U (as expected in mRNA). Here is the link to the default genetic code, which might be used as template:
- https://github.com/Jstacs/Jstacs/blob/master/projects/gemoma/test_data/genetic_code.txt
- Alternative genetic codes are described here using the RNA alphabet:
- https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi
- The genetic code might be specified for a reference organism in the module Extractor or for a target organism in the module GeMoMa.
- I like to accelerate GeMoMa. What can I do?
- If you like to improve the runtime, you can use several threads for the computation. If you run the GeMoMaPipeline you just have to select
threads=<your_number>
. - In addition, you can change the search algorithm that is used in GeMoMa. Tblastn is used by default as search algorithm in GeMoMa (for historical reasons). However, tblastn can be replaced by mmseqs which is typically much faster. If you run the GeMoMaPipeline you just have to select
tblastn=false
. However, changing the search algorithm can also effect the results. We try to minimize these effect using specific parameters for the search algorithms. - If you modify other parameters, you will probably receive results that differ to a larger extend from those received using the default parameters.
Version history
GeMoMa 1.6.3 (05.03.2020)
- Jstacs changes:
- CLI: bugfix ExpandableParameterSet
- python wrapper (for *conda)
- updated tests.sh, run.sh, pipeline.sh
- rename Denoise to DenoiseIntrons
- AnnotationEvidence: write phase (as given) to gff
- GAF: new parameter: default attributes allows to set attributes that are not included in some gene annotation files
- GeMoMa: new parameter: static intron length allowing to use dynamic intron length if set to false
- GeMoMaPipeline:
- bugfix: time-out
- improve output
- separate parameters for maximum intron length (DenoiseIntrons, GeMoMa)
GeMoMa 1.6.2 (17.12.2019)
- Jstacs changes:
- test methods for modules
- live protocol for Galaxy
- new module Denoise: allowing to clean introns extracted by ERE
- new module NCBIReferenceRetriever: allowing to retrieve data for reference organisms easily from NCBI.
- GAF:
- bugfix for filter using specific attributes if no RNA-seq or query proteins was used
- allow to add annotation info (as for instance provided by Phytozome) based on the reference organisms
- GeMoMa: bugfix for timeout
- GeMoMaPipeline:
- bugfix reporting predicted partial proteins
- improved protocol
- new default value for query proteins (changed from false to true)
- new default value for Ambiguity (changed from EXCEPTION to AMBIGUOUS)
GeMoMa 1.6.1 (4.06.2019)
- createGalaxyIntegration.sh: bugfix for GeMoMaPipeline
- new module CheckIntrons: allowing to create statistics for introns (extracted by ERE)
- AnnotationFinalizer: bugfix for sequence IDs with large numbers
- CompareTranscripts:
- bugfix for prefix of ref-gene
- allow no transcript info, but making assignment non-optional if a transcript info is set
- GAF: bugfix for Galaxy integration
- GeMoMaPipeline:
- improved output in case of Exceptions
- new parameter "output individual predictions" allows to in- or exclude individual predictions from each reference organism in the final result
- new parameter "weight" allows weights for reference species (cf. GAF)
- ERE: new parameter "minimum mapping quality"
GeMoMa 1.6 (2.04.2019)
- allow to use mmseqs as alternative to tblastn
- AnnotationEvidence:
- allows to add attributes to the input gff: tie, tpc, AA, start, stop
- new parameter for gff output
- AnnotationFinalizer: new tool for predicting UTRs and renaming predictions
- GAF:
- relative score filter and evidence filter are replaced by a flexible filter that allows to filter by relative score, evidence or other GFF attributes as well as combinations thereof
- sorting criteria of the predictions within clusters can now be user-specified
- new attribute for genes: combinedEvidence
- new attribute for predictions: sumWeight
- allows to use gene predictions from all sources, including for instance ab-initio gene predictors, purely RNA-seq based gene prediction and manually curation
- bugfix for predictions from multiple reference organisms
- improved statistic output
- GeMoMa
- renamed the parameter tblastn results to search results
- new parameter for sorting the results of the similarity search (tblastn or mmseqs), if you use mmseqs for the similarity search you have use sort
- new parameter for score of the search results: three options: Trust (as is), ReScore (use aligned sequence, but recompute score), and ReAlign (use detected sequence for realignment and rescore)
- bugfix: threshold for introns from multiple files
GeMoMa 1.5.3 (23.07.2018)
- improved parameter description and presentation
- GeMoMaPipeline:
- removed unnecessary parameters
- GeMoMa:
- bugfix: reading coverage file
- removed parameter genomic (cf. Extractor)
- removed protein output (cf. Extractor)
- GAF:
- bugfix: prefix
- Extractor:
- new parameter genomic
GeMoMa 1.5.2 (31.5.2018)
- GAF:
- new parameter that allows to restrict the maximal number of transcript predictions per gene
- altered behavior of the evidence filter from percentages to absolute values
- bugfix: nested genes
- checking for duplicates in prediction IDs
- GeMoMa:
- warning if RNA-seq data does not match with target genome
- GeMoMaPipeline: new tool for running the complete GeMoMa pipeline at once allowing multi-threading
- folder for temporary files of GeMoMa
GeMoMa 1.5 (13.02.2018)
- AnnotationEvidence: add chromosome to output
- CompareTranscripts: new parameter that allows to remove prefixes introduces by GAF
- Extractor: new parameter "stop-codon excluded from CDS" that might be used if the annotation does not contain the stop codons
- ExtractRNASeqEvidence:
- print intron length stats
- include program infos in introns.gff3
- GeMoMa:
- new attribute pAA in gff output if query protein is given
- include program infos in predicted_annotation.gff3
- minor bugfix
- GAF:
- new parameter that allows to specify a prefix for each input gff
- collect and print program infos to filtered_prediction.gff3
- improved statistics output
GeMoMa 1.4.2 (21.07.2017)
- automatic searching for available updates
- AnnotationEvidence: bugfix (tie computation: Arrays.binarysearch does not find first match)
- Extractor: bugfix (files that are not zipped)
- GeMoMa: bugfix (tie computation: Arrays.binarysearch does not find first match)
GeMoMa 1.4.1 (30.05.2017)
- CompareTranscripts: bugfix (NullPointerException)
- Extractor: reference genome can be .*fa.gz and .*fasta.gz
- GeMoMa: bugfix (shutdown problem after timeout)
- modified additional scripts and documentation
GeMoMa 1.4 (03.05.2017)
- AnnotationEvidence: new tool computing tie and tpc for given annotation (gff)
- CompareTranscripts: new tool comparing predicted and given annotation (gff)
- Extractor:
- reading CDS with no parent tag (cf. discontinuous feature)
- automatic recognition of GFF or GTF annotation
- Warning if sequences mentioned in the annotation are not included in the reference sequence
- GeMoMa:
- allowing for multiple intron and coverage files (= using different library types at the same time)
- NA instead of "?" for tae, tde, tie, minSplitReads of single coding exon genes
- new default values for the parameters: predictions (10 instead of 1) and contig threshold (0.4 instead of 0.9)
- bugfix (write pc and minCov if possible for last CDS part in predicted annotation)
- bugfix (ref-gene name if no assignment is used)
- bugfix (minSplitReads, minCov, tpc, avgCov if no coverage available)
- GAF:
- nested genes on the same strand
- bugfix (if nothing passes the filter)
GeMoMa 1.3.2 (18.01.2017)
- Extractor: new parameter repair for broken transcript annotations
- GeMoMa: bugfixes (splice site computation)
GeMoMa 1.3.1 (09.12.2016)
- GeMoMa bugfix (finding start/stop codon for very small exons)
GeMoMa 1.3 (06.12.2016)
- ERE: new tool for extracting RNA-seq evidence
- Extractor: offers options for
- partial gene models
- ambiguities
- GeMoMa:
- RNA-seq
- defining splice sites
- additional feature in GFF and output
- transcript intron evidence (tie)
- transcript acceptor evidence (tae)
- transcript donor evidence (tde)
- transcript percentage coverage (tpc)
- ...
- improved GFF
- simplified the command line parameters
- IMPORTANT: parameter names changed for some parameters
- RNA-seq
- GAF: new tool for filtering and combining different predictions (especially of different reference organisms)
GeMoMa 1.1.3 (06.06.2016)
- minor modifications to the Extractor tool
GeMoMa 1.1.2 (05.02.2016)
- GeMoMa bugfix (upstream, downstream sequence for splice site detection)
- Extractor: new parameter s for selecting transcripts
- improved Galaxy integration
GeMoMa 1.1.1 (01.02.2016)
- initial release for paper