circos-plot-generator

Generate Circos configuration files for circular genomics data visualization. Supports genomic variations (SNPs, CNVs, structural variants), cell-cell communication networks, and custom track configurations for publication-ready circular plots.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "circos-plot-generator" with this command: npx skills add circos-plot-generator

Circos Plot Generator

Generate configuration files for Circos circular visualization plots, enabling genomics data visualization including genomic variations, chromosome ideograms, cell-cell communication networks, and custom track annotations. Simplifies the complex Circos configuration process for researchers without Perl expertise.

Key Capabilities:

  • Genomic Variation Visualization: Create plots for SNPs, CNVs, structural variants (translocations, inversions)
  • Cell-Cell Communication Networks: Visualize intercellular interactions and signaling pathways
  • Chromosome Ideograms: Display chromosome structure with bands and annotations
  • Multiple Track Types: Support histograms, scatter plots, links, heatmaps, and text tracks
  • Publication-Ready Output: Generate configurations for high-quality PNG/SVG figures

When to Use

✅ Use this skill when:

  • Visualizing genomic variations across chromosomes (SNPs, CNVs, SVs) for publication
  • Creating circular genome maps showing multiple data types simultaneously
  • Plotting cell-cell communication networks from single-cell RNA-seq data
  • Displaying synteny or chromosomal rearrangements between genomes
  • Creating circos plots for grant proposals, presentations, or papers
  • Generating custom track visualizations for genomic features
  • Comparing structural variants across multiple samples or conditions

❌ Do NOT use when:

  • Needing interactive genome browsers (e.g., IGV, UCSC) → Use genome browser tools
  • Creating linear genome plots → Use cnv-caller-plotter or gene-structure-mapper
  • Analyzing time-series or trajectory data → Use trajectory analysis tools
  • Working with protein structures → Use PyMOL or ChimeraX
  • Requiring real-time data visualization → Use web-based dashboards
  • Making simple bar charts or line plots → Use matplotlib, ggplot2, or Excel

Related Skills:

  • 上游 (Upstream): cnv-caller-plotter, crispr-screen-analyzer, bio-ontology-mapper
  • 下游 (Downstream): dpi-upscaler-checker, journal-cover-prompter, figure-legend-gen

Integration with Other Skills

Upstream Skills:

  • cnv-caller-plotter: Generate CNV calls for visualization in Circos
  • crispr-screen-analyzer: Prepare hit data for genomic context visualization
  • bio-ontology-mapper: Map features to genomic coordinates for track display

Downstream Skills:

  • dpi-upscaler-checker: Verify output resolution meets publication requirements
  • journal-cover-prompter: Generate AI prompts for journal covers using Circos plots
  • figure-legend-gen: Create figure legends for complex Circos visualizations

Complete Workflow:

WGS Data → cnv-caller-plotter → circos-plot-generator → dpi-upscaler-checker → Publication Figure

Core Capabilities

1. Genomic Variation Track Generation

Create tracks for visualizing genomic variations including SNPs, CNVs, and structural variants.

from scripts.main import CircosConfig

# Configuration for genomic variation plot
config = {
    "type": "variation",
    "title": "Sample Genomic Variations",
    "data": "variations.csv",
    "width": 1200,
    "height": 1200,
    "color_scheme": "nature",
    "output": "./circos_output"
}

# Generate configuration
generator = CircosConfig(config)
config_path = generator.generate()

print(f"Configuration generated: {config_path}")
print(f"Tracks included:")
print("  - Histogram track for SNPs/CNVs")
print("  - Link track for structural variants")
print("  - Chromosome ideogram")

Input Data Format:

ColumnDescriptionExample
chromChromosome namechr1, chrX
startStart position1000000
endEnd position2000000
typeVariation typeSNP, CNV, TRANSLOCATION
valueScore or magnitude0.5, -0.8
target_chromFor SVs: target chromosomechr5
target_startFor SVs: target start5000000

Variation Types Supported:

TypeVisualizationColor Coding
SNPHistogram pointsBlue/Red (gain/loss)
CNVHistogram barsGreen/Orange (amplification/deletion)
TRANSLOCATIONLinks between chromosomesPurple ribbons
INVERSIONIntra-chromosomal linksYellow
DELETIONHistogram barsRed
DUPLICATIONHistogram barsBlue

Best Practices:

  • Normalize values to -1 to +1 range for consistent scaling
  • Use appropriate bin sizes (1-10 Mb) for genome-wide views
  • Color code by type for easy interpretation
  • Include ideogram for chromosome context

Common Issues and Solutions:

Issue: Too many data points causing clutter

  • Symptom: Plot looks crowded with overlapping elements
  • Solution: Increase bin size; filter for significant variants only; use transparency

Issue: Chromosome naming mismatch

  • Symptom: Data not appearing on correct chromosomes
  • Solution: Use consistent naming (chr1, chr2, ... chrX, chrY); check for "1" vs "chr1"

2. Cell-Cell Communication Visualization

Create circular plots showing interactions between cell types in tissues or tumors.

from scripts.main import CircosConfig

# Configuration for cell-cell communication
config = {
    "type": "cell-comm",
    "title": "Tumor Microenvironment Interactions",
    "data": "cell_communication.csv",
    "width": 1000,
    "height": 1000,
    "color_scheme": "cell",
    "output": "./cell_comm_plots"
}

generator = CircosConfig(config)
config_path = generator.generate()

print("Cell-cell communication plot configured:")
print("  - Cell types arranged in circle")
print("  - Connection ribbons showing interactions")
print("  - Labels for each cell type")

Input Format for Cell Communication:

ColumnDescriptionExample
sourceSource cell typeT_Cell
targetTarget cell typeMacrophage
weightInteraction strength (0-1)0.8
typeInteraction typeLigand-Receptor, Secreted

Visualization Features:

FeatureDescriptionUse Case
Ribbon linksConnection width ∝ interaction strengthShow communication intensity
Cell segmentsEach cell type as chromosome segmentCompare cell type abundance
LabelsCell type names outside circleIdentify cells easily
ColorsDistinct colors per cell typeDistinguish cell types

Best Practices:

  • Normalize weights to 0-1 scale for consistent ribbon sizing
  • Group related cell types together in input file
  • Use distinct colors for each cell type (max 8-10 for clarity)
  • Filter weak interactions (weight < 0.2) to reduce clutter

Common Issues and Solutions:

Issue: Too many cell types causing confusion

  • Symptom: Plot crowded with >10 cell types
  • Solution: Group rare cell types into "Other"; create separate plots for major groups

Issue: Bidirectional interactions not clear

  • Symptom: Can't distinguish A→B from B→A
  • Solution: Use arrow indicators; color-code by direction; split into two plots

3. Chromosome Ideogram Configuration

Generate chromosome ideograms showing banding patterns and genomic coordinates.

from scripts.main import CircosConfig, CHROMOSOME_SIZES

# View available chromosomes
print("Available chromosomes (GRCh38/hg38):")
for chrom, size in CHROMOSOME_SIZES.items():
    size_mb = size / 1_000_000
    print(f"  {chrom}: {size_mb:.1f} Mb")

# Custom chromosome selection
config = {
    "type": "variation",
    "title": "Chr1-5 Variations",
    "chromosomes": ["chr1", "chr2", "chr3", "chr4", "chr5"],  # Subset
    "width": 1000,
    "height": 1000,
    "output": "./chr1-5_plots"
}

# Note: Chromosome selection handled in data preprocessing

Chromosome Specifications:

ChromosomeSize (bp)Display Color
chr1248,956,422Red
chr2242,193,529Orange
chr3198,295,559Yellow
.........
chrX156,040,895Purple
chrY57,227,415Grey

Ideogram Features:

FeatureDescriptionConfiguration
SpacingGap between chromosomes0.005r (0.5% of radius)
ThicknessChromosome bar width25 pixels
LabelsChromosome namesOutside circle
BandsCytogenetic bandsShow/hide option
TicksScale markers5u and 25u spacing

Best Practices:

  • Include all autosomes for genome-wide views
  • Show X and Y for sex chromosome analysis
  • Use consistent scaling across samples
  • Add cytoband information for clinical relevance

Common Issues and Solutions:

Issue: Small chromosomes (chr21, chrY) hard to see

  • Symptom: Very small segments for small chromosomes
  • Solution: Use non-linear scaling; create zoomed inset plots

Issue: Mitochondrial DNA not included

  • Symptom: chrM variants not shown
  • Solution: Add chrM to CHROMOSOME_SIZES dict; or exclude mitochondrial from plot

4. Multiple Track Layering

Overlay multiple data tracks in concentric circles for complex visualizations.

from scripts.main import CircosConfig

# Multi-track configuration
config = {
    "type": "custom",
    "title": "Multi-Track Genome View",
    "width": 1200,
    "height": 1200,
    "tracks": [
        {
            "type": "histogram",
            "file": "data/cnv_track.txt",
            "color": "color0"  # Red
        },
        {
            "type": "histogram", 
            "file": "data/snp_track.txt",
            "color": "color1"  # Blue
        },
        {
            "type": "link",
            "file": "data/sv_links.txt",
            "color": "color2"  # Green
        }
    ],
    "output": "./multi_track"
}

generator = CircosConfig(config)
config_path = generator.generate()

Track Positioning:

TrackRadius RangeTypical Use
Outer 10.95r - 0.80rPrimary data (CNVs)
Outer 20.80r - 0.65rSecondary data (SNPs)
Middle0.65r - 0.50rLinks/connections
Inner0.50r - 0.35rAnnotations/labels

Track Types:

TypeData FormatBest For
Histogramchr start end valueContinuous values (CNVs, expression)
Scatterchr start end value x yPoint data with categories
Heatmapchr start end value0 value1...Multi-sample comparisons
Linkchr1 start1 end1 chr2 start2 end2Connections (SVs, interactions)
Textchr start end labelGene names, annotations

Best Practices:

  • Limit to 3-4 tracks for readability
  • Use complementary colors for different data types
  • Add track labels in figure legend
  • Consider track order - most important data outermost

Common Issues and Solutions:

Issue: Tracks overlapping

  • Symptom: Data from different tracks hard to distinguish
  • Solution: Adjust radius ranges; use different track types; add transparency

Issue: Scale differences between tracks

  • Symptom: One track dominates visualization
  • Solution: Normalize each track to 0-1 range; use separate color scales

5. Color Scheme Customization

Select from predefined color schemes or define custom colors for publication consistency.

from scripts.main import CircosConfig, COLOR_SCHEMES

# View available color schemes
print("Available color schemes:")
for name, colors in COLOR_SCHEMES.items():
    print(f"\n{name.upper()}:")
    print(f"  Colors: {', '.join(colors[:4])}...")

# Example outputs for each scheme
scheme_examples = {
    "default": ["red", "blue", "green", "orange"],
    "nature": ["#E64B35", "#4DBBD5", "#00A087", "#3C5488"],
    "lancet": ["#00468B", "#ED0000", "#42B540", "#0099B4"],
    "cell": ["#1B9E77", "#D95F02", "#7570B3", "#E7298A"]
}

# Usage
config = {
    "type": "variation",
    "color_scheme": "nature",  # Publication-quality colors
    # ... other config
}

Color Schemes:

SchemeStyleBest For
defaultBasic colorsQuick visualization, drafts
natureNature journal colorsNature publications
lancetLancet journal colorsMedical/clinical papers
cellCell journal colorsCell biology papers

Custom Colors:

# Define custom scheme
my_colors = ["#FF6B6B", "#4ECDC4", "#45B7D1", "#96CEB4", "#FFEAA7"]
COLOR_SCHEMES["custom"] = my_colors

config["color_scheme"] = "custom"

Best Practices:

  • Use colorblind-friendly palettes for accessibility
  • Match journal requirements for submissions
  • Maintain consistency across all figures in paper
  • Test printed output - colors may differ from screen

Common Issues and Solutions:

Issue: Colors not distinct enough

  • Symptom: Hard to distinguish adjacent tracks
  • Solution: Increase color contrast; use complementary colors

Issue: Colors don't match brand/institution

  • Symptom: Need specific institutional colors
  • Solution: Define custom color scheme with hex codes

6. Configuration Export and Rendering

Generate complete Circos configuration and optionally render the plot.

import subprocess
from pathlib import Path
from scripts.main import CircosConfig

def generate_and_render(config: dict, render: bool = False) -> dict:
    """
    Generate Circos config and optionally render plot.
    
    Returns:
        dict with paths and status
    """
    # Generate configuration
    generator = CircosConfig(config)
    config_path = generator.generate()
    
    result = {
        "config_path": config_path,
        "data_dir": str(generator.data_dir),
        "rendered": False,
        "output_image": None
    }
    
    # Attempt to render
    if render:
        output_dir = Path(config["output"])
        try:
            proc_result = subprocess.run(
                ["circos", "-conf", config_path],
                capture_output=True,
                text=True,
                cwd=output_dir
            )
            
            if proc_result.returncode == 0:
                result["rendered"] = True
                result["output_image"] = str(output_dir / "circos.png")
                print("✅ Plot rendered successfully!")
            else:
                print(f"❌ Rendering failed: {proc_result.stderr}")
        except FileNotFoundError:
            print("⚠️  Circos not installed. Configuration ready for manual rendering.")
            print(f"   Run: cd {output_dir} && circos -conf circos.conf")
    
    return result

# Example usage
config = {
    "type": "variation",
    "title": "Genomic Landscape",
    "data": "variants.csv",
    "output": "./output"
}

result = generate_and_render(config, render=True)

Output Files:

FileDescriptionFormat
circos.confMain configurationText
data/karyotype.txtChromosome definitionsText
data/*.txtTrack data filesTSV
circos.pngRaster image (if rendered)PNG
circos.svgVector image (if rendered)SVG

Rendering Requirements:

ComponentInstallationCommand
Circosconda install -c bioconda circoscircos -conf circos.conf
PerlUsually pre-installedRequired by Circos
GD librarySystem packageImage generation

Best Practices:

  • Generate SVG for publication - scalable, editable
  • Use PNG for drafts - faster rendering
  • Check file sizes - high-res images can be large
  • Archive configurations - for reproducibility

Common Issues and Solutions:

Issue: Circos installation fails

  • Symptom: "circos: command not found"
  • Solution: Use conda installation; check Perl and GD dependencies

Issue: Rendering produces warnings

  • Symptom: Many "skip" or "warning" messages
  • Solution: Usually harmless; check output image quality; adjust data ranges

Complete Workflow Example

From variant calls to publication figure:

# Step 1: Create sample data for testing
python scripts/main.py --create-sample variation --output ./data

# Step 2: Generate configuration
python scripts/main.py \
  --data ./data/sample_variations.csv \
  --type variation \
  --title "Tumor Genomic Landscape" \
  --color-scheme nature \
  --width 1200 \
  --height 1200 \
  --output ./plots

# Step 3: Render plot (requires Circos)
python scripts/main.py \
  --data ./data/sample_variations.csv \
  --type variation \
  --output ./plots \
  --render

Python API Usage:

from scripts.main import CircosConfig
import pandas as pd

def create_genomic_landscape_plot(
    variation_data: pd.DataFrame,
    output_dir: str = "./circos_output",
    title: str = "Genomic Variations"
) -> str:
    """
    Create comprehensive genomic landscape Circos plot.
    
    Args:
        variation_data: DataFrame with columns [chrom, start, end, type, value]
        output_dir: Output directory for files
        title: Plot title
        
    Returns:
        Path to generated configuration file
    """
    # Save data to CSV
    data_path = f"{output_dir}/input_data.csv"
    variation_data.to_csv(data_path, index=False)
    
    # Generate configuration
    config = {
        "type": "variation",
        "title": title,
        "data": data_path,
        "width": 1200,
        "height": 1200,
        "color_scheme": "nature",
        "output": output_dir
    }
    
    generator = CircosConfig(config)
    config_path = generator.generate()
    
    # Print summary
    print(f"✅ Circos configuration generated")
    print(f"   Config: {config_path}")
    print(f"   Data directory: {generator.data_dir}")
    print(f"\nTo render:")
    print(f"   circos -conf {config_path}")
    
    return config_path

# Example with sample data
sample_data = pd.DataFrame({
    'chrom': ['chr1', 'chr1', 'chr2', 'chr5', 'chrX'],
    'start': [1000000, 5000000, 1000000, 5000000, 5000000],
    'end': [2000000, 6000000, 1500000, 7000000, 8000000],
    'type': ['SNP', 'CNV', 'SNP', 'TRANSLOCATION', 'DELETION'],
    'value': [0.5, -0.8, 0.3, None, -1.0],
    'target_chrom': [None, None, None, 'chr2', None],
    'target_start': [None, None, None, 8000000, None],
    'target_end': [None, None, None, 10000000, None]
})

config_file = create_genomic_landscape_plot(
    sample_data,
    output_dir="./my_plot",
    title="Sample Genomic Landscape"
)

Expected Output Files:

circos_output/
├── circos.conf              # Main configuration
├── data/
│   ├── karyotype.txt        # Chromosome definitions
│   ├── variations.txt       # Histogram data
│   └── links.txt            # Structural variant links
└── (after rendering)
    ├── circos.png           # Raster output
    └── circos.svg           # Vector output

Common Patterns

Pattern 1: Cancer Genomic Landscape

Scenario: Visualize genomic alterations in a tumor sample for publication.

{
  "plot_type": "variation",
  "title": "Tumor Genomic Landscape",
  "data_layers": [
    "CNV (outer track)",
    "SNV density (middle track)",
    "Structural variants (links)"
  ],
  "color_scheme": "nature",
  "resolution": "1200x1200",
  "publication": "Nature Medicine"
}

Workflow:

  1. Collect CNV data from WGS or SNP array
  2. Get SNV calls from exome/WGS
  3. Identify structural variants (SVs)
  4. Generate Circos configuration
  5. Render and export high-resolution PNG/SVG
  6. Create figure legend and methods description

Output Example:

Cancer Genomic Landscape Plot:
  - CNV track: 47 copy number alterations
  - SNV track: 2,847 mutations (density)
  - SV links: 12 translocations, 8 inversions
  
Key findings visible:
  - Chr8 MYC amplification
  - Chr17 TP53 deletion
  - Chr7-14 translocation
  
Publication ready: 1200x1200 PNG + SVG

Pattern 2: Tumor Microenvironment

Scenario: Visualize cell-cell communication in tumor microenvironment.

{
  "plot_type": "cell-comm",
  "title": "TME Communication Network",
  "cell_types": [
    "T_Cell", "B_Cell", "Macrophage",
    "NK_Cell", "Tumor_Cell", "Fibroblast"
  ],
  "data_source": "CellChat analysis",
  "filter": "weight > 0.3",
  "color_scheme": "cell"
}

Workflow:

  1. Run CellChat or similar on scRNA-seq data
  2. Export communication probabilities
  3. Filter for significant interactions
  4. Generate Circos configuration
  5. Adjust colors for each cell type
  6. Add annotations for key pathways

Output Example:

TME Communication Network:
  Cell types: 6
  Interactions: 24 (filtered from 156)
  
Major communication axes:
  - T_Cell → Macrophage (strongest)
  - Dendritic → T_Cell
  - Tumor → Macrophage
  
Insights:
  - Immunosuppressive signaling dominant
  - Limited NK cell activation

Pattern 3: Comparative Genomics

Scenario: Compare synteny between two species or strains.

{
  "plot_type": "custom",
  "title": "Human-Mouse Synteny",
  "tracks": [
    {
      "type": "link",
      "data": "synteny_blocks.txt",
      "description": "Conserved regions"
    }
  ],
  "genomes": ["hg38", "mm10"],
  "color_by": "chromosome"
}

Workflow:

  1. Identify syntenic blocks between genomes
  2. Map coordinates to common reference
  3. Create link track for conserved regions
  4. Generate dual-genome Circos plot
  5. Color-code by chromosome of origin
  6. Highlight breakpoints and rearrangements

Output Example:

Synteny Comparison:
  Human chromosomes: 22 + X + Y
  Mouse chromosomes: 19 + X + Y
  Syntenic blocks: 342
  
Key observations:
  - Chr12 conservation strong
  - Multiple breakpoints on Chr1
  - X chromosome largely conserved

Pattern 4: Time-Series Evolution

Scenario: Track clonal evolution through treatment timepoints.

{
  "plot_type": "custom",
  "title": "Clonal Evolution Over Time",
  "timepoints": ["Baseline", "Post-Treatment", "Relapse"],
  "tracks": [
    "Baseline CNV",
    "Post-Treatment CNV",
    "Relapse CNV",
    "Clonal links"
  ],
  "color_scheme": "lancet"
}

Workflow:

  1. Collect CNV data from multiple timepoints
  2. Track clone frequencies
  3. Create separate track for each timepoint
  4. Add links showing clone relationships
  5. Generate evolution Circos plot
  6. Annotate treatment events

Output Example:

Clonal Evolution Plot:
  Timepoints: 3
  Clones tracked: 5
  
Evolutionary trajectory:
  - Baseline: 3 subclones
  - Post-treatment: 1 dominant clone
  - Relapse: New clone emergence
  
Therapeutic implications:
  - Pre-existing resistance clone expanded
  - New mutation acquired at relapse

Quality Checklist

Data Preparation:

  • CRITICAL: Verify chromosome naming consistency (chr1 vs 1)
  • Check coordinate system (0-based vs 1-based)
  • Validate all positions within chromosome bounds
  • Normalize values to appropriate ranges
  • Filter out low-quality or ambiguous data
  • Ensure no duplicate entries
  • Check for missing values and handle appropriately
  • Verify file formats (CSV with proper headers)

Configuration:

  • CRITICAL: Set appropriate image size for publication (min 1200x1200)
  • Choose color scheme matching journal requirements
  • Set track radii to avoid overlap
  • Configure chromosome spacing for readability
  • Add descriptive title
  • Set up proper scaling for each track
  • Choose appropriate color for each data type
  • Test with subset of data first

Rendering:

  • CRITICAL: Generate SVG for publication-quality output
  • Check PNG output for visual quality
  • Verify all tracks visible and correctly positioned
  • Test color visibility (colorblind-friendly check)
  • Confirm labels readable at target size
  • Check for rendering warnings or errors
  • Verify file sizes reasonable
  • Archive configuration files

Publication:

  • CRITICAL: Include scale bars and legends
  • Add chromosome labels clearly
  • Include figure caption with data description
  • Note software version in methods
  • Provide data availability statement
  • Check journal figure requirements (size, format)
  • Create supplementary data files if needed
  • Test figure at print resolution

Common Pitfalls

Data Issues:

  • Inconsistent chromosome names → Data missing from plot

    • ✅ Use consistent "chr" prefix (chr1, chr2, not 1, 2)
  • Coordinates out of bounds → Rendering errors

    • ✅ Verify all coordinates ≤ chromosome size
  • Too many data points → Cluttered, slow rendering

    • ✅ Filter for significance; increase bin size
  • Missing values not handled → Gaps or errors

    • ✅ Impute or filter missing values before plotting

Configuration Issues:

  • Tracks overlap → Data unreadable

    • ✅ Adjust radius ranges; use transparency
  • Colors too similar → Can't distinguish tracks

    • ✅ Use distinct, contrasting colors
  • Font too small → Labels unreadable

    • ✅ Increase font sizes for publication
  • Image too small → Poor resolution

    • ✅ Use minimum 1200x1200 for publications

Interpretation Issues:

  • No scale reference → Values unclear

    • ✅ Add color scale and value ranges
  • Missing legend → Data types unexplained

    • ✅ Include comprehensive figure legend
  • No chromosome labels → Location unclear

    • ✅ Label all chromosomes clearly
  • Too much information → Figure overwhelming

    • ✅ Limit to 3-4 key data types per plot

Troubleshooting

Problem: Configuration generates but Circos won't render

  • Symptoms: "Can't open file" or "Invalid configuration" errors
  • Causes:
    • Missing data files
    • Incorrect file paths
    • Syntax errors in configuration
    • Missing Circos installation
  • Solutions:
    • Verify all data files exist in data/ directory
    • Check file paths are absolute or correct relative paths
    • Validate configuration syntax
    • Install Circos: conda install -c bioconda circos

Problem: Plot is blank or missing data

  • Symptoms: Chromosomes shown but no data tracks
  • Causes:
    • Data format incorrect
    • Chromosome name mismatch
    • Values out of visible range
  • Solutions:
    • Check data format matches expected (TSV, correct columns)
    • Verify chromosome names (chr1 vs 1)
    • Check min/max values in data files

Problem: Colors not as expected

  • Symptoms: Wrong colors or all same color
  • Causes:
    • Color scheme name misspelled
    • Custom colors not defined
    • Color values out of range
  • Solutions:
    • Check color_scheme name matches available schemes
    • Define custom colors if needed
    • Verify color values are valid hex codes

Problem: Links/connections not showing

  • Symptoms: Histograms visible but no SV links
  • Causes:
    • Link data format incorrect
    • Target coordinates missing
    • Link radius outside visible area
  • Solutions:
    • Check link file format: chr1 start1 end1 chr2 start2 end2
    • Verify target coordinates provided for translocations
    • Adjust link radius parameter

Problem: Text labels overlapping

  • Symptoms: Gene names or labels unreadable
  • Causes:
    • Too many labels in small space
    • Font size too large
    • Insufficient label radius
  • Solutions:
    • Filter labels to show only most important
    • Reduce font size
    • Increase label radius (move further from center)
    • Use label collision detection if available

Problem: Rendering is very slow

  • Symptoms: Takes minutes or hours to generate plot
  • Causes:
    • Too many data points
    • High resolution settings
    • Complex link calculations
  • Solutions:
    • Reduce data points (filter or bin)
    • Lower image resolution for drafts
    • Simplify link visualization
    • Use PNG instead of SVG for faster rendering

References

Available in references/ directory:

  • (No reference files currently available for this skill)

External Resources:


Scripts

Located in scripts/ directory:

  • main.py - Circos configuration generator with support for variations and cell communication

Color Scheme Reference

Default: red, blue, green, orange, purple, cyan

Nature: #E64B35, #4DBBD5, #00A087, #3C5488, #F39B7F, #8491B4

Lancet: #00468B, #ED0000, #42B540, #0099B4, #925E9F, #FDAF91

Cell: #1B9E77, #D95F02, #7570B3, #E7298A, #66A61E, #E6AB02

Parameters

ParameterTypeDefaultRequiredDescription
--datastring-YesInput data file (TSV/CSV format)
--output, -ostringcircos.svgNoOutput SVG file path
--typestringvariationNoPlot type (variation, cell-communication)
--colorsstringdefaultNoColor scheme (default, nature, lancet, cell)
--radiusfloat400NoPlot radius in pixels
--help, -hflag-NoShow help message

Usage

Basic Usage

# Generate genomic variation Circos plot
python scripts/main.py --data variations.tsv --output genome.svg

# Cell communication plot with custom colors
python scripts/main.py --data cell_comm.tsv --type cell-communication --colors nature

# Custom radius
python scripts/main.py --data data.tsv --radius 500 --output large.svg

Input Data Format

Variation data (TSV format):

chromosome	position	value
chr1	1000000	0.5
chr1	2000000	-0.3
chr2	500000	0.8

Cell communication data (TSV format):

cell_type1	cell_type2	interaction_strength
T_cell	B_cell	0.75
Macrophage	T_cell	0.60

Risk Assessment

Risk IndicatorAssessmentLevel
Code ExecutionPython script executed locallyLow
Network AccessNo external API callsLow
File System AccessRead input data, write output SVGLow
Data ExposureProcesses genomic dataLow
Resource UsageGenerates SVG files (can be large)Low

Security Checklist

  • No hardcoded credentials or API keys
  • No unauthorized file system access
  • Input validation for file paths
  • Output directory restricted
  • Error messages sanitized
  • Script execution in sandboxed environment
  • No network connections

Prerequisites

# Python 3.7+
# No external packages required (uses standard library)
# Output: SVG format (viewable in web browsers)

Evaluation Criteria

Success Metrics

  • Successfully generates Circos configuration
  • Creates valid SVG output files
  • Supports multiple color schemes
  • Handles both variation and cell communication data

Test Cases

  1. Variation Plot: Genomic data → Circular genome visualization
  2. Cell Communication: Interaction matrix → Cell-type network diagram
  3. Custom Colors: Data + color scheme → Styled visualization

Lifecycle Status

  • Current Stage: Active
  • Next Review Date: 2026-03-09
  • Known Issues: None
  • Planned Improvements:
    • Add more plot types (methylation, expression)
    • Support for interactive HTML output
    • Integration with common genomic formats (VCF, BED)

Last Updated: 2026-02-09
Skill ID: 186
Version: 2.0 (K-Dense Standard)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

claw2ui

Generate interactive web pages (dashboards, charts, tables, reports) and serve them via public URL. Use this skill when the user explicitly asks for data vis...

Registry SourceRecently Updated
General

WeChat Article Summarize

Read one or more WeChat public account article links from mp.weixin.qq.com, extract cleaned full text and optional image links, summarize each article in Chi...

Registry SourceRecently Updated
General

Openfinance

Connect bank accounts to AI models using openfinance.sh

Registry SourceRecently Updated
General

---

合同审查清单AI助手 - 5类合同+3大特殊条款,风险识别与修改建议

Registry SourceRecently Updated