BioSkills bio-epitranscriptomics-m6a-peak-calling
Call m6A peaks from MeRIP-seq IP vs input comparisons. Use when identifying m6A modification sites from methylated RNA immunoprecipitation data.
git clone https://github.com/GPTomics/bioSkills
T=$(mktemp -d) && git clone --depth=1 https://github.com/GPTomics/bioSkills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/epitranscriptomics/m6a-peak-calling" ~/.claude/skills/gptomics-bioskills-bio-epitranscriptomics-m6a-peak-calling && rm -rf "$T"
epitranscriptomics/m6a-peak-calling/SKILL.mdVersion Compatibility
Reference examples tested with: MACS3 3.0+
Before using code patterns, verify installed versions match. If versions differ:
- R:
thenpackageVersion('<pkg>')
to verify parameters?function_name - CLI:
then<tool> --version
to confirm flags<tool> --help
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
m6A Peak Calling
"Call m6A peaks from my MeRIP-seq data" → Identify m6A-modified RNA regions by comparing immunoprecipitated (IP) and input samples using statistical enrichment testing.
- R:
for GC-bias aware peak callingexomePeak2::exomePeak2() - CLI:
as an alternative broad peak callermacs3 callpeak
exomePeak2 (Recommended)
Goal: Identify m6A-enriched regions by comparing IP and input samples with GC-bias correction and replicate-aware statistical testing.
Approach: Provide IP and input BAM files along with a gene annotation to exomePeak2, which models read counts in sliding windows across the transcriptome and calls significant enrichment peaks.
library(exomePeak2) # Peak calling with biological replicates result <- exomePeak2( bam_ip = c('IP_rep1.bam', 'IP_rep2.bam'), bam_input = c('Input_rep1.bam', 'Input_rep2.bam'), gff = 'genes.gtf', genome = 'hg38', paired_end = TRUE ) # Export peaks exportResults(result, format = 'BED')
MACS3 Alternative
# Call peaks treating input as control macs3 callpeak \ -t IP_rep1.bam IP_rep2.bam \ -c Input_rep1.bam Input_rep2.bam \ -f BAMPE \ -g hs \ -n m6a_peaks \ --nomodel \ --extsize 150 \ -q 0.05
MeTPeak
library(MeTPeak) # GTF-aware peak calling metpeak( IP_BAM = c('IP_rep1.bam', 'IP_rep2.bam'), INPUT_BAM = c('Input_rep1.bam', 'Input_rep2.bam'), GENE_ANNO_GTF = 'genes.gtf', OUTPUT_DIR = 'metpeak_output' )
Peak Filtering
# Filter by fold enrichment and q-value # FC > 2, q < 0.05 typical thresholds awk '$7 > 2 && $9 < 0.05' peaks.xls > filtered_peaks.bed
Related Skills
- merip-preprocessing - Prepare data for peak calling
- m6a-differential - Compare peaks between conditions
- chip-seq/peak-calling - Similar concepts