File: codcmp.html

package info (click to toggle)
emboss 6.6.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 571,248 kB
  • ctags: 39,971
  • sloc: ansic: 460,578; java: 29,439; perl: 13,573; sh: 12,740; makefile: 3,275; csh: 706; asm: 351; xml: 239; pascal: 237; modula3: 8
file content (572 lines) | stat: -rw-r--r-- 15,236 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
<HTML>

<HEAD>
  <TITLE>
  EMBOSS: codcmp
  </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" text="#000000">

<table align=center border=0 cellspacing=0 cellpadding=0>
<tr><td valign=top>
<A HREF="/" ONMOUSEOVER="self.status='Go to the EMBOSS home page';return true"><img border=0 src="/images/emboss_icon.jpg" alt="" width=150 height=48></a>
</td>
<td align=left valign=middle>
<b><font size="+6">
codcmp
</font></b>
</td></tr>
</table>
<br>&nbsp;
<p>


<H2>
Wiki
</H2>

The master copies of EMBOSS documentation are available
at <a href="http://emboss.open-bio.org/wiki/Appdocs">
http://emboss.open-bio.org/wiki/Appdocs</a>
on the EMBOSS Wiki.

<p>
Please help by correcting and extending the Wiki pages.

<H2>
    Function
</H2>
Codon usage table comparison
<H2>
    Description
</H2>

<p><b>codcmp</b> reads two codon usage table files and writes to file the differences in codon usage fractions between the two tables.</p>
<p>The usage fraction of a codon is its proportion (0 to 1) of the total number of the codons in the sequences used to construct the usage table. For each codon that is used in both tables, it takes the difference between the usage fractions in the two tables.  The sum of the differences and the sum of the differences squared is reported in the output file.  It also counts the number of the 64 possible codons which are unused (i.e. has a usage fraction of 0) in either one or the other or both of the codon usage tables, and writes this to the output file.</p>



<H3>
   Statistical significance
</H3>

<b>Question:</b>

<p>

How do you interpret the statistical significance of any difference
between the tables?

<p>

<b>Answer:</b>

<p>

This is a very interesting question.  I don't think that there is any
way to say if it is statistically significant just from looking at it,
as it is essentially a descriptive statistic about the difference
between two 64-mer vectors.  If you have a whole lot of sequences and
codcmp results for all the possible pairwise comparisons, then the
resulting distance matrix can be used to build a phylogenetic tree based
on codon usage. 

<p>

However, if you generate a series of random sequences, measure their codon 
usage and then do codcmp between each of your test sequences and all the 
random sequences, you could then use a z-test to see if the result between 
the two test sequences was outside of the top or bottom 5%.

<p>

This would assume that the codcmp results were normally distributed, but
you could test that too.  The simplest way is just to plot them and look 
for a bell-curve.  For more rigour, find the mean and standard deviation of 
your results from the random sequences, use the normal distribution 
equation to generate a theoretical distribution for that mean and standard 
deviation, and then perform a chi square between the random data and the 
theoretically generated normal distribution.  If you generate two sets of 
random data, each based on your two test sequences, an F-test should be 
used to establish that they have equal variances.  Then you can safely go 
ahead and perform the z-test.

<p>

You could use shuffle to base your random sequences on the test
sequences - so that would ensure the randomised background had the same
nucleotide content. 

<p>

F-tests, z-tests and chi-tests can all be done in Excel, as well as
being standard in most statistical analysis packages. 

<p>

<i>Answered by Derek Gatherer &lt;d.gatherer&nbsp;&copy;&nbsp;vir.gla.ac.uk&gt; 21 Nov 2003</i>


<H2>
    Usage
</H2>
Here is a sample session with <b>codcmp</b>
<p>
This compares the codon usage tables for Escherichia coli and Haemophilus influenzae. 
<p>

<p>
<table width="90%"><tr><td bgcolor="#CCFFFF"><pre>

% <b>codcmp </b>
Codon usage table comparison
Codon usage file: <b>Eecoli.cut</b>
Second Codon usage file: <b>Ehaein.cut</b>
Output file [eecoli.codcmp]: <b></b>

</pre></td></tr></table><p>
<p>
<a href="#output.1">Go to the output files for this example</a><p><p>

<H2>
    Command line arguments
</H2>

<table CELLSPACING=0 CELLPADDING=3 BGCOLOR="#f5f5ff" ><tr><td>
<pre>
Codon usage table comparison
Version: EMBOSS:6.6.0.0

   Standard (Mandatory) qualifiers:
  [-first]             codon      First codon usage file
  [-second]            codon      Second codon usage file for comparison
  [-outfile]           outfile    [*.codcmp] Output file name

   Additional (Optional) qualifiers: (none)
   Advanced (Unprompted) qualifiers: (none)
   Associated qualifiers:

   "-first" associated qualifiers
   -format1            string     Data format

   "-second" associated qualifiers
   -format2            string     Data format

   "-outfile" associated qualifiers
   -odirectory3        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

</pre>
</td></tr></table>
<P>
<table border cellspacing=0 cellpadding=3 bgcolor="#ccccff">
<tr bgcolor="#FFFFCC">
<th align="left">Qualifier</th>
<th align="left">Type</th>
<th align="left">Description</th>
<th align="left">Allowed values</th>
<th align="left">Default</th>
</tr>

<tr bgcolor="#FFFFCC">
<th align="left" colspan=5>Standard (Mandatory) qualifiers</th>
</tr>

<tr bgcolor="#FFFFCC">
<td>[-first]<br>(Parameter 1)</td>
<td>codon</td>
<td>First codon usage file</td>
<td>Codon usage file in EMBOSS data path</td>
<td>&nbsp;</td>
</tr>

<tr bgcolor="#FFFFCC">
<td>[-second]<br>(Parameter 2)</td>
<td>codon</td>
<td>Second codon usage file for comparison</td>
<td>Codon usage file in EMBOSS data path</td>
<td>&nbsp;</td>
</tr>

<tr bgcolor="#FFFFCC">
<td>[-outfile]<br>(Parameter 3)</td>
<td>outfile</td>
<td>Output file name</td>
<td>Output file</td>
<td><i>&lt;*&gt;</i>.codcmp</td>
</tr>

<tr bgcolor="#FFFFCC">
<th align="left" colspan=5>Additional (Optional) qualifiers</th>
</tr>

<tr>
<td colspan=5>(none)</td>
</tr>

<tr bgcolor="#FFFFCC">
<th align="left" colspan=5>Advanced (Unprompted) qualifiers</th>
</tr>

<tr>
<td colspan=5>(none)</td>
</tr>

<tr bgcolor="#FFFFCC">
<th align="left" colspan=5>Associated qualifiers</th>
</tr>

<tr bgcolor="#FFFFCC">
<td align="left" colspan=5>"-first" associated codon qualifiers
</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -format1<br>-format_first</td>
<td>string</td>
<td>Data format</td>
<td>Any string</td>
<td>&nbsp;</td>
</tr>

<tr bgcolor="#FFFFCC">
<td align="left" colspan=5>"-second" associated codon qualifiers
</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -format2<br>-format_second</td>
<td>string</td>
<td>Data format</td>
<td>Any string</td>
<td>&nbsp;</td>
</tr>

<tr bgcolor="#FFFFCC">
<td align="left" colspan=5>"-outfile" associated outfile qualifiers
</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -odirectory3<br>-odirectory_outfile</td>
<td>string</td>
<td>Output directory</td>
<td>Any string</td>
<td>&nbsp;</td>
</tr>

<tr bgcolor="#FFFFCC">
<th align="left" colspan=5>General qualifiers</th>
</tr>

<tr bgcolor="#FFFFCC">
<td> -auto</td>
<td>boolean</td>
<td>Turn off prompts</td>
<td>Boolean value Yes/No</td>
<td>N</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -stdout</td>
<td>boolean</td>
<td>Write first file to standard output</td>
<td>Boolean value Yes/No</td>
<td>N</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -filter</td>
<td>boolean</td>
<td>Read first file from standard input, write first file to standard output</td>
<td>Boolean value Yes/No</td>
<td>N</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -options</td>
<td>boolean</td>
<td>Prompt for standard and additional values</td>
<td>Boolean value Yes/No</td>
<td>N</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -debug</td>
<td>boolean</td>
<td>Write debug output to program.dbg</td>
<td>Boolean value Yes/No</td>
<td>N</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -verbose</td>
<td>boolean</td>
<td>Report some/full command line options</td>
<td>Boolean value Yes/No</td>
<td>Y</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -help</td>
<td>boolean</td>
<td>Report command line options and exit. More information on associated and general qualifiers can be found with -help -verbose</td>
<td>Boolean value Yes/No</td>
<td>N</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -warning</td>
<td>boolean</td>
<td>Report warnings</td>
<td>Boolean value Yes/No</td>
<td>Y</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -error</td>
<td>boolean</td>
<td>Report errors</td>
<td>Boolean value Yes/No</td>
<td>Y</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -fatal</td>
<td>boolean</td>
<td>Report fatal errors</td>
<td>Boolean value Yes/No</td>
<td>Y</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -die</td>
<td>boolean</td>
<td>Report dying program messages</td>
<td>Boolean value Yes/No</td>
<td>Y</td>
</tr>

<tr bgcolor="#FFFFCC">
<td> -version</td>
<td>boolean</td>
<td>Report version number and exit</td>
<td>Boolean value Yes/No</td>
<td>N</td>
</tr>

</table>

<H2>
    Input file format
</H2>

It reads in the Codon Usage Tables - these are available as EMBOSS data files.
See below for details.

<p>



<H2>
    Output file format
</H2>

<a name="output.1"></a>
<h3>Output files for usage example </h3>
<p><h3>File: eecoli.codcmp</h3>
<table width="90%"><tr><td bgcolor="#CCFFCC">
<pre>
# CODCMP codon usage table comparison
# Eecoli.cut vs Ehaein.cut

Sum Squared Difference = 2.178
Mean Squared Difference = 0.034
Root Mean Squared Difference = 0.184
Sum Difference         = 9.504
Mean Difference         = 0.149
Codons not appearing   = 0
</pre>
</td></tr></table><p>


<H2>
    Data files
</H2>

<p><b>codcmp</b> requires two codon usage tables which are read by default from the EMBOSS data file from <tt>Ehum.cut</tt> in the data/CODONS directory of the EMBOSS distribution.  If the name of a codon usage file is specified on the command line, then this file will first be searched for in the current directory and then in the <tt>data/CODONS</tt> directory of the EMBOSS distribution. </p>


<p>
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.

<p>

To see the available EMBOSS data files, run:
<p>
<pre>
% embossdata -showall
</pre>
<p>
To fetch one of the data files (for example 'Exxx.dat') into your
current directory for you to inspect or modify, run:

<pre>

% embossdata -fetch -file Exxx.dat

</pre>
<p>

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".

<p>
The directories are searched in the following order:

<ul>
   <li> . (your current directory)
   <li> .embossdata (under your current directory)
   <li> ~/ (your home directory)
   <li> ~/.embossdata
</ul>
<p>

<H2>
    Notes
</H2>

<p>The following notes based on Derek Gatherer's comments are useful for interpreting the significance of any difference between the tables.</p>

<p>It's not normally possible to be certain a a difference is statistically significant just from looking at it, as it is essentially a descriptive statistic about the difference between two 64-mer vectors. If you have a whole lot of sequences and <b>codcmp</b> results for all the possible pairwise comparisons, then the resulting distance matrix can be used to build a phylogenetic tree based on codon usage.</p>

<p>However, if you generate a series of random sequences, measure their codon usage and then do <b>codcmp</b> between each of your test sequences and all the random sequences, you could then use a z-test to see if the result between the two test sequences was outside of the top or bottom 5%.</p>

<p>This would assume that the <b>codcmp</b> results were normally distributed, but you could test that too. The simplest way is just to plot them and look for a bell-curve. For more rigour, find the mean and standard deviation of your results from the random sequences, use the normal distribution equation to generate a theoretical distribution for that mean and standard deviation, and then perform a chi square between the random data and the theoretically generated normal distribution. If you generate two sets of random data, each based on your two test sequences, an F-test should be used to establish that they have equal variances. Then you can safely go ahead and perform the z-test.</p>

<p>You could use the shuffle program to base your random sequences on the test sequences - so that would ensure the randomised background had the same nucleotide content.  F-tests, z-tests and chi-tests can all be done in Excel, as well as being standard in most statistical analysis packages.</p>


<H2>
    References
</H2>


None.

<H2>
    Warnings
</H2>


None.

<H2>
    Diagnostic Error Messages
</H2>


None.

<H2>
    Exit status
</H2>


This program always exits with a status of 0.
 
<H2>
    Known bugs
</H2>

None.

<h2><a name="See also">See also</a></h2>
<table border cellpadding=4 bgcolor="#FFFFF0">
<tr><th>Program name</th>
<th>Description</th></tr>
<tr>
<td><a href="cai.html">cai</a></td>
<td>Calculate codon adaptation index</td>
</tr>

<tr>
<td><a href="chips.html">chips</a></td>
<td>Calculate Nc codon usage statistic</td>
</tr>

<tr>
<td><a href="codcopy.html">codcopy</a></td>
<td>Copy and reformat a codon usage table</td>
</tr>

<tr>
<td><a href="cusp.html">cusp</a></td>
<td>Create a codon usage table from nucleotide sequence(s)</td>
</tr>

<tr>
<td><a href="syco.html">syco</a></td>
<td>Draw synonymous codon usage statistic plot for a nucleotide sequence</td>
</tr>

</table>
<H2>
    Author(s)
</H2>

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

<p>
Please report all bugs to the EMBOSS bug team (emboss-bug&nbsp;&copy;&nbsp;emboss.open-bio.org) not to the original author.
<p>

Some more statistics were added by 
David Martin  

<p>
Please report all bugs to the EMBOSS bug team (emboss-bug&nbsp;&copy;&nbsp;emboss.open-bio.org) not to the original author.
<H2>
    History
</H2>

Completed 9 Sept 1999
<br>
20 Oct 2000 - David Martin added a couple more statistics to the output.

<H2>
    Target users
</H2>
This program is intended to be used by everyone and everything, from naive users to embedded scripts.

<H2>
    Comments
</H2>
None

</BODY>
</HTML>