askill
bio-data-visualization-genome-browser-tracks

bio-data-visualization-genome-browser-tracksSafety 90Repository

Generate genome browser visualizations using pyGenomeTracks or IGV batch scripting for publication figures. Use when creating publication figures of genomic regions with multiple data tracks.

268 stars
5.4k downloads
Updated 2/17/2026

Package Files

Loading files...
SKILL.md

Genome Browser Tracks

pyGenomeTracks INI Configuration

[x-axis]
where = top

[bigwig_coverage]
file = sample.bw
title = Coverage
height = 3
color = #4DBBD5
min_value = 0
max_value = auto

[spacer]
height = 0.5

[peaks]
file = peaks.bed
title = Peaks
color = #E64B35
height = 1
display = collapsed

[genes]
file = genes.gtf
title = Genes
height = 5
fontsize = 10
style = UCSC
color = navy

pyGenomeTracks Command

# Generate track plot
pyGenomeTracks --tracks tracks.ini --region chr1:1000000-2000000 \
    --outFileName region.png --dpi 300

# Multiple regions
for region in chr1:1000000-2000000 chr2:5000000-6000000; do
    pyGenomeTracks --tracks tracks.ini --region $region \
        --outFileName "${region//:/_}.png" --dpi 300
done

pyGenomeTracks Python API

import pygenometracks.tracks as pygtk
from pygenometracks import plotTracks

# Programmatic track configuration
tracks = '''
[x-axis]
where = top

[bigwig]
file = coverage.bw
title = ChIP-seq
height = 4
color = #4DBBD5

[bed]
file = peaks.narrowPeak
title = Peaks
height = 1
color = #E64B35
'''

# Write config and plot
with open('tracks.ini', 'w') as f:
    f.write(tracks)

# Using command line via subprocess
import subprocess
subprocess.run([
    'pyGenomeTracks',
    '--tracks', 'tracks.ini',
    '--region', 'chr1:1000000-2000000',
    '--outFileName', 'output.png',
    '--dpi', '300'
])

Track Types

bigWig Coverage

[bigwig]
file = signal.bw
title = Coverage
height = 4
color = #4DBBD5
min_value = 0
max_value = auto
number_of_bins = 700
nans_to_zeros = true
summary_method = mean
# overlay_previous = share-y  # For overlaying multiple tracks

BED/narrowPeak

[bed]
file = peaks.narrowPeak
title = Peaks
height = 2
color = #E64B35
display = collapsed  # or stacked, interleaved, triangles
labels = false
# file_type = bed  # auto-detected usually

[bed_links]
file = interactions.bedpe
title = Loops
height = 3
file_type = links
links_type = arcs
color = purple
line_width = 1

Gene Annotations

[genes]
file = genes.gtf
title = Genes
height = 6
fontsize = 10
style = UCSC  # or flybase
prefered_name = gene_name
merge_transcripts = false
color = navy
border_color = black
# arrow_interval = 2  # Arrow frequency

[genes_bed12]
file = genes.bed12
title = Transcripts
height = 5
fontsize = 8
color = darkblue

Hi-C Matrix

[hic_matrix]
file = matrix.cool
title = Hi-C
height = 10
depth = 1000000
min_value = 0
max_value = 100
transform = log1p
colormap = RdYlBu_r
show_masked_bins = false

IGV Batch Scripting

# Create batch script
cat > igv_batch.txt << 'EOF'
new
genome hg38
load sample1.bam
load peaks.bed
snapshotDirectory ./snapshots
goto chr1:1000000-2000000
snapshot region1.png
goto chr2:5000000-6000000
snapshot region2.png
exit
EOF

# Run IGV in batch mode
igv -b igv_batch.txt

IGV Batch Commands

# Common IGV batch commands
new                          # New session
genome hg38                  # Load genome
load file.bam               # Load track
snapshotDirectory ./out     # Set output dir
goto chr1:1000000-2000000   # Navigate to region
sort base                   # Sort reads
collapse                    # Collapse tracks
expand                      # Expand tracks
squish                      # Squish display
maxPanelHeight 500          # Set panel height
snapshot file.png           # Take screenshot
exit                        # Exit IGV

Gviz (R)

library(Gviz)
library(GenomicRanges)

# Axis track
axTrack <- GenomeAxisTrack()

# Gene track from TxDb
library(TxDb.Hsapiens.UCSC.hg38.knownGene)
txdb <- TxDb.Hsapiens.UCSC.hg38.knownGene
grTrack <- GeneRegionTrack(txdb, chromosome = 'chr1', name = 'Genes')

# Data track from BigWig
dTrack <- DataTrack(range = 'coverage.bw', type = 'h',
                    chromosome = 'chr1', name = 'Coverage',
                    col = '#4DBBD5')

# Annotation track from BED
aTrack <- AnnotationTrack(range = 'peaks.bed', name = 'Peaks',
                          chromosome = 'chr1', fill = '#E64B35')

# Plot tracks
plotTracks(list(axTrack, dTrack, aTrack, grTrack),
           from = 1000000, to = 2000000,
           chromosome = 'chr1')

# Save to PDF
pdf('tracks.pdf', width = 10, height = 6)
plotTracks(list(axTrack, dTrack, aTrack, grTrack),
           from = 1000000, to = 2000000)
dev.off()

Multi-Sample Comparison

# tracks.ini for multiple samples
[x-axis]

[sample1_bw]
file = sample1.bw
title = Sample 1
height = 3
color = #4DBBD5
min_value = 0
max_value = 100

[sample2_bw]
file = sample2.bw
title = Sample 2
height = 3
color = #E64B35
min_value = 0
max_value = 100
overlay_previous = share-y

[spacer]
height = 0.3

[sample1_peaks]
file = sample1_peaks.bed
title = S1 Peaks
height = 1
color = #4DBBD5

[sample2_peaks]
file = sample2_peaks.bed
title = S2 Peaks
height = 1
color = #E64B35

Publication Export

# High resolution PNG
pyGenomeTracks --tracks tracks.ini --region chr1:1-1000000 \
    --outFileName figure.png --dpi 300 --width 40

# PDF for vector graphics
pyGenomeTracks --tracks tracks.ini --region chr1:1-1000000 \
    --outFileName figure.pdf --width 40

# SVG for editing
pyGenomeTracks --tracks tracks.ini --region chr1:1-1000000 \
    --outFileName figure.svg --width 40

Related Skills

  • alignment-files/bam-statistics - Input BAM processing
  • chip-seq/peak-calling - Peak files for tracks
  • hi-c-analysis/matrix-operations - Hi-C visualization
  • data-visualization/multipanel-figures - Combining track figures

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/12/2026

A comprehensive and highly actionable guide for generating genomic track visualizations using pyGenomeTracks, IGV, and Gviz. It provides detailed configurations and code snippets for multiple platforms and track types.

90
95
90
95
95

Metadata

Licenseunknown
Version-
Updated2/17/2026
PublisherGPTomics

Tags

api