Annotate CLIP-seq peaks to RNA features (5' UTR, CDS, 3' UTR, intron, splice site, ncRNA, repeat element). Interpretation is RBP-class-specific: splicing factors at splice junctions, HuR/PUM2 in 3' UTRs, EIF3 in 5' UTRs, FASTKD2 on chrM, repeat-binding RBPs (MATR3, HNRNPK) on Alu/LINE/LTR. ChIPseeker is the fast tool; RBP-Maps (Yeo lab) is mandatory for splicing factors; RepeatMasker overlap is a separate axis. Default ChIPseeker tssRegion=c(-3000,3000) over-extends for CLIP - tighten to c(-100,100).
BiocManager::install(c('ChIPseeker','RCAS','GenomicFeatures',
'TxDb.Hsapiens.UCSC.hg38.knownGene'))
conda install -c bioconda bedtools deeptools rseqc
# RBP-Maps (Yeo)
git clone https://github.com/YeoLab/rbp-maps
Tell your AI agent what you want to do: - "Annotate peaks to 5' UTR / CDS / 3' UTR / intron with ChIPseeker, transcript-level, tight TSS region" - "Build the RBP-Maps splicing regulatory map for my PTBP1 eCLIP" - "Add a repeat-element axis to my annotation (Alu / LINE / LTR / SINE)" - "Metagene of CLIP signal across 3' UTRs with deepTools computeMatrix" - "Why do 50% of my peaks fall in 'Promoter (2-3kb)'? Tighten TSS region" - "Sum of region counts > total peaks - enforce hierarchy" - "FASTKD2 should bind chrM - my TxDb excludes it"
"ChIPseeker annotation with tssRegion=c(-100,100), level=transcript, then plotAnnoPie and plotDistToTSS"
"What fraction of my HuR peaks are in 3' UTRs versus introns? Expected > 50% 3' UTR"
"Run RBP-Maps for PTBP1 - generate the 1400 nt cassette-exon regulatory metagene"
"Need cassette exon BED from ENCODE shRNA-KD RNA-seq before RBP-Maps will produce signal"
"MATR3 binds LINE-1; intersect peaks with RepeatMasker BED and report repeat-class fraction"
"My peaks are 30% Alu - is this real or alignment artifact? Compare to ENCODE Alu binders"
"deepTools metagene of CLIP signal scaled across 3' UTRs - look for stop-codon-proximal peak"
"RSeQC geneBody_coverage.py to check for 5' vs 3' positional bias"
"Many peaks labeled 'Distal Intergenic' - is my TxDb missing transcripts?"
"RBP-Maps metagene is flat - I don't have the cassette exon table"
tssRegion=c(-100,100), level='transcript', customized priority hierarchy-s for strand)tssRegion is for ChIP, not CLIP. Tighten to c(-100,100) or c(-50,50).level='transcript' not level='gene'. Isoform context matters for splicing factors.bedtools intersect -s always. CLIP is strand-specific.