
                                 cpgreport 



Function

   Identify and report CpG-rich regions in nucleotide sequence(s)

Description

   cpgreport identifies in a nucleotide sequence regions with higher than
   expected frequency of the dinucleotide CG.
   Each position in the sequence is scored using a running sum calculated
   from all positions in the sequence. This is a different method to that
   typically used for identifying CpG islands, for example by
   newcpgreport and cpgplot. This method overpredicts islands but finds
   the smaller ones around primary exons. An output file is written with
   information on the CpG-rich regions that are found. A feature table of
   sequence features in these regions is also written.

Algorithm

   cpgreport scores each position in the sequence using a running sum
   calculated from all positions in the sequence, starting with the first
   and ending in the last. If there is not a CG dinucleotide at a
   position, the score is decremented, if there is one, the score is
   incremented by a constant (user-defined) value. If the score for a
   region in the sequence is higher than a threshold (17 at the moment)
   then a putative island is declared. Sequence regions scoring above the
   threshold are searched for recursively.

Usage

   Here is a sample session with cpgreport


% cpgreport tembl:u68037 
Identify and report CpG-rich regions in nucleotide sequence(s)
CpG score [17]: 
Output file [u68037.cpgreport]: 
Features output [u68037.gff]: 

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

Command line arguments

   Standard (Mandatory) qualifiers:
  [-sequence]          seqall     Nucleotide sequence(s) filename and optional
                                  format, or reference (input USA)
   -score              integer    [17] This sets the score for each CG
                                  sequence found. A value of 17 is more
                                  sensitive, but 28 has also been used with
                                  some success. (Integer from 1 to 200)
  [-outfile]           outfile    [*.cpgreport] Output file name
  [-outfeat]           featout    [unknown.gff] File for output features

   Additional (Optional) qualifiers: (none)
   Advanced (Unprompted) qualifiers: (none)
   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
   -odirectory2        string     Output directory

   "-outfeat" associated qualifiers
   -offormat3          string     Output feature format
   -ofopenfile3        string     Features file name
   -ofextension3       string     File name extension
   -ofdirectory3       string     Output directory
   -ofname3            string     Base file name
   -ofsingle3          boolean    Separate file for each entry

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

   Any DNA sequence USA.

  Input files for usage example

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

  Database entry: tembl:u68037

ID   U68037; SV 1; linear; mRNA; STD; ROD; 1218 BP.
XX
AC   U68037;
XX
DT   23-SEP-1996 (Rel. 49, Created)
DT   04-MAR-2000 (Rel. 63, Last updated, Version 2)
XX
DE   Rattus norvegicus EP1 prostanoid receptor mRNA, complete cds.
XX
KW   .
XX
OS   Rattus norvegicus (Norway rat)
OC   Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; Mammalia
;
OC   Eutheria; Euarchontoglires; Glires; Rodentia; Sciurognathi; Muroidea;
OC   Muridae; Murinae; Rattus.
XX
RN   [1]
RP   1-1218
RA   Abramovitz M., Boie Y.;
RT   "Cloning of the rat EP1 prostanoid receptor";
RL   Unpublished.
XX
RN   [2]
RP   1-1218
RA   Abramovitz M., Boie Y.;
RT   ;
RL   Submitted (26-AUG-1996) to the EMBL/GenBank/DDBJ databases.
RL   Biochemistry & Molecular Biology, Merck Frosst Center for Therapeutic
RL   Research, P. O. Box 1005, Pointe Claire - Dorval, Quebec H9R 4P8, Canada
XX
FH   Key             Location/Qualifiers
FH
FT   source          1..1218
FT                   /organism="Rattus norvegicus"
FT                   /strain="Sprague-Dawley"
FT                   /mol_type="mRNA"
FT                   /db_xref="taxon:10116"
FT   CDS             1..1218
FT                   /codon_start=1
FT                   /product="EP1 prostanoid receptor"
FT                   /note="family 1 G-protein coupled receptor"
FT                   /db_xref="GOA:P70597"
FT                   /db_xref="InterPro:IPR000276"
FT                   /db_xref="InterPro:IPR000708"
FT                   /db_xref="InterPro:IPR001244"
FT                   /db_xref="InterPro:IPR008365"
FT                   /db_xref="UniProtKB/Swiss-Prot:P70597"
FT                   /protein_id="AAB07735.1"
FT                   /translation="MSPYGLNLSLVDEATTCVTPRVPNTSVVLPTGGNGTSPALPIFS
M
FT                   TLGAVSNVLALALLAQVAGRLRRRRSTATFLLFVASLLAIDLAGHVIPGALVLRLYTA
G
FT                   RAPAGGACHFLGGCMVFFGLCPLLLGCGMAVERCVGVTQPLIHAARVSVARARLALAL
L
FT                   AAMALAVALLPLVHVGHYELQYPGTWCFISLGPPGGWRQALLAGLFAGLGLAALLAAL
V
FT                   CNTLSGLALLRARWRRRRSRRFRENAGPDDRRRWGSRGLRLASASSASSITSTTAALR
S
FT                   SRGGGSARRVHAHDVEMVGQLVGIMVVSCICWSPLLVLVVLAIGGWNSNSLQRPLFLA
V
FT                   RLASWNQILDPWVYILLRQAMLRQLLRLLPLRVSAKGGPTELSLTKSAWEASSLRSSR
H
FT                   SGFSHL"
XX
SQ   Sequence 1218 BP; 162 A; 397 C; 387 G; 272 T; 0 other;
     atgagcccct acgggcttaa cctgagccta gtggatgagg caacaacgtg tgtaacaccc        6
0
     agggtcccca atacatctgt ggtgctgcca acaggcggta acggcacatc accagcgctg       12
0
     cctatcttct ccatgacgct gggtgctgtg tccaacgtgc tggcgctggc gctgctggcc       18
0
     caggttgcag gcagactgcg gcgccgccgc tcgactgcca ccttcctgtt gttcgtcgcc       24
0
     agcctgcttg ccatcgacct agcaggccat gtgatcccgg gcgccttggt gcttcgcctg       30
0
     tatactgcag gacgtgcgcc cgctggcggg gcctgtcatt tcctgggcgg ctgtatggtc       36
0
     ttctttggcc tgtgcccact tttgcttggc tgtggcatgg ccgtggagcg ctgcgtgggt       42
0
     gtcacgcagc cgctgatcca cgcggcgcgc gtgtccgtag cccgcgcacg cctggcacta       48
0
     gccctgctgg ccgccatggc tttggcagtg gcgctgctgc cactagtgca cgtgggtcac       54
0
     tacgagctac agtaccctgg cacttggtgt ttcattagcc ttgggcctcc tggaggttgg       60
0
     cgccaggcgt tgcttgcggg cctcttcgcc ggccttggcc tggctgcgct ccttgccgca       66
0
     ctagtgtgta atacgctcag cggcctggcg ctccttcgtg cccgctggag gcggcgtcgc       72
0
     tctcgacgtt tccgagagaa cgcaggtccc gatgatcgcc ggcgctgggg gtcccgtgga       78
0
     ctccgcttgg cctccgcctc gtctgcgtca tccatcactt caaccacagc tgccctccgc       84
0
     agctctcggg gaggcggctc cgcgcgcagg gttcacgcac acgacgtgga aatggtgggc       90
0
     cagctcgtgg gcatcatggt ggtgtcgtgc atctgctgga gccccctgct ggtattggtg       96
0
     gtgttggcca tcgggggctg gaactctaac tccctgcagc ggccgctctt tctggctgta      102
0
     cgcctcgcgt cgtggaacca gatcctggac ccatgggtgt acatcctgct gcgccaggct      108
0
     atgctgcgcc aacttcttcg cctcctaccc ctgagggtta gtgccaaggg tggtccaacg      114
0
     gagctgagcc taaccaagag tgcctgggag gccagttcac tgcgtagctc ccggcacagt      120
0
     ggcttcagcc acttgtga                                                    121
8
//

Output file format

  Output files for usage example

  File: u68037.cpgreport



CPGREPORT of U68037 from 1 to 1218

Sequence              Begin    End Score        CpG   %CG  CG/GC
U68037                   12     13    17          1 100.0    -
U68037                   47     48    17          1 100.0    -
U68037                   96   1032   630         87  66.1   0.65
U68037                 1072   1100    26          3  62.1   0.00
U68037                 1139   1140    17          1 100.0    -
U68037                 1183   1193    26          2  72.7   2.00

  File: u68037.gff

##gff-version 3
##sequence-region U68037 1 1193
#!Date 2008-07-15
#!Type DNA
#!Source-version EMBOSS 6.0.0
U68037  cpgreport       located_sequence_feature        12      13      17.000
+       .       ID="U68037.1"
U68037  cpgreport       located_sequence_feature        47      48      17.000
+       .       ID="U68037.2"
U68037  cpgreport       located_sequence_feature        96      1032    630.000
+       .       ID="U68037.3"
U68037  cpgreport       located_sequence_feature        1072    1100    26.000
+       .       ID="U68037.4"
U68037  cpgreport       located_sequence_feature        1139    1140    17.000
+       .       ID="U68037.5"
U68037  cpgreport       located_sequence_feature        1183    1193    26.000
+       .       ID="U68037.6"

   The first non-blank line of the output file 'rnu68037.cpgreport' is
   the title line giving the program name, the name of sequence being
   analysed and the start and end positions of the sequence.

   The second non-blank line contains the headings of the columns.

   Subsequent lines contain columns with the following information:

     * The name of the sequence.
     * The begin position and the end position of the CpG-rich region.
     * The score of the CpG-rich region.
     * The number of CpG's in the CpG-rich region.
     * The %(G+C) in the CpG-rich region.
     * The ratio of CpG to GpC in the CpG-rich region.

   If the count of GpC in the region is zero, then the ratio of CG/GC is
   reported as '-'.

Data files

   None.

Notes

   "CpG" refers to a C nucleotide immediately followed by a G. The 'p' in
   'CpG' refers to the phosphate group linking the two bases. Regions of
   genomic sequences rich in the CpG pattern or "CpG islands" are
   resistant to methylation and tend to be associated with genes which
   are frequently switched on. It's been estimated that about half of all
   mammalian genes, and, possibly all mammalian house-keeping genes, have
   a CpG-rich region around their 5' end. Non-mammalian vertebrates have
   some CpG islands that are associated with genes, but the association
   gets equivocal in the farther taxonomic groups. The detection of CpG
   island upstream of predicted exons or genes is evidence in support of
   a highly expressed gene.

   As there is no official definition of what is a CpG island is or how
   to identify where they begin and end, we work with two definitions and
   thus two methods. These are:

   1. cpgplot and newcpgreport use a sliding window within which the
   Observed/Expected ratio of CpG is calculated. For a sequence region to
   reported as a CpG island, it must satisfy the following contraints:
   Observed/Expected ratio > 0.6
   % C + % G > 50%
   Sequence Length > 200

   2. newcpgseek and cpgreport use a running sum calculated from all
   positions in a sequence rather than a window to produce a score. If
   there is not a CG dinucleotide at a position, the score is
   decremented, if there is one, the score is incremented by a constant
   (user-defined) value. If the score for a region in the sequence is
   higher than a threshold (17 at the moment) then a putative island is
   declared. Sequence regions scoring above the threshold are searched
   for recursively.

   This method overpredicts islands but finds the smaller ones around
   primary exons. newcpgseek uses the same method as cpgreport but the
   output is different and more readable. For most purposes you should
   probably use newcpgreport rather than cpgreport. It is used to produce
   the human cpgisland database you can find on the EBI's ftp server as
   well as on the EBI's SRS server.

   newcpgseek and cpgreport both now display the actual CpG count, the
   (%C + %G) and the Observed/Expected ratio in the region where the
   score is above the threshold.

   The geecee program measures CG content in the entire input sequence
   and is not to be used to detect CpG islands. It can be useful for
   detecting sequences that MIGHT contain an island.

References

   None.

Warnings

   None.

Diagnostic Error Messages

   None.

Exit status

   0 if successful.

Known bugs

   None.

See also

   Program name Description
   cpgplot Identify and plot CpG islands in nucleotide sequence(s)
   geecee Calculate fractional GC content of nucleic acid sequences
   newcpgreport Identify CpG islands in nucleotide sequence(s)
   newcpgseek Identify and report CpG-rich regions in nucleotide
   sequence(s)

   As there is no official definition of what is a cpg island is, and
   worst where they begin and end, we have to live with 2 definitions and
   thus two methods. These are:

   1. newcpgseek and cpgreport - both declare a putative island if the
   score is higher than a threshold (17 at the moment). They now also
   displaying the actual CpG count, the % CG and the observed/expected
   ration in the region where the score is above the threshold. This
   scoring method based on sum/frequencies overpredicts islands but finds
   the smaller ones around primary exons. newcpgseek uses the same method
   as cpgreport but the output is different and more readable.

   2. newcpgreport and cpgplot use a sliding window within which the
   Obs/Exp ratio of CpG is calculated. The important thing to note in
   this method is that an island, in order to be reported, is defined as
   a region that satisfies the following contraints:

   Obs/Exp ratio > 0.6
   % C + % G > 50%
   Length > 200.

   For all practical purposes you should probably use newcpgreport. It is
   actually used to produce the human cpgisland database you can find on
   the EBI's ftp server as well as on the EBI's SRS server.

   geecee measures CG content in the entire input sequence and is not to
   be used to detect CpG islands. It can be usefull for detecting
   sequences that MIGHT contain an island.

Author(s)

   This program was originally written by Gos Micklem (gos © ebi.ac.uk)
   Informatics Division, European Bioinformatics Institute, Wellcome
   Trust Genome Campus, Hinxton, Cambridge CB10 1SD, UK

   The algorithm was modified for inclusion in EGCG under the name
   'CPGSPANS' by Rodrigo Lopez (rls © ebi.ac.uk)
   European Bioinformatics Institute, Wellcome Trust Genome Campus,
   Hinxton, Cambridge CB10 1SD, UK

   This application was modified for inclusion in EMBOSS by Alan Bleasby
   (ajb © ebi.ac.uk)
   European Bioinformatics Institute, Wellcome Trust Genome Campus,
   Hinxton, Cambridge CB10 1SD, UK

History

   Completed 22nd March 1999.

Target users

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

Comments

   None
