| oddcomp

## 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 proteins with specified sequence word composition

## Description

oddcomp reads one or more protein sequences, identifies proteins containing regions with a specific sequence word composition, then writes a list of sequence identifiers of those proteins to an output file. The word composition is read from an input file which gives the minimum word occurence for any number of sequence words. For an input sequence to be listed in the output file, each word must be found at least the stated number of times in any window over the input sequence. The window size may be set to any value or the length of the current protein (`-fullwindow` option).

## Algorithm

The input file of sequence word composition data is in the same format as the output from compseq. Only one word size (of any length) can be used and is specified at the top of the file. The search for words is a boolean AND meaning all words given in the file must be found in a sequence for it to be reported.

Each word must occur at least the stated number of times in a window over an input sequence for the sequence to be reported. The word size given in the input data file must be less than the specified window size; you will not get any hits otherwise.

## Usage

Here is a sample session with oddcomp

To search for entries in swissprot with at least 1 SR AND at least 2 RS:

    % oddcomp
    Identify proteins with specified sequence word composition
    Input protein sequence(s): tsw:*
    Program compseq output file: oddcomp.comp
    Window size to consider (e.g. 30 aa) [30]:
    Output file [cru4_arath.oddcomp]: out.odd

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

## Command line arguments

    Identify proteins with specified sequence word composition
    Version: EMBOSS:6.6.0.0

       Standard (Mandatory) qualifiers (* if not always prompted):
      [-sequence]          seqall     Protein sequence(s) filename and optional
                                      format, or reference (input USA)
      [-infile]            infile     This is a file in the format of the output
                                      produced by 'compseq' that is used to set
                                      the minimum frequencies of words in this
                                      analysis.
    *  -window             integer    [30] This is the size of window in which to
                                      count.
                                      Thus if you want to count frequencies in a
                                      40 aa stretch you should enter 40 here.
                                      (Integer 10 or more)
      [-outfile]           outfile    [*.oddcomp] This is the results file.

       Additional (Optional) qualifiers: (none)
       Advanced (Unprompted) qualifiers:
       -fullwindow         toggle     [N] Set this option on (Y) if you want the
                                      window size to be set to the length of the
                                      current protein. Otherwise, leave this
                                      option unset, in which case you'll be
                                      prompted for a window size to use.
       -[no]ignorebz       boolean    [Y] The amino acid code B represents
                                      Asparagine or Aspartic acid and the code Z
                                      represents Glutamine or Glutamic acid.
                                      These are not commonly used codes and you
                                      may wish not to count words containing them,
                                      just noting them in the count of 'Other'
                                      words.

       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
       -squick1            boolean    Read id and sequence only
       -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
       -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

Qualifier | Type | Description | Allowed values | Default
--- | --- | --- | --- | ---
Standard (Mandatory) qualifiers
[-sequence] (Parameter 1) | seqall | Protein sequence(s) filename and optional format, or reference (input USA) | Readable sequence(s) | Required
[-infile] (Parameter 2) | infile | This is a file in the format of the output produced by 'compseq' that is used to set the minimum frequencies of words in this analysis. | Input file | Required
-window | integer | This is the size of window in which to count. Thus if you want to count frequencies in a 40 aa stretch you should enter 40 here. | Integer 10 or more | 30
[-outfile] (Parameter 3) | outfile | This is the results file. | Output file | <*>.oddcomp
Additional (Optional) qualifiers
(none)
Advanced (Unprompted) qualifiers
-fullwindow | toggle | Set this option on (Y) if you want the window size to be set to the length of the current protein. Otherwise, leave this option unset, in which case you'll be prompted for a window size to use. | Toggle value Yes/No | No
-[no]ignorebz | boolean | The amino acid code B represents Asparagine or Aspartic acid and the code Z represents Glutamine or Glutamic acid. These are not commonly used codes and you may wish not to count words containing them, just noting them in the count of 'Other' words. | Boolean value Yes/No | Yes
Associated qualifiers
"-sequence" associated seqall qualifiers
-sbegin1 -sbegin_sequence | integer | Start of each sequence to be used | Any integer value | 0
-send1 -send_sequence | integer | End of each sequence to be used | Any integer value | 0
-sreverse1 -sreverse_sequence | boolean | Reverse (if DNA) | Boolean value Yes/No | N
-sask1 -sask_sequence | boolean | Ask for begin/end/reverse | Boolean value Yes/No | N
-snucleotide1 -snucleotide_sequence | boolean | Sequence is nucleotide | Boolean value Yes/No | N
-sprotein1 -sprotein_sequence | boolean | Sequence is protein | Boolean value Yes/No | N
-slower1 -slower_sequence | boolean | Make lower case | Boolean value Yes/No | N
-supper1 -supper_sequence | boolean | Make upper case | Boolean value Yes/No | N
-scircular1 -scircular_sequence | boolean | Sequence is circular | Boolean value Yes/No | N
-squick1 -squick_sequence | boolean | Read id and sequence only | Boolean value Yes/No | N
-sformat1 -sformat_sequence | string | Input sequence format | Any string |
-iquery1 -iquery_sequence | string | Input query fields or ID list | Any string |
-ioffset1 -ioffset_sequence | integer | Input start position offset | Any integer value | 0
-sdbname1 -sdbname_sequence | string | Database name | Any string |
-sid1 -sid_sequence | string | Entryname | Any string |
-ufo1 -ufo_sequence | string | UFO features | Any string |
-fformat1 -fformat_sequence | string | Features format | Any string |
-fopenfile1 -fopenfile_sequence | string | Features file name | Any string |
"-outfile" associated outfile qualifiers
-odirectory3 -odirectory_outfile | string | Output directory | Any string |
General qualifiers
-auto | boolean | Turn off prompts | Boolean value Yes/No | N
-stdout | boolean | Write first file to standard output | Boolean value Yes/No | N
-filter | boolean | Read first file from standard input, write first file to standard output | Boolean value Yes/No | N
-options | boolean | Prompt for standard and additional values | Boolean value Yes/No | N
-debug | boolean | Write debug output to program.dbg | Boolean value Yes/No | N
-verbose | boolean | Report some/full command line options | Boolean value Yes/No | Y
-help | boolean | Report command line options and exit. More information on associated and general qualifiers can be found with -help -verbose | Boolean value Yes/No | N
-warning | boolean | Report warnings | Boolean value Yes/No | Y
-error | boolean | Report errors | Boolean value Yes/No | Y
-fatal | boolean | Report fatal errors | Boolean value Yes/No | Y
-die | boolean | Report dying program messages | Boolean value Yes/No | Y
-version | boolean | Report version number and exit | Boolean value Yes/No | N

## Input file format

### Input files for usage example

'tsw:*' is a sequence entry in the example protein database 'tsw'

### File: oddcomp.comp

    # Example input file for oddcomp
    Word size       2
    Total count     0

    #
    # Word  Obs Count       Obs Frequency   Exp Frequency   Obs/Exp Frequency
    #
    RS      2               0               0               0
    SR      1               0               0               0

    Other   0               0               0               0

The columns "Obs Frequency", "Exp Frequency" and "Obs/Exp Frequency" are not required - they were simply included in this example to show the similarity between this input file format and the output of the program compseq. A compseq output file can be used as the input to oddcomp - the extra columns are ignored by oddcomp.

A minimal composition input data file would look like this:

    Word size       2
    Total count     0
    RS      2
    SR      1

Blank lines and lines starting with '#' are ignored.

The first non-comment line should start with 'Word size' and will specify the word size to use.

A line starting with the word 'Total' is required.

Anything after the line starting with the word 'Total' will be read as word count data.

Word count data consists of a word to search for and the count of that word to search for within the sliding window. The columns are separated by one or more spaces or TAB characters. Anything after these two columns will be ignored.

## Output file format

oddcomp writes a list of sequence name identifiers.

### Output files for usage example

### File: out.odd

    #
    # Output from 'oddcomp'
    #
    # The Expected frequencies are taken from the file: ../../data/oddcomp.comp
    #
    #	Word size: 2
    	CNR1B_TAKRU
    	CO9_TAKRU
    	FOS_TAKRU
    	RS7_TAKRU
    	UBR5_RAT

    #	END	#

## Data files

None.

## Notes

oddcomp was originally written to identify proteins with `SR`/`RS` dimers, for example, windows of forty amino acids containing at least 3 `SR` and 4 `RS` words. More generally, it will help answer questions of the type 'which proteins contain at least x occurrences of word X and y occurences of word Y in regions of n residues'. For example, one could search for serine rich or polyglutamine rich, collagen helix, or similar proteins using this program.

oddcomp does not report the location of the word matches in the sequence, merely the sequence ID. To search for a specific set of words in a sequence, you should edit the input file of sequence word composition data.

## References

None.

## Warnings

None.

## Diagnostic Error Messages

None.

## Exit status

It always exits with a status of 0.

## Known bugs

None.

## See also

Program name | Description
--- | ---
backtranambig | Back-translate a protein sequence to ambiguous nucleotide sequence
backtranseq | Back-translate a protein sequence to a nucleotide sequence
compseq | Calculate the composition of unique words in sequences
emowse | Search protein sequences by digest fragment molecular weight
freak | Generate residue/base frequency table or plot
mwcontam | Find weights common to multiple molecular weights files
mwfilter | Filter noisy data from molecular weights file
pepdigest | Report on protein proteolytic enzyme or reagent cleavage sites
pepinfo | Plot amino acid properties of a protein sequence in parallel
pepstats | Calculate statistics of protein properties
wordcount | Count and extract unique words in molecular sequence(s)

## Author(s)

David Martin

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

## History

Written (1999) - David Martin

## Target users

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

## Comments

None