| oddcomp

## Function

Finds protein sequence regions with a biased composition

## Description

oddcomp searches a series of protein files, reporting the identifier for those that exceed a certain amino acid composition threshold in a portion of the sequence.

oddcomp was written to answer the question 'which proteins contain at least n X and m Y in p residues'.

One could search for serine rich or polyglutamine rich, collagen helix, or similar proteins using this program.

oddcomp takes as input an amino acid composition data file in the same format as the output from compseq. It can tolerate any word length within reason for the memory capacity of the machine in question. Only the first two fields in the composition data file are used: the word and the number of occurrences. Any word not mentioned is initialised to a threshold of zero.

oddcomp measures the amino acid composition (this can be dimers etc as well as monomers) in a sliding window. If and when composition meets or exceeds all the specified thresholds, the sequence is reported and oddcomp moves to the next sequence. It does not report where in the sequence it found the matching region, merely the sequence ID.

oddcomp was originally written to identify SR/RS containing proteins. eg. specifying a window of forty amino acids containing at least 3 SR and 4 RS words.

To search for a specific set of words in a sequence, edit the input composition data file to delete any words from the input file in which you are not interested. The search is a boolean AND so there must be (from the short example above) at least 3 SR AND at least 4 RS for the sequence to be reported. If your total words specified exceeds window-wordlength+1 you will never get any hits.

Only one word size can be used and is specified at the top of the file in compseq-style output.

## 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
    Finds protein sequence regions with a biased composition
    Input sequence(s): tsw:*
    Input file: ../../data/oddcomp.comp
    Window size to consider (e.g. 30 aa) [30]:
    Output file [100k_rat.oddcomp]: out.odd

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

## Command line arguments

       Mandatory qualifiers:
      [-sequence]          seqall     Sequence database USA
      [-compdata]          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    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.
      [-outfile]           outfile    This is the results file.

       Optional qualifiers: (none)
       Advanced qualifiers:
       -[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.

       Associated qualifiers:
      "-sequence" related qualifiers
       -sbegin1             integer    First base used
       -send1               integer    Last base used, def=seq length
       -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
       -sopenfile1          string     Input filename
       -sdbname1            string     Database name
       -sid1                string     Entryname
       -ufo1                string     UFO features
       -fformat1            string     Features format
       -fopenfile1          string     Features file name
      "-outfile" related qualifiers
       -odirectory4         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 required and optional values
       -debug               boolean    Write debug output to program.dbg
       -acdlog              boolean    Write ACD processing log to program.acdlog
       -acdpretty           boolean    Rewrite ACD file as program.acdpretty
       -acdtable            boolean    Write HTML table of options
       -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 deaths

Mandatory qualifiers | Allowed values | Default
--- | --- | ---
[-sequence] (Parameter 1) | Sequence database USA | Readable sequence(s) | Required
[-compdata] (Parameter 2) | 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] (Parameter 3) | 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 4) | This is the results file. | Output file | <sequence>.oddcomp
Optional qualifiers | Allowed values | Default
(none)
Advanced qualifiers | Allowed values | Default
-[no]ignorebz | 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

## Input file format

### Input files for usage example

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

### File: ../../data/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
    	CB1B_FUGRU
    	CO9_FUGRU
    	FOS_FUGRU
    	RS7_FUGRU

    #	END	#

## Data files

None.

## Notes

None.

## 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
--- | ---
antigenic | Finds antigenic sites in proteins
digest | Protein proteolytic enzyme or reagent cleavage digest
fuzzpro | Protein pattern search
fuzztran | Protein pattern search after translation
helixturnhelix | Report nucleic acid binding motifs
patmatdb | Search a protein sequence with a motif
patmatmotifs | Search a PROSITE motif database with a protein sequence
pepcoil | Predicts coiled coil regions
pestfind | Finds PEST motifs as potential proteolytic cleavage sites
preg | Regular expression search of a protein sequence
pscan | Scans proteins using PRINTS
sigcleave | Reports protein signal cleavage sites

## Author(s)

David Martin (dmartin © hgmp.mrc.ac.uk)

## 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