                                    tcode



Wiki

   The master copies of EMBOSS documentation are available at
   http://emboss.open-bio.org/wiki/Appdocs on the EMBOSS Wiki.

   Please help by correcting and extending the Wiki pages.

Function

   Identify protein-coding regions using Fickett TESTCODE statistic

Description

   tcode identifies protein-coding regions in one or more DNA sequences
   using the fickett TESTCODE statistic. This is based on simple and
   universal differences between protein-coding and noncoding DNA. The
   TESTCODE statistic is calculated for windows of a specified size over
   each input sequence. The results can be output as a standard EMBOSS
   report file or displayed graphically.

   The output reports each window as "Coding", "Noncoding" or "No
   opinion". Entries marked "No opinion" have a TESTCODE value that falls
   between the maximum and minimum values required to report a region as
   noncoding or coding. For the graphical plot, all points above a green
   horizontal line are determined to be coding regions. Those below a red
   line are determined to be noncoding. Points between the red and green
   lines are "no opinion" ones.

Biological Relevance

   The statistic reflects the fact that codons are used with unequal
   frequency and that oligonucleotides and nucleotides tend to be repeated
   with a periodicity of three.

   This application can assist in determining the probability of a region
   of nucleic sequence encoding a functional protein.

Algorithm

   The Fickett (1982) algorithm is used (1).

   A window of at least 200 bases is moved over the sequence in steps of 3
   bases

   Let:

  A1 = Number of A's in positions 1,4,7 ...
  A2 = Number of A's in positions 2,5,8 ...
  A3 = Number of A's in positions 3,6,9 ...

   A position value is determined that reflects the degree to which each
   base is favoured in one codon position over another, i.e.

  Apos = MAX(A1,A2,A3) / MIN(A1,A2,A3)+1

   This is done for all 4 bases. The percentage composition of each base
   is also determined. Eight values are therefore determined, four
   position values and four composition values. These are then converted
   to probabilities (p) of coding using a look-up table provided as the
   data file for the program. The values in this look-up table have been
   determined experimentally using known coding and noncoding sequences.

   Each of the probabilities is multiplied by a weight (w) value (again
   from the look-up table) for the respective base. The weight value
   reflects the percentage of the time that each parameter alone
   successfully predicted coding or noncoding function for the sequences
   of known function.

   The TESTCODE statistic is then:

  p1w1 + p2w2 + p3w3 + p4w4 + p5w5 + p6w6 + p7w7 + p8w8

   A result of less than 0.74 is probably a non-coding region.
   A result equal or greater than 0.95 is probably a coding region.
   Anything in between these two values is uncertain.

Usage

   Here is a sample session with tcode


% tcode
Identify protein-coding regions using Fickett TESTCODE statistic
Input nucleotide sequence(s): tembl:x65921
Length of sliding window [200]:
Output report [x65921.tcode]:


   Go to the input files for this example
   Go to the output files for this example

   Example 2

   Produce a graphical plot


% tcode -plot -graph cps
Identify protein-coding regions using Fickett TESTCODE statistic
Input nucleotide sequence(s): tembl:x65921
Length of sliding window [200]:

Created tcode.ps


   Go to the output files for this example

Command line arguments

Identify protein-coding regions using Fickett TESTCODE statistic
Version: EMBOSS:6.5.6.0

   Standard (Mandatory) qualifiers (* if not always prompted):
  [-sequence]          seqall     Nucleotide sequence(s) filename and optional
                                  format, or reference (input USA)
   -window             integer    [200] This is the number of nucleotide bases
                                  over which the TESTCODE statistic will be
                                  performed each time. The window will then
                                  slide along the sequence, covering the same
                                  number of bases each time. (Integer 200 or
                                  more)
*  -outfile            report     [*.tcode] Output report file name (default
                                  -rformat table)
*  -graph              xygraph    [$EMBOSS_GRAPHICS value, or x11] Graph type
                                  (ps, hpgl, hp7470, hp7580, meta, cps, x11,
                                  tek, tekt, none, data, xterm, png, gif, pdf,
                                  svg)

   Additional (Optional) qualifiers: (none)
   Advanced (Unprompted) qualifiers:
   -datafile           datafile   [Etcode.dat] The default data file is
                                  Etcode.dat and contains coding probabilities
                                  for each base. The probabilities are for
                                  both positional and compositional
                                  information.
   -step               integer    [3] The selected window will, by default,
                                  slide along the nucleotide sequence by three
                                  bases at a time, retaining the frame
                                  (although the algorithm is not frame
                                  sensitive). This may be altered to increase
                                  or decrease the increment of the slide.
                                  (Integer 1 or more)
   -plot               toggle     [N] On selection a graph of the sequence (X
                                  axis) plotted against the coding score (Y
                                  axis) will be displayed. Sequence above the
                                  green line is coding, that below the red
                                  line is non-coding.

   Associated qualifiers:

   "-sequence" associated qualifiers
   -sbegin1            integer    Start of each sequence to be used
   -send1              integer    End of each sequence to be used
   -sreverse1          boolean    Reverse (if DNA)
   -sask1              boolean    Ask for begin/end/reverse
   -snucleotide1       boolean    Sequence is nucleotide
   -sprotein1          boolean    Sequence is protein
   -slower1            boolean    Make lower case
   -supper1            boolean    Make upper case
   -scircular1         boolean    Sequence is circular
   -sformat1           string     Input sequence format
   -iquery1            string     Input query fields or ID list
   -ioffset1           integer    Input start position offset
   -sdbname1           string     Database name
   -sid1               string     Entryname
   -ufo1               string     UFO features
   -fformat1           string     Features format
   -fopenfile1         string     Features file name

   "-outfile" associated qualifiers
   -rformat            string     Report format
   -rname              string     Base file name
   -rextension         string     File name extension
   -rdirectory         string     Output directory
   -raccshow           boolean    Show accession number in the report
   -rdesshow           boolean    Show description in the report
   -rscoreshow         boolean    Show the score in the report
   -rstrandshow        boolean    Show the nucleotide strand in the report
   -rusashow           boolean    Show the full USA in the report
   -rmaxall            integer    Maximum total hits to report
   -rmaxseq            integer    Maximum hits to report for one sequence

   "-graph" associated qualifiers
   -gprompt            boolean    Graph prompting
   -gdesc              string     Graph description
   -gtitle             string     Graph title
   -gsubtitle          string     Graph subtitle
   -gxtitle            string     Graph x axis title
   -gytitle            string     Graph y axis title
   -goutfile           string     Output file for non interactive displays
   -gdirectory         string     Output directory

   General qualifiers:
   -auto               boolean    Turn off prompts
   -stdout             boolean    Write first file to standard output
   -filter             boolean    Read first file from standard input, write
                                  first file to standard output
   -options            boolean    Prompt for standard and additional values
   -debug              boolean    Write debug output to program.dbg
   -verbose            boolean    Report some/full command line options
   -help               boolean    Report command line options and exit. More
                                  information on associated and general
                                  qualifiers can be found with -help -verbose
   -warning            boolean    Report warnings
   -error              boolean    Report errors
   -fatal              boolean    Report fatal errors
   -die                boolean    Report dying program messages
   -version            boolean    Report version number and exit


Input file format

   The input is a standard EMBOSS sequence query (also known as a 'USA').

   Major sequence database sources defined as standard in EMBOSS
   installations include srs:embl, srs:uniprot and ensembl

   Data can also be read from sequence output in any supported format
   written by an EMBOSS or third-party application.

   The input format can be specified by using the command-line qualifier
   -sformat xxx, where 'xxx' is replaced by the name of the required
   format. The available format names are: gff (gff3), gff2, embl (em),
   genbank (gb, refseq), ddbj, refseqp, pir (nbrf), swissprot (swiss, sw),
   dasgff and debug.

   See: http://emboss.sf.net/docs/themes/SequenceFormats.html for further
   information on sequence formats.

   The program will ignore ambiguity codes in the nucleic acid sequence
   and just accept the four common bases. This is a function of the
   algorithm, and the data tables.

  Input files for usage example

   'tembl:x65921' is a sequence entry in the example nucleic acid database
   'tembl'

  Database entry: tembl:x65921

ID   X65921; SV 1; linear; genomic DNA; STD; HUM; 2016 BP.
XX
AC   X65921; S45242;
XX
DT   13-MAY-1992 (Rel. 31, Created)
DT   14-NOV-2006 (Rel. 89, Last updated, Version 7)
XX
DE   H.sapiens fau 1 gene
XX
KW   fau 1 gene.
XX
OS   Homo sapiens (human)
OC   Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; Mammalia;
OC   Eutheria; Euarchontoglires; Primates; Haplorrhini; Catarrhini; Hominidae;
OC   Homo.
XX
RN   [1]
RP   1-2016
RA   Kas K.;
RT   ;
RL   Submitted (29-APR-1992) to the INSDC.
RL   K. Kas, University of Antwerp, Dept of Biochemistry T3.22,
RL   Universiteitsplein 1, 2610 Wilrijk, BELGIUM
XX
RN   [2]
RP   1-2016
RX   DOI; 10.1016/0006-291X(92)91286-Y.
RX   PUBMED; 1326960.
RA   Kas K., Michiels L., Merregaert J.;
RT   "Genomic structure and expression of the human fau gene: encoding the
RT   ribosomal protein S30 fused to a ubiquitin-like protein";
RL   Biochem. Biophys. Res. Commun. 187(2):927-933(1992).
XX
DR   Ensembl-Gn; ENSG00000149806; Homo_sapiens.
DR   Ensembl-Tr; ENST00000279259; Homo_sapiens.
DR   Ensembl-Tr; ENST00000434372; Homo_sapiens.
DR   Ensembl-Tr; ENST00000525297; Homo_sapiens.
DR   Ensembl-Tr; ENST00000526555; Homo_sapiens.
DR   Ensembl-Tr; ENST00000527548; Homo_sapiens.
DR   Ensembl-Tr; ENST00000529259; Homo_sapiens.
DR   Ensembl-Tr; ENST00000529639; Homo_sapiens.
DR   Ensembl-Tr; ENST00000531743; Homo_sapiens.
DR   GDB; 191789.
DR   GDB; 191790.
DR   GDB; 354872.
DR   GDB; 4590236.
XX
FH   Key             Location/Qualifiers
FH
FT   source          1..2016


  [Part of this file has been deleted for brevity]

FT                   RAKRRMQYNRRFVNVVPTFGKKKGPNANS"
FT   intron          857..950
FT                   /number=2
FT   exon            951..1095
FT                   /number=3
FT   intron          1096..1556
FT                   /number=3
FT   exon            1557..1612
FT                   /number=4
FT   intron          1613..1786
FT                   /number=4
FT   exon            1787..>1912
FT                   /number=5
FT   polyA_signal    1938..1943
XX
SQ   Sequence 2016 BP; 421 A; 562 C; 538 G; 495 T; 0 other;
     ctaccatttt ccctctcgat tctatatgta cactcgggac aagttctcct gatcgaaaac        60
     ggcaaaacta aggccccaag taggaatgcc ttagttttcg gggttaacaa tgattaacac       120
     tgagcctcac acccacgcga tgccctcagc tcctcgctca gcgctctcac caacagccgt       180
     agcccgcagc cccgctggac accggttctc catccccgca gcgtagcccg gaacatggta       240
     gctgccatct ttacctgcta cgccagcctt ctgtgcgcgc aactgtctgg tcccgccccg       300
     tcctgcgcga gctgctgccc aggcaggttc gccggtgcga gcgtaaaggg gcggagctag       360
     gactgccttg ggcggtacaa atagcaggga accgcgcggt cgctcagcag tgacgtgaca       420
     cgcagcccac ggtctgtact gacgcgccct cgcttcttcc tctttctcga ctccatcttc       480
     gcggtagctg ggaccgccgt tcaggtaaga atggggcctt ggctggatcc gaagggcttg       540
     tagcaggttg gctgcggggt cagaaggcgc ggggggaacc gaagaacggg gcctgctccg       600
     tggccctgct ccagtcccta tccgaactcc ttgggaggca ctggccttcc gcacgtgagc       660
     cgccgcgacc accatcccgt cgcgatcgtt tctggaccgc tttccactcc caaatctcct       720
     ttatcccaga gcatttcttg gcttctctta caagccgtct tttctttact cagtcgccaa       780
     tatgcagctc tttgtccgcg cccaggagct acacaccttc gaggtgaccg gccaggaaac       840
     ggtcgcccag atcaaggtaa ggctgcttgg tgcgccctgg gttccatttt cttgtgctct       900
     tcactctcgc ggcccgaggg aacgcttacg agccttatct ttccctgtag gctcatgtag       960
     cctcactgga gggcattgcc ccggaagatc aagtcgtgct cctggcaggc gcgcccctgg      1020
     aggatgaggc cactctgggc cagtgcgggg tggaggccct gactaccctg gaagtagcag      1080
     gccgcatgct tggaggtgag tgagagagga atgttctttg aagtaccggt aagcgtctag      1140
     tgagtgtggg gtgcatagtc ctgacagctg agtgtcacac ctatggtaat agagtacttc      1200
     tcactgtctt cagttcagag tgattcttcc tgtttacatc cctcatgttg aacacagacg      1260
     tccatgggag actgagccag agtgtagttg tatttcagtc acatcacgag atcctagtct      1320
     ggttatcagc ttccacacta aaaattaggt cagaccaggc cccaaagtgc tctataaatt      1380
     agaagctgga agatcctgaa atgaaactta agatttcaag gtcaaatatc tgcaactttg      1440
     ttctcattac ctattgggcg cagcttctct ttaaaggctt gaattgagaa aagaggggtt      1500
     ctgctgggtg gcaccttctt gctcttacct gctggtgcct tcctttccca ctacaggtaa      1560
     agtccatggt tccctggccc gtgctggaaa agtgagaggt cagactccta aggtgagtga      1620
     gagtattagt ggtcatggtg ttaggacttt ttttcctttc acagctaaac caagtccctg      1680
     ggctcttact cggtttgcct tctccctccc tggagatgag cctgagggaa gggatgctag      1740
     gtgtggaaga caggaaccag ggcctgatta accttccctt ctccaggtgg ccaaacagga      1800
     gaagaagaag aagaagacag gtcgggctaa gcggcggatg cagtacaacc ggcgctttgt      1860
     caacgttgtg cccacctttg gcaagaagaa gggccccaat gccaactctt aagtcttttg      1920
     taattctggc tttctctaat aaaaaagcca cttagttcag tcatcgcatt gtttcatctt      1980
     tacttgcaag gcctcaggga gaggtgtgct tctcgg                                2016
//

Output file format

   The output is a standard EMBOSS report file.

   The results can be output in one of several styles by using the
   command-line qualifier -rformat xxx, where 'xxx' is replaced by the
   name of the required format. The available format names are: embl,
   genbank, gff, pir, swiss, dasgff, debug, listfile, dbmotif, diffseq,
   draw, restrict, excel, feattable, motif, nametable, regions, seqtable,
   simple, srs, table, tagseq.

   See: http://emboss.sf.net/docs/themes/ReportFormats.html for further
   information on report formats.

   tcode outputs a report format file. The default format is 'table'.

   The resulting report file will be given a name relating to the analysed
   sequence together with the .tcode suffix by default. Should there be no
   sequence description, the default reverts to outfile.tcode.

   tcode optionally outputs a graph to the specified graphics device.

   The graphical display is output with the default file name tcode.1. and
   then the name of the selected graphical display (e.g. png; ps).

   The graph indicates the threshold for probably being coding with a
   green horizontal line and the threshold for probably not being coding
   with a red horizontal line.

  Output files for usage example

  File: x65921.tcode

########################################
# Program: tcode
# Rundate: Sun 15 Jul 2012 12:00:00
# Commandline: tcode
#    -sequence tembl:x65921
# Report_format: table
# Report_file: x65921.tcode
########################################

#=======================================
#
# Sequence: X65921     from: 1   to: 2016
# HitCount: 606
#
# Fickett TESTCODE statistic
#
#=======================================

  Start     End  Strand   Score Estimation
      1     200       +   0.617 Non-coding
      4     203       +   0.586 Non-coding
      7     206       +   0.617 Non-coding
     10     209       +   0.729 Non-coding
     13     212       +   0.696 Non-coding
     16     215       +   0.734 Non-coding
     19     218       +   0.779 No opinion
     22     221       +   0.845 No opinion
     25     224       +   0.889 No opinion
     28     227       +   0.919 No opinion
     31     230       +   0.831 No opinion
     34     233       +   0.875 No opinion
     37     236       +   0.970 Coding
     40     239       +   1.122 Coding
     43     242       +   1.110 Coding
     46     245       +   1.002 Coding
     49     248       +   0.979 Coding
     52     251       +   1.076 Coding
     55     254       +   0.966 Coding
     58     257       +   0.931 No opinion
     61     260       +   0.847 No opinion
     64     263       +   0.847 No opinion
     67     266       +   0.914 No opinion
     70     269       +   0.951 Coding
     73     272       +   1.031 Coding
     76     275       +   0.870 No opinion
     79     278       +   0.964 Coding
     82     281       +   0.865 No opinion
     85     284       +   1.040 Coding
     88     287       +   0.924 No opinion
     91     290       +   0.812 No opinion


  [Part of this file has been deleted for brevity]

   1696    1895       +   1.060 Coding
   1699    1898       +   0.984 Coding
   1702    1901       +   1.082 Coding
   1705    1904       +   1.082 Coding
   1708    1907       +   1.082 Coding
   1711    1910       +   1.067 Coding
   1714    1913       +   1.079 Coding
   1717    1916       +   1.005 Coding
   1720    1919       +   0.915 No opinion
   1723    1922       +   0.954 Coding
   1726    1925       +   0.872 No opinion
   1729    1928       +   0.976 Coding
   1732    1931       +   0.989 Coding
   1735    1934       +   0.906 No opinion
   1738    1937       +   0.832 No opinion
   1741    1940       +   0.840 No opinion
   1744    1943       +   0.840 No opinion
   1747    1946       +   0.826 No opinion
   1750    1949       +   0.858 No opinion
   1753    1952       +   0.865 No opinion
   1756    1955       +   0.878 No opinion
   1759    1958       +   0.937 No opinion
   1762    1961       +   1.012 Coding
   1765    1964       +   0.968 Coding
   1768    1967       +   0.979 Coding
   1771    1970       +   0.979 Coding
   1774    1973       +   0.937 No opinion
   1777    1976       +   0.944 No opinion
   1780    1979       +   0.944 No opinion
   1783    1982       +   0.944 No opinion
   1786    1985       +   0.890 No opinion
   1789    1988       +   0.902 No opinion
   1792    1991       +   0.851 No opinion
   1795    1994       +   0.902 No opinion
   1798    1997       +   0.902 No opinion
   1801    2000       +   0.902 No opinion
   1804    2003       +   0.821 No opinion
   1807    2006       +   0.757 No opinion
   1810    2009       +   0.730 Non-coding
   1813    2012       +   0.708 Non-coding
   1816    2015       +   0.708 Non-coding

#---------------------------------------
#---------------------------------------

#---------------------------------------
# Total_sequences: 1
# Total_length: 2016
# Reported_sequences: 1
# Reported_hitcount: 606
#---------------------------------------

  Output files for usage example 2

  Graphics File: tcode.ps

   [tcode results]

Data files

   EMBOSS data files are distributed with the application and stored in
   the standard EMBOSS data directory, which is defined by the EMBOSS
   environment variable EMBOSS_DATA.

   To see the available EMBOSS data files, run:

% embossdata -showall

   To fetch one of the data files (for example 'Exxx.dat') into your
   current directory for you to inspect or modify, run:

% embossdata -fetch -file Exxx.dat


   Users can provide their own data files in their own directories.
   Project specific files can be put in the current directory, or for
   tidier directory listings in a subdirectory called ".embossdata". Files
   for all EMBOSS runs can be put in the user's home directory, or again
   in a subdirectory called ".embossdata".

   The directories are searched in the following order:
     * . (your current directory)
     * .embossdata (under your current directory)
     * ~/ (your home directory)
     * ~/.embossdata

   The default data file (look-up table) is Etcode.dat which contains the
   data from the original paper (1)

# Fickett TESTCODE data
# Nuc. Acids Res. 10(17) 5303-5318
#
# Position parameter values (last value must be 0.0)
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
0.0
#
#
# Content parameter values (last value must be 0.0)
0.33
0.31
0.29
0.27
0.25
0.23
0.21
0.17
0.00
#
#
# Position probabilities for A,C,G,T respectively
0.94 0.80 0.90 0.97
0.68 0.70 0.88 0.97
0.84 0.70 0.74 0.91
0.93 0.81 0.64 0.68
0.58 0.66 0.53 0.69
0.68 0.48 0.48 0.44
0.45 0.51 0.27 0.54
0.34 0.33 0.16 0.20
0.20 0.30 0.08 0.09
0.22 0.23 0.08 0.09
#
#
# Content probabilities for A,C,G,T respectively
0.28 0.82 0.40 0.28
0.49 0.64 0.54 0.24
0.44 0.51 0.47 0.39
0.55 0.64 0.64 0.40
0.62 0.59 0.64 0.55
0.49 0.59 0.73 0.75
0.67 0.43 0.41 0.56
0.65 0.44 0.41 0.69
0.81 0.39 0.33 0.51
0.21 0.31 0.29 0.58
#
#
# Weights for position
0.26
0.18
0.31
0.33
#
#
# Weights for content
0.11
0.12
0.15
0.14

   This file is retrievable using EMBOSSDATA.

   Window size is set by default to 200. The algorithm requires sufficient
   sequence to perform the statistic on. The original paper suggests a
   minimum window size of 200.

   Window stepping increment is set by default to 3. This will ensure the
   resulting information remains in frame.

  Alternative Data Files

   There are no alternative data files currently in the EMBOSS Data
   directory, but alternative values may be user defined.

Notes

   The TESTCODE statistic reflects the fact that codons are used with
   unequal frequency and that oligonucleotides and nucleotides tend to be
   repeated with a periodicity of three. The original paper reports that
   the test had been thoroughly proven on 400,000 bases of sequence data:
   it misclassifies 5% of the regions tested and gives an answer of "No
   Opinion" one fifth of the time.

   In the GCG package, the current (version 10.3) TESTCODE application's
   apparent interpretation of the algorithm is: MAX(A1,A2,A3) /
   MIN(A1,A2,A3) The EMBOSS tcode program uses the correct Fickett
   algorithm equation: MAX(A1,A2,A3) / MIN(A1,A2,A3) + 1 thus any plot
   using the GCG TESTCODE aplication will be slightly higher than the
   tcode equivalent.

References

    1. Fickett, J.W. (1982) Nucleic Acids Research 10(17) pp.5303-5318
       "Recognition of protein coding regions in DNA sequences"

Warnings

   The program will ignore ambiguity codes in the nucleic acid sequence
   and just accept the four common bases. This is a function of the
   algorithm, and the data tables.

Diagnostic Error Messages

   Standard error messages are given for incorrect sequence input.

Exit status

   It always exits with status 0.

See also

   Program name     Description
   checktrans       Report STOP codons and ORF statistics of a protein
   getorf           Find and extract open reading frames (ORFs)
   marscan          Find matrix/scaffold recognition (MRS) signatures in DNA
                    sequences
   plotorf          Plot potential open reading frames in a nucleotide sequence
   showorf          Display a nucleotide sequence and translation in pretty format
   sixpack          Display a DNA sequence with 6-frame translation and ORFs
   syco             Draw synonymous codon usage statistic plot for a nucleotide
                    sequence
   wobble           Plot third base position variability in a nucleotide sequence

  See Elsewhere

   TESTCODE - GCG package, Accelrys Inc. Uses a different interpretation
   of the same algorithm. Source code unavailable.

   SPIN - "Uneven positional base preferences" Staden software. Free to
   academics, versions for both X and Windows platforms.

Author(s)

   Alan Bleasby
   European Bioinformatics Institute, Wellcome Trust Genome Campus,
   Hinxton, Cambridge CB10 1SD, UK

   Please report all bugs to the EMBOSS bug team
   (emboss-bug (c) emboss.open-bio.org) not to the original author.

History

   Date of original completion: 2nd March 2003

Target users

   This program is intended to be used by everyone and everything, from
   naive users to embedded scripts.

Comments

   None
