tcode Function Fickett TESTCODE statistic to identify protein-coding DNA Description tcode tests DNA sequences for protein coding regions using an algorithm which looks for simple and universal differences between protein-coding and noncoding DNA.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. The program slides a window of user-selectable size over the DNA sequence. For each window the TESTCODE statistic is applied. The results can be output as a text report or displayed graphically. The text 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 Fickett TESTCODE statistic to identify protein-coding DNA 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 Fickett TESTCODE statistic to identify protein-coding DNA 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 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 * -graph xygraph [$EMBOSS_GRAPHICS value, or x11] Graph type (ps, hpgl, hp7470, hp7580, meta, cps, x11, tekt, tek, none, data, xterm, png, gif) 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 -sformat1 string Input sequence format -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 -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 standard output -filter boolean Read standard input, write 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. 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 Input file format tcode reads any normal sequence USAs. 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 EMBL/GenBank/DDBJ databases. 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 GDB; 191789. DR GDB; 191790. DR GDB; 354872. DR GDB; 4590236. XX FH Key Location/Qualifiers FH FT source 1..2016 FT /organism="Homo sapiens" FT /mol_type="genomic DNA" FT /clone_lib="CML cosmid" FT /clone="15.1" FT /db_xref="taxon:9606" FT mRNA join(408..504,774..856,951..1095,1557..1612,1787..>1912) FT /gene="fau 1" FT exon 408..504 FT /number=1 [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 6 0 ggcaaaacta aggccccaag taggaatgcc ttagttttcg gggttaacaa tgattaacac 12 0 tgagcctcac acccacgcga tgccctcagc tcctcgctca gcgctctcac caacagccgt 18 0 agcccgcagc cccgctggac accggttctc catccccgca gcgtagcccg gaacatggta 24 0 gctgccatct ttacctgcta cgccagcctt ctgtgcgcgc aactgtctgg tcccgccccg 30 0 tcctgcgcga gctgctgccc aggcaggttc gccggtgcga gcgtaaaggg gcggagctag 36 0 gactgccttg ggcggtacaa atagcaggga accgcgcggt cgctcagcag tgacgtgaca 42 0 cgcagcccac ggtctgtact gacgcgccct cgcttcttcc tctttctcga ctccatcttc 48 0 gcggtagctg ggaccgccgt tcaggtaaga atggggcctt ggctggatcc gaagggcttg 54 0 tagcaggttg gctgcggggt cagaaggcgc ggggggaacc gaagaacggg gcctgctccg 60 0 tggccctgct ccagtcccta tccgaactcc ttgggaggca ctggccttcc gcacgtgagc 66 0 cgccgcgacc accatcccgt cgcgatcgtt tctggaccgc tttccactcc caaatctcct 72 0 ttatcccaga gcatttcttg gcttctctta caagccgtct tttctttact cagtcgccaa 78 0 tatgcagctc tttgtccgcg cccaggagct acacaccttc gaggtgaccg gccaggaaac 84 0 ggtcgcccag atcaaggtaa ggctgcttgg tgcgccctgg gttccatttt cttgtgctct 90 0 tcactctcgc ggcccgaggg aacgcttacg agccttatct ttccctgtag gctcatgtag 96 0 cctcactgga gggcattgcc ccggaagatc aagtcgtgct cctggcaggc gcgcccctgg 102 0 aggatgaggc cactctgggc cagtgcgggg tggaggccct gactaccctg gaagtagcag 108 0 gccgcatgct tggaggtgag tgagagagga atgttctttg aagtaccggt aagcgtctag 114 0 tgagtgtggg gtgcatagtc ctgacagctg agtgtcacac ctatggtaat agagtacttc 120 0 tcactgtctt cagttcagag tgattcttcc tgtttacatc cctcatgttg aacacagacg 126 0 tccatgggag actgagccag agtgtagttg tatttcagtc acatcacgag atcctagtct 132 0 ggttatcagc ttccacacta aaaattaggt cagaccaggc cccaaagtgc tctataaatt 138 0 agaagctgga agatcctgaa atgaaactta agatttcaag gtcaaatatc tgcaactttg 144 0 ttctcattac ctattgggcg cagcttctct ttaaaggctt gaattgagaa aagaggggtt 150 0 ctgctgggtg gcaccttctt gctcttacct gctggtgcct tcctttccca ctacaggtaa 156 0 agtccatggt tccctggccc gtgctggaaa agtgagaggt cagactccta aggtgagtga 162 0 gagtattagt ggtcatggtg ttaggacttt ttttcctttc acagctaaac caagtccctg 168 0 ggctcttact cggtttgcct tctccctccc tggagatgag cctgagggaa gggatgctag 174 0 gtgtggaaga caggaaccag ggcctgatta accttccctt ctccaggtgg ccaaacagga 180 0 gaagaagaag aagaagacag gtcgggctaa gcggcggatg cagtacaacc ggcgctttgt 186 0 caacgttgtg cccacctttg gcaagaagaa gggccccaat gccaactctt aagtcttttg 192 0 taattctggc tttctctaat aaaaaagcca cttagttcag tcatcgcatt gtttcatctt 198 0 tacttgcaag gcctcaggga gaggtgtgct tctcgg 201 6 // 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, trace, listfile, dbmotif, diffseq, excel, feattable, motif, 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 2007 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 Score Estimation 1 200 0.673 Non-coding 4 203 0.681 Non-coding 7 206 0.649 Non-coding 10 209 0.649 Non-coding 13 212 0.649 Non-coding 16 215 0.657 Non-coding 19 218 0.687 Non-coding 22 221 0.767 No opinion 25 224 0.800 No opinion 28 227 0.782 No opinion 31 230 0.779 No opinion 34 233 0.839 No opinion 37 236 0.951 Coding 40 239 0.916 No opinion 43 242 0.900 No opinion 46 245 0.839 No opinion 49 248 0.835 No opinion 52 251 0.926 No opinion 55 254 0.887 No opinion 58 257 0.927 No opinion 61 260 0.873 No opinion 64 263 0.873 No opinion 67 266 0.927 No opinion 70 269 1.033 Coding 73 272 1.044 Coding 76 275 1.012 Coding 79 278 1.105 Coding 82 281 1.022 Coding 85 284 1.098 Coding 88 287 0.976 Coding 91 290 0.962 Coding [Part of this file has been deleted for brevity] 1690 1889 0.907 No opinion 1693 1892 1.005 Coding 1696 1895 0.985 Coding 1699 1898 0.907 No opinion 1702 1901 0.985 Coding 1705 1904 0.985 Coding 1708 1907 0.988 Coding 1711 1910 0.981 Coding 1714 1913 1.001 Coding 1717 1916 1.001 Coding 1720 1919 1.004 Coding 1723 1922 0.975 Coding 1726 1925 0.975 Coding 1729 1928 0.927 No opinion 1732 1931 0.939 No opinion 1735 1934 0.930 No opinion 1738 1937 0.860 No opinion 1741 1940 0.876 No opinion 1744 1943 0.876 No opinion 1747 1946 0.836 No opinion 1750 1949 0.883 No opinion 1753 1952 0.934 No opinion 1756 1955 0.965 Coding 1759 1958 1.012 Coding 1762 1961 1.025 Coding 1765 1964 0.940 No opinion 1768 1967 0.978 Coding 1771 1970 0.978 Coding 1774 1973 1.012 Coding 1777 1976 1.023 Coding 1780 1979 1.023 Coding 1783 1982 1.023 Coding 1786 1985 1.012 Coding 1789 1988 0.972 Coding 1792 1991 0.943 No opinion 1795 1994 1.031 Coding 1798 1997 1.031 Coding 1801 2000 0.926 No opinion 1804 2003 0.845 No opinion 1807 2006 0.804 No opinion 1810 2009 0.765 No opinion 1813 2012 0.765 No opinion 1816 2015 0.765 No opinion #--------------------------------------- #--------------------------------------- #--------------------------------------- # Total_sequences: 1 # Total_hitcount: 606 #--------------------------------------- Output files for usage example 2 Graphics File: tcode.ps [tcode results] File: x65921.tcode 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 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 None. 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 getorf Finds and extracts open reading frames (ORFs) marscan Finds MAR/SAR sites in nucleic sequences plotorf Plot potential open reading frames showorf Pretty output of DNA translations sixpack Display a DNA sequence with 6-frame translation and ORFs syco Synonymous codon usage Gribskov statistic plot wobble Wobble base plot 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 (ajb © ebi.ac.uk) European Bioinformatics Institute, Wellcome Trust Genome Campus, Hinxton, Cambridge CB10 1SD, UK 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