clip-seq/stamp-antibody-free/SKILL.md
Profiles RNA-binding protein targets without antibody or UV crosslinking using STAMP (APOBEC1-RBP fusion, C-to-U editing), scSTAMP (single-cell), TRIBE/HyperTRIBE (ADAR-RBP, A-to-I editing), DART-seq (APOBEC1-YTH for m6A), or Bullseye/SAILOR edit-site detection pipelines. Use when antibody is unavailable or specificity is doubtful, when single-cell RBP profiling is needed (scSTAMP), or when in vivo RBP profiling without UV is preferred.
npx skillsauth add GPTomics/bioSkills bio-clip-seq-stamp-antibody-freeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reference examples tested with: STAMP / scSTAMP (Brannan 2021/2024 Yeo lab github), Bullseye 1.0+, SAILOR 1.1+, samtools 1.19+, REDItools2 1.3+, JACUSA2 2.0+, scanpy 1.10+, anndata 0.10+, pysam 0.22+.
Before using code patterns, verify installed versions match. If versions differ:
pip show <package> then help(module.function) to check signatures<tool> --version then <tool> --help to confirm flagsIf code throws unexpected errors, introspect the installed package and adapt the example to match the actual CLI rather than retrying.
"Profile RBP-RNA targets without UV crosslinking or immunoprecipitation" -> Express a fusion of the RBP-of-interest with a deaminase (APOBEC1 for STAMP, ADAR for TRIBE) in cells; the deaminase edits RNA nucleotides adjacent to where the RBP binds, producing a C-to-U (STAMP) or A-to-I (TRIBE, read as A-to-G) editing signature in standard RNA-seq. The targets are recovered computationally from the editing pattern. Three properties make this approach valuable: (a) no UV crosslinking required (works in tissue/in vivo); (b) no IP step (no antibody needed - the RBP itself targets the deaminase); (c) compatible with single-cell readout because the editing signal exists in standard scRNA-seq (scSTAMP, scTRIBE). Trade-off: editing is offset from the binding site (typically 0-50 nt away); resolution is approximate; off-target editing from deaminase alone must be subtracted.
JACUSA2 call-2 -r ref.fa -p 8 -F 1024 -A,B treated.bam,control.bam -t pileup.tsv then filter for C-to-U or A-to-ISTAMP (Brannan 2021) is the canonical antibody-free RBP profiling method. TRIBE (McMahon 2016) and HyperTRIBE (Xu 2018) are earlier ADAR-based variants. DART-seq (Meyer 2019) is the m6A-specific application using YTH-fused APOBEC1. scSTAMP (Brannan 2024) extends STAMP to single-cell readout.
| Method | Deaminase | Edit signature | Cells supported | Single-cell | Strength | Fails when | |--------|-----------|----------------|-----------------|-------------|----------|------------| | STAMP (Brannan 2021) | APOBEC1 | C->U in mRNA (reads as C->T) | Any | Yes (scSTAMP) | Antibody-free; no UV; in vivo | APOBEC1 also edits ssDNA off-target; saturated edits at high APOBEC1 expression | | scSTAMP (Brannan 2024) | APOBEC1 | C->U per cell | Single cell (10x or Smart-seq2) | Yes (native) | Per-cell RBP profiling | Coverage per cell limits sensitivity; ~25% of cytosines accessible per transcript | | TRIBE (McMahon 2016) | ADAR catalytic domain | A->I (reads as A->G in cDNA) | Drosophila standard; mammalian works | Yes (scTRIBE) | First antibody-free | Edits restricted to certain ADAR consensus; lower edit rate than HyperTRIBE | | HyperTRIBE (Xu 2018) | ADAR E488Q hyperactive mutant | A->I in much wider context | Drosophila / mammalian | Yes | Higher edit rate than original TRIBE | Hyperactive may edit off-target; needs ADAR-only control | | TRIBE-DiCo (Erickson 2024) | ADAR catalytic + dimerization | A->I | Mammalian | Yes | Improved specificity | Newer; less validation | | DART-seq (Meyer 2019) | APOBEC1-YTH | C->U near m6A | Any | Yes (scDART) | m6A reader profiling | Indirect (edits near m6A, not at RBP binding sites) | | Bullseye | NA (analysis tool) | NA | Any | Yes | STAMP / DART analysis | Just an analysis pipeline | | SAILOR | NA (analysis tool) | NA | Any | Yes | RNA editing analysis | Just an analysis pipeline | | REDItools2 | NA (analysis tool) | NA | Any | NA | Generic RNA editing | Generic; not RBP-specific | | JACUSA2 (Piechotta 2022 BMC Bioinformatics 23:139) | NA (analysis tool) | NA | Any | NA | Multi-sample edit-site detection | Generic; not RBP-specific | | ADAR-CLIP | NA - this is regular ADAR CLIP | NA | NA | NA | CLIP for ADAR | Not an antibody-free method; just a different CLIP target |
Methodology evolves; the Brannan lab and Yeo lab papers (2021, 2024) are canonical. Verify deaminase fusion expression level (low expression for specificity; saturation degrades specificity).
For m6A profiling specifically, antibody-free choices include:
If the use case is m6A profiling, the m6a-clip skill is the canonical reference; this skill (stamp-antibody-free) focuses on the broader RBP-editing-fusion paradigm where the target is not m6A but the RBP's RNA targets.
| Property | STAMP | TRIBE | |----------|-------|-------| | Deaminase | APOBEC1 (cytidine -> uridine) | ADAR (adenosine -> inosine) | | Edit signature | C->U (reads as C->T) | A->I (reads as A->G) | | ssRNA preference | Yes (APOBEC1 acts on ssRNA + ssDNA) | No (ADAR acts on dsRNA stems by default; ADAR2cd in TRIBE relaxes this) | | Edit clusters per target | 10-1000 | ~5-50 (lower; HyperTRIBE higher) | | Off-target | APOBEC1 alone has detectable C->U on ssDNA + RNA | ADAR has weak intrinsic A->I | | Spatial offset from RBP binding | 0-50 nt | 0-30 nt | | Cell line tested | HEK293, K562, mouse tissue | Drosophila (original), mouse, human | | Single-cell | scSTAMP 2024 | scTRIBE 2020 | | Compatible methods | C->U is rare in mRNA; signal is clean | A->I is common at ALU repeats; baseline ADAR editing competes | | Cytosine accessibility | ~25-35% of mRNA bases are C; APOBEC1 needs ssRNA | All A residues are potential ADAR targets |
Both work; STAMP has more clusters per target (advantage for low-coverage scenarios) and cleaner background (C->U is rare in mRNA). TRIBE has more flexibility (ADAR variants tunable) and lower off-target. Practical choice often comes down to lab familiarity.
The defining advantage of antibody-free RBP profiling is compatibility with single-cell readout. scSTAMP processes 10x Genomics or Smart-seq2 libraries.
# Standard 10x cellranger pipeline produces BAM with per-cell barcodes
cellranger count \
--id=scstamp_sample \
--transcriptome=refdata-gex-GRCh38 \
--fastqs=fastq_dir \
--localcores=16 --localmem=64
# scSTAMP analysis (Yeo lab github)
# Quantify per-cell C->U editing
python scstamp_analysis.py \
--bam scstamp_sample/outs/possorted_genome_bam.bam \
--barcodes scstamp_sample/outs/filtered_feature_bc_matrix/barcodes.tsv.gz \
--control apobec1_only_sample/outs/possorted_genome_bam.bam \
--output per_cell_edits.h5
Per-cell edit-rate matrix can be integrated with standard scRNA-seq clustering. The per-cell binding profile is reconstructed from cells with sufficient coverage (>= 10000 unique reads typically).
Goal: Recover specific (not background) RBP-fusion-induced editing sites from RNA-seq libraries by subtracting the deaminase-only control.
Approach: Process fusion-sample BAM and deaminase-only-control BAM in parallel; use Bullseye (STAMP/DART), SAILOR (Yeo), or JACUSA2 (general) to call C-to-U (STAMP/DART) or A-to-I (TRIBE/HyperTRIBE) edit sites at edit rate >= 0.1 and coverage >= 10, requiring fusion-vs-control edit ratio > 3 as the specificity threshold.
Bullseye (Meyer lab DART-seq pipeline) is a multi-script Perl pipeline (parseBAM.pl, summarize_sites.pl, find_edit_site.pl) rather than a single binary -- the conceptual flow is shown below; consult the Bullseye repo for the exact per-script invocations.
# Bullseye -- conceptual STAMP workflow (multi-step Perl scripts; verify against repo)
perl parseBAM.pl --input stamp_sample.bam --output stamp.parsed.tsv
perl parseBAM.pl --input apobec1_only.bam --output control.parsed.tsv
perl summarize_sites.pl --in stamp.parsed.tsv > stamp.summary.tsv
perl summarize_sites.pl --in control.parsed.tsv > control.summary.tsv
perl find_edit_site.pl --ip stamp.summary.tsv --ctrl control.summary.tsv \
--edit_type c2t --threshold 0.1 --min_coverage 10 --out stamp_edits.bed
SAILOR (Yeo lab) is a Snakemake-based pipeline, not a single CLI binary -- launch via the SAILOR Snakefile after editing the config (config.yaml) for input BAMs, background BAM, and reference FASTA.
# SAILOR -- conceptual; SAILOR ships as a Snakemake workflow.
# Configure inputs in the SAILOR Snakemake config.yaml, then run:
snakemake -s SAILOR.smk --configfile config.yaml --cores 8
JACUSA2 is a general-purpose RNA editing pipeline, distributed as a Java jar.
# JACUSA2 multi-sample edit-site detection (BAM inputs are POSITIONAL; -r is output, -R is reference)
java -jar JACUSA2.jar call-2 \
-R genome.fa \
-p 8 \
-F 1024 \
-r jacusa_edits.tsv \
stamp1.bam,stamp2.bam control1.bam,control2.bam
# Post-filter for C->U (STAMP) at edit rate >= 0.1
awk '$5 == "C" && $9 ~ /U/ && $11 >= 0.1' jacusa_edits.tsv > stamp_edits_filtered.tsv
Trigger: Strong APOBEC1-RBP expression (>>10x endogenous).
Mechanism: At high APOBEC1 expression, the deaminase saturates editing - every accessible C in mRNA is edited, regardless of RBP binding.
Symptom: Edit count per gene >> expected; non-specific editing across mRNAs; APOBEC1-only control has nearly as many edits as the fusion.
Fix: Titrate fusion expression with inducible promoter; aim for low-to-moderate expression giving clean fusion-specific edits. Yeo lab convention: doxycycline-inducible with mid-range dox dose. Compare edits in fusion vs APOBEC1-only; require fusion edits / APOBEC1-only edits > 3.
Trigger: APOBEC1 expressed in DNA-replicating cells.
Mechanism: APOBEC1 has intrinsic ssDNA editing activity; some "C->U" calls are actually genomic ssDNA edits read through transcription.
Symptom: Edits cluster at replication-fork regions or LINE-1 elements; non-specific genome-wide.
Fix: Bullseye filters genomic SNVs vs RNA edits via strand information; verify mismatch is C->U on the transcribed strand, not the genomic C->T.
Trigger: TRIBE in mammalian cells; many edits at ALU sequences.
Mechanism: ADAR has baseline activity at ALU dsRNA structures; this is NOT TRIBE-specific signal. ALU edits dominate the apparent target list.
Symptom: Top edited regions are all ALU repeats; target list looks generic.
Fix: Subtract ADAR-only control or wild-type ADAR baseline; filter out ALU-overlapping edits unless RBP is known to bind repeats.
Trigger: DART-seq applied with expectation of single-base m6A resolution.
Mechanism: APOBEC1-YTH edits Cs 0-50 nt from the YTH-bound m6A site. The exact m6A position is not the edit position.
Symptom: DART edits scattered around DRACH motifs; only 44% of edits within DRACH (Liu 2023).
Fix: Treat DART edits as "near m6A"; cross-reference with single-base m6A methods (GLORI, miCLIP2). DART is hypothesis-generating, not precise localization.
Trigger: scSTAMP on 10x library; per-cell coverage limits target detection.
Mechanism: Single cells have ~5000-50000 mRNA molecules; editing-rate quantification at any single position needs >= 10 reads. Most positions have 0-3 reads per cell.
Symptom: Per-cell binding-target list is sparse; many cells have 0 detected targets.
Fix: Aggregate cells into pseudo-bulk by cluster/cell-type; quantify editing at pseudobulk level; or use ultra-deep Smart-seq2 (~1M reads/cell) instead of 10x for higher per-cell coverage.
Trigger: STAMP/DART/TRIBE run without deaminase-only control.
Mechanism: Deaminases have intrinsic baseline editing (APOBEC1 ~3-5% C->U; ADAR ~5-10% A->I at ALUs). Without control, all edits look like signal.
Symptom: Edit count enormous; target list non-specific.
Fix: Always run deaminase-only (APOBEC1 or ADAR catalytic domain) control in parallel. Bullseye / SAILOR / JACUSA all support control subtraction.
Trigger: Generic variant caller used instead of edit-aware tool.
Mechanism: Variant callers report any C->T mismatch; without strand information it is not possible to distinguish C->U (STAMP signal on transcribed strand) from G->A (the reverse complement of C->T on the genome strand from anti-sense reads).
Symptom: Edit count inflated 2x; signal not stranded.
Fix: Use editing-specific tool (Bullseye, SAILOR, JACUSA2) that respects strand. Or filter for proper strand: C->U on +sense and G->A on -sense.
| Scenario | Method | Why | |----------|--------|-----| | Antibody for RBP doesn't exist | STAMP or TRIBE | The original use case | | RBP in tissue / in vivo (no UV possible) | STAMP / TRIBE | No CL needed | | Single-cell RBP profiling | scSTAMP or scTRIBE | The only practical option | | m6A reader profiling (YTHDF) | DART-seq (APOBEC1-YTH) | Specific reader fusion | | Drosophila RBP | TRIBE (original development) | Most validated in Drosophila | | Mammalian RBP | STAMP (more validated in mammalian) | Yeo lab benchmarks | | Need precise binding site | Use CLIP / eCLIP not STAMP/TRIBE | Editing is offset from binding | | Repeat-binding RBP | CLIP + CLAM, not TRIBE | ADAR baseline at ALUs swamps TRIBE | | Comparison across methods | STAMP + classic eCLIP both | Triangulation increases confidence | | Low input cell numbers (< 50k) | scSTAMP | Compatible with sparse libraries | | Time-course binding dynamics | STAMP with inducible expression | Live-cell editing accumulates | | Cross-link sensitive RBP | STAMP / TRIBE (no UV) | Some RBPs degrade with UV |
| Pattern | Likely cause | Action | |---------|--------------|--------| | STAMP finds targets eCLIP missed | Targets that crosslink poorly; or low-abundance | Validate orthogonally; STAMP often more sensitive for low-abundance targets | | eCLIP finds targets STAMP missed | RBP-RNA contact too far from accessible C; or APOBEC1 saturated | Check fusion expression level; ssRNA accessibility | | STAMP edits clustered; eCLIP peaks broader | Spatial offset of editing from binding | Both correct; report at appropriate resolution | | STAMP top targets generic mRNAs | Saturated APOBEC1; or no control subtraction | Titrate fusion expression; verify APOBEC1-only control | | TRIBE editing dominated by ALUs | ADAR baseline activity | Subtract ADAR-only; filter ALU repeats | | Discordant target lists across labs for same RBP | Fusion expression varies; control differs | Standardize protocols; cross-validate | | scSTAMP pseudobulk = bulk STAMP | Cell aggregation correct | Trust both for low-coverage targets | | scSTAMP per-cell sparse | Coverage limitation | Pseudobulk by cluster; or use Smart-seq2 |
Operational rule: STAMP/TRIBE for hypothesis-generation, antibody-free profiling, or single-cell. CLIP/eCLIP for high-resolution validation. Best paper figure: STAMP + eCLIP concordance for top targets.
| Error / symptom | Cause | Solution | |-----------------|-------|----------| | Edit count enormous | No control subtraction | Add APOBEC1-only / ADAR-only control | | Edits in DNA / off-target | APOBEC1 ssDNA activity | Filter genomic SNVs; trust strand-specific RNA edits | | Saturated editing on every gene | High fusion expression | Titrate down; use inducible promoter | | TRIBE all edits at ALUs | ADAR baseline | Subtract ADAR-only; filter ALU | | DART edits not at m6A | Spatial offset (0-50 nt) | Expected; cross-reference single-base m6A | | scSTAMP per-cell sparse | 10x coverage limit | Pseudobulk by cluster; Smart-seq2 alternative | | Generic variant caller | No strand awareness | Use Bullseye / SAILOR / JACUSA | | Edits in non-edited strand | Anti-sense transcription | Filter by strand-specific mate | | Same target list as RNA-seq abundance | Saturated APOBEC1 | Reduce fusion expression | | Reproducibility issue across labs | Fusion construct differs | Standardize promoter, tag position, deaminase variant |
testing
Analyze multi-modal single-cell data (CITE-seq, Multiome, spatial). Use when working with data that measures multiple modalities per cell like RNA + protein or RNA + ATAC. Use when analyzing CITE-seq, Multiome, or other multi-modal single-cell data.
data-ai
Analyze metabolite-mediated cell-cell communication using MeboCost for metabolic signaling inference between cell types. Predict metabolite secretion and sensing patterns from scRNA-seq data. Use when studying metabolic crosstalk between cell populations or metabolite-receptor interactions.
development
Find marker genes and annotate cell types in single-cell RNA-seq using Seurat (R) and Scanpy (Python). Use for differential expression between clusters, identifying cluster-specific markers, scoring gene sets, and assigning cell type labels. Use when finding marker genes and annotating clusters.
development
Reconstruct cell lineage trees from CRISPR barcode tracing or mitochondrial mutations. Use when studying clonal dynamics, cell fate decisions, or developmental trajectories.