
CpG Island Finder
Identify CpG-rich DNA regions using GC content, CpG density, and observed-to-expected ratios.
Input
How to find CpG islands online
Paste DNA or upload a FASTA file, choose an Analysis preset, and click Find CpG Islands. The finder scans each record for CpG-rich windows and reports merged candidate regions in a table. Results include sequence coordinates, GC content, CpG counts and observed/expected ratios, with CSV, JSON and Excel export.
Worked example
This synthetic 200 bp sequence tests the calculation; it is not a genomic promoter. Run it with the default Standard preset, or load CpG-rich test sequence (200 bp) from the examples menu.
>cpg_test
CGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCG
CGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCG
CGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCG
CGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGThe result is:
| Sequence | Island # | Start | End | Length (bp) | GC % | Obs/Exp | CpG Count | CpG/100bp |
|---|---|---|---|---|---|---|---|---|
| cpg_test | 1 | 1 | 200 | 200 | 100 | 2 | 100 | 50 |
There are 100 C bases, 100 G bases and 100 CpG dinucleotides. The expected CpG count is 100 × 100 / 200 = 50, so the observed/expected ratio is 2. Strict reports no region for this example because its minimum island length is 500 bp.
Input
| Input | Accepted content |
|---|---|
| Raw DNA | One sequence, optionally wrapped across lines. Uppercase and lowercase A, C, G, T and N are accepted. |
| FASTA | One or more records. Start each header with > and put bases on the following lines. The first whitespace-delimited header token identifies result rows; pipes within identifiers are retained. |
| Upload | .txt, .fasta, .fa, .fas, .fna and .seq text files, up to 50 MB per file. |
Whitespace, position numbers surrounding DNA blocks, and invisible formatting from pasted text are normalized. Blank lines and lines beginning with # are ignored. Names belong in FASTA headers. Gaps, stop markers, punctuation and ambiguity codes other than N produce an error rather than being deleted. Empty FASTA records also produce an error, so records cannot disappear silently.
A saved compact FASTA record with at least 10 bases after its header is still accepted if it has no sequence lines. For new input, use the usual separate header and sequence lines to avoid ambiguity.
N bases keep their positions and count toward sequence length, but contribute no C, G or CpG counts. The tool warns about them because they affect the reported percentages and enrichment ratios. Repeated sequence identifiers also produce a warning; give records unique names when comparing results.
Settings
| Setting | Default | Options and behavior |
|---|---|---|
Analysis preset | Standard | Standard: GC ≥ 50%, O/E ≥ 0.6, merged length ≥ 200 bp. Strict: GC ≥ 55%, O/E ≥ 0.65, merged length ≥ 500 bp. Relaxed: GC ≥ 45%, O/E ≥ 0.5, merged length ≥ 100 bp. |
All three presets use a 200 bp window and a 1 bp step. Sequences shorter than 200 bp are not scanned and are reported in a warning. In particular, the relaxed length filter does not make 100 bp input scannable: a full qualifying window already spans 200 bp.
The presets also set the merge tolerance to 100 bp (Standard), 50 bp (Strict) or 200 bp (Relaxed). These settings are selected together by the preset; window size and individual thresholds have no separate controls on this page.
Results
| Column | Meaning |
|---|---|
Sequence | FASTA identifier, or Sequence for raw input. |
Island # | Candidate region number within the record. |
Start, End | 1-based, inclusive positions in the supplied sequence, after formatting cleanup. These are not reference-genome coordinates unless the input begins at genome position 1. |
Length (bp) | End minus start plus one. |
GC % | 100 × (C + G) / region length, rounded to two decimal places. |
Obs/Exp | CpG count × region length / (C count × G count), rounded to three decimal places. |
CpG Count | Number of adjacent C-followed-by-G pairs within the region. |
CpG/100bp | 100 × CpG count / region length, rounded to two decimal places. |
If no windows qualify or no merged region passes the length filter, the table has no rows. Check warnings first: unscanned short input is different from scanned input with no matching region.
How the calculation works
Gardiner-Garden and Frommer (1987) described CpG-rich regions using nucleotide composition and CpG enrichment. This finder uses inclusive threshold comparisons with its own sliding-window and merging policy.
For a window or merged region of length :
The ratio is zero when either C or G is absent. Only full windows are scanned. Qualifying windows are joined if they overlap or if the next window's start is no greater than the current region's end plus the preset's tolerance. For example, the standard tolerance joins a next start of 300 to a current end of 200; the 99 intervening bases enter the merged region.
Statistics are recalculated over the entire merged region. The minimum length is then applied; GC and O/E thresholds are not reapplied to the merged statistics. A reported candidate can therefore have final statistics below the window thresholds when it includes intervening low-CpG DNA.
EMBOSS cpgplot uses the same expected-count equation but averages over 10 windows and has different defaults. Its region boundaries need not match this finder's results.
Interpreting CpG-rich regions
An O/E ratio of 1 means the observed CpG count equals the expectation from the region's C and G frequencies. Values above 1 indicate enrichment relative to that expectation. A high ratio alone does not establish a promoter, transcription start site, or methylation state.
CpG islands are associated with many vertebrate promoters, but sequence-based thresholds are empirical. Repetitive DNA can meet the criteria, and biologically relevant regions can fall below them. This finder does not mask repeats, use gene annotations, or analyze methylation measurements. Interpret candidates alongside the reference genome, annotations and experimental evidence.
Which tool should I use?
| Task | Tool |
|---|---|
| Identify CpG-rich candidate regions | CpG Island Finder |
| Compare base composition without calling regions | GC Content, linked above |
| Convert a complete GenBank record before analysis | GenBank to FASTA |
| Extract DNA sequences from sequencing reads | FASTQ to FASTA |
| Convert RNA bases before a DNA-only analysis | RNA to DNA |
FAQ
Does a CpG island mean the DNA is unmethylated?
No. This calculation reads the sequence, not methylation data. The result cannot determine whether a region is methylated or transcriptionally active in a particular sample.
Why does Relaxed return nothing for a 150 bp sequence?
Every preset scans full 200 bp windows. The relaxed 100 bp minimum applies after merging; short input is reported as unscanned.
Can I analyze multiple FASTA sequences?
Yes, within the input limits shown on the page. Each record is scanned separately, and coordinates and island numbering restart for each record. Keep the identifiers unique so exported rows remain distinguishable.
Related tools
Oligo analyzer
Analyze independent DNA oligos or screen a bounded set for primer interactions with Primer3 thermodynamic conditions.
GC content calculator
Calculate GC content, AT content, GC/AT skew, melting temperature, and CpG islands for DNA or RNA, with a sliding-window GC plot.
IPC 2.0 (isoelectric point calculator)
Calculate protein and peptide pI values using validated pKa scales and sequence models.
Carbon
Generate, score, and compare canonical DNA sequences with Carbon language models.
ORF Finder
Identify potential protein-coding regions in DNA across all six reading frames with NCBI ORFfinder.
Aggrescan3D
Analyze aggregation-prone regions in a protein structure.
Protein charge plot
Plot net charge vs pH to visualize protein charge behavior and identify the isoelectric point.
FindPept
Match experimental masses to theoretical protein digest fragments for peptide mass fingerprinting.
Hydropathy plot
Generate hydropathy plots to visualize hydrophobic/hydrophilic regions along protein sequences using sliding window analysis.
Hydrophobicity plot
Explore local protein hydrophobicity with 24 amino acid scales, including Eisenberg and Hopp-Woods, and an adjustable sliding window.