Agent skill

Bio Isoform Switching

by GPTomics in GPTomics/bioSkills

Analyzes differential transcript usage (DTU) and isoform switches with functional consequence prediction (NMD via 50nt rule, ORF disruption, protein domain loss/gain, signal peptide changes, IDR…

MITAuto-check passedResearch & Science

Install Bio Isoform Switching

skills CLI
$ npx skills add GPTomics/bioSkills --skill bio-isoform-switching -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install GPTomics/bioSkills bio-isoform-switching --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/alternative-splicing/isoform-switching .claude/skills/bio-isoform-switching && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bio-isoform-switching
GitHub stars
1.2k
Used in
2 other repos
Token cost
~5.9k tokens
SKILL.md length
2,196 words
Files
3
Skills in repo
559
Repo updated
First seen
Licence
MIT

At a glance

Analyzes differential transcript usage (DTU) and isoform switches with functional consequence prediction (NMD via 50nt rule, ORF disruption, protein domain loss/gain, signal peptide changes, IDR…

  • Works in 3 steps: The null is compositional (proportions… → Multi-stage testing is required:… → Quantification uncertainty propagates…
  • Investigating how splicing differences alter protein function
  • SKILL.md covers Version Compatibility, DGE vs DTE vs DTU: Which…, Tool Selection for DTU and Decision Tree by Research…, plus 15 more sections
  • Runs R scripts from its folder

What it does

Bio Isoform Switching is an agent skill from GPTomics/bioSkills. Analyzes differential transcript usage (DTU) and isoform switches with functional consequence prediction (NMD via 50nt rule, ORF disruption, protein domain loss/gain, signal peptide changes, IDR alterations, coding-potential shifts). Tools include IsoformSwitchAnalyzeR v2 (auto-selects satuRn for 5 reps else DEXSeq), the manual DRIMSeq - DEXSeq/satuRn - stageR DTU pipeline, and fishpond/swish for inferential-uncertainty-aware DTE. Distinguishes DTU from DGE and DTE; integrates external annotators (CPC2, Pfam…

Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `usage-guide.md`).

It sits in Research & Science. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.

When your agent uses it

  • Investigating how splicing differences alter protein function
  • Trigger NMD-mediated degradation

Example prompts

  • “Use the bio-isoform-switching skill to analyz differential transcript usage (DTU) and isoform switches with functional consequence prediction (NMD…”
  • “/bio-isoform-switching”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. The null is compositional (proportions sum to 1; one transcript up means another down).
  2. Multi-stage testing is required: gene-level "any DTU" + transcript-level "which transcript" -> stageR formalizes this.
  3. Quantification uncertainty propagates when transcripts are similar (Salmon EM ambiguity).

What it can do on your machine

Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (R), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bio Isoform Switching loads about 5.9k tokens when it runs. Until then it costs about 170 tokens; SKILL.md has 2,196 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~170
When it runs · the whole SKILL.md, loaded when a task matches
~5.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 2,196 words, ~5,914 tokens.

Download SKILL.mdSave it as .claude/skills/bio-isoform-switching/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
bio-isoform-switching
description
Analyzes differential transcript usage (DTU) and isoform switches with functional consequence prediction (NMD via 50nt rule, ORF disruption, protein domain loss/gain, signal peptide changes, IDR alterations, coding-potential shifts). Tools include IsoformSwitchAnalyzeR v2 (auto-selects satuRn for >5 reps else DEXSeq), the manual DRIMSeq -> DEXSeq/satuRn -> stageR DTU pipeline, and fishpond/swish for inferential-uncertainty-aware DTE. Distinguishes DTU from DGE and DTE; integrates external annotators (CPC2, Pfam, SignalP, IUPred2A or DeepTMHMM). Use when investigating how splicing differences alter protein function or trigger NMD-mediated degradation.
tool_type
r
primary_tool
IsoformSwitchAnalyzeR

Version Compatibility

Reference examples tested with: IsoformSwitchAnalyzeR 2.11+, DRIMSeq 1.34+, DEXSeq 1.52+, satuRn 1.14+, stageR 1.28+, fishpond 2.14+, tximport 1.34+, tximeta 1.24+, Salmon 1.10+

Before using code patterns, verify installed versions match. If versions differ:

  • R: packageVersion('<pkg>') then ?function_name to verify parameters
  • CLI: <tool> --version then <tool> --help to confirm flags

If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.

Isoform Switching and Differential Transcript Usage

Identify shifts in which transcript a gene predominantly uses between conditions, and predict functional consequences. Statistically distinct from DGE and DTE; biologically distinct because the same gene-level expression can hide a complete isoform switch with major protein-level consequences.

DGE vs DTE vs DTU: Which Question Is Being Asked?

QuestionStatisticToolExample claim
DGE Does the gene total change?Sum of transcript countsDESeq2, edgeR, limma-voom"Gene X is upregulated 2-fold"
DTE Does this transcript change in absolute abundance?Per-transcript countswish (fishpond), DESeq2 on transcripts, sleuth"Transcript X-201 is upregulated 2-fold"
DTU Do proportions of transcripts within the gene shift?Vector of per-transcript proportionsDRIMSeq, DEXSeq, satuRn (+ stageR)"Gene X switches from isoform 201 (50% -> 10%) to 202 (50% -> 90%)"

DTU is statistically harder than DGE because:

  1. The null is compositional (proportions sum to 1; one transcript up means another down).
  2. Multi-stage testing is required: gene-level "any DTU" + transcript-level "which transcript" -> stageR formalizes this.
  3. Quantification uncertainty propagates when transcripts are similar (Salmon EM ambiguity).

DTU and event-level differential splicing answer related but distinct questions: rMATS' IncLevelDifference is essentially a 1-D projection of a DTU shift onto a single event coordinate. The pragmatic 2026 default: run both an event-level tool (rMATS or leafcutter) and a DTU pipeline; reconcile.

Tool Selection for DTU

ToolModelWhen to useFails when
IsoformSwitchAnalyzeR v2Wraps DEXSeq or satuRn + functional consequence annotationStandard interpretation workflow with NMD/domain outputManual DTU control needed; very large cohorts (>200)
DRIMSeqDirichlet-multinomial on transcript counts; gene-level DTUPre-filter step before DEXSeq/satuRnCannot annotate functional consequences alone
DEXSeqNegative-binomial GLM on exon-bin or transcript countsClassic DTU; conservative; <=5 replicates per conditionSlow at scale; uses bins not transcripts in default mode
satuRnQuasi-binomial GLM with empirical-Bayes shrinkageDTU at scale (single-cell, large bulk cohorts)Newer; less battle-tested than DEXSeq
swish (fishpond)Non-parametric SAMseq across Salmon Gibbs samplesDTE/DGE incorporating quantification uncertaintyRequires Gibbs samples; not strictly DTU
stageRTwo-stage testing frameworkRequired for proper OFDR control on top of DRIMSeq/DEXSeq/satuRnStandalone — wraps another tool's output
sleuthBootstrap-based DTE on kallistoWhen committed to kallisto pipelineLess active development; superseded by fishpond+swish

The IsoformSwitchAnalyzeR v2 default rule is: satuRn if any condition has >5 replicates; else DEXSeq. For exactly 5 replicates per condition (boundary), explicitly choose; results may differ.

Decision Tree by Research Question

QuestionRecommended approach
Functional consequences of switches (domains, NMD, signal peptide)IsoformSwitchAnalyzeR v2 with full external annotator pipeline
Pure statistical DTU (gene-level + transcript-level OFDR)DRIMSeq (filter) -> DEXSeq -> stageR; or -> satuRn -> stageR for n>5
DTU with proper quantification uncertaintySalmon --numGibbsSamples 20 -> tximeta -> swish for DTE; concurrent DTU
Single-cell DTUsatuRn (DEXSeq doesn't scale to scRNA-seq)
Long-read DTU (PacBio Iso-Seq, ONT)IsoformSwitchAnalyzeR v2 long-read input mode (no Salmon EM uncertainty)
Time-course DTUDEXSeq with time as factor + interaction; or limma::lmFit on logit-prop matrix
Cancer / disease — switch hits -> mechanismStandard pipeline + cross-reference with eCLIP, ClinVar, COSMIC
Therapeutic ASO target identificationStandard pipeline + sashimi visualization + SpliceAI design

IsoformSwitchAnalyzeR v2 Workflow

Goal: Identify isoform switches with functional consequences in one integrated workflow.

Approach: Import Salmon, pre-filter, run statistical test (satuRn auto-selected if any condition has >5 replicates, else DEXSeq), annotate switches with external tools (CPC2, Pfam, SignalP, IUPred2A or DeepTMHMM), then summarize consequences.

r
library(IsoformSwitchAnalyzeR)

salmonQuant <- importIsoformExpression(
    parentDir = 'salmon_quant/',
    addIsofomIdAsColumn = TRUE
)

design <- data.frame(
    sampleID = colnames(salmonQuant$counts)[-1],
    condition = c('control', 'control', 'control', 'treatment', 'treatment', 'treatment')
)

aSwitchList <- importRdata(
    isoformCountMatrix = salmonQuant$counts,
    isoformRepExpression = salmonQuant$abundance,
    designMatrix = design,
    isoformExonAnnoation = 'annotation.gtf',
    isoformNtFasta = 'transcripts.fa',
    showProgress = TRUE
)

aSwitchList <- preFilter(
    aSwitchList,
    geneExpressionCutoff = 1,
    isoformExpressionCutoff = 0,
    IFcutoff = 0.01,
    removeSingleIsoformGenes = TRUE,
    keepIsoformInAllConditions = TRUE
)

aSwitchList <- isoformSwitchTestSatuRn(
    aSwitchList,
    reduceToSwitchingGenes = TRUE,
    alpha = 0.05,
    dIFcutoff = 0.1
)

preFilter parameters:

  • geneExpressionCutoff = 1 — minimum TPM for gene to be tested (raise for stricter)
  • isoformExpressionCutoff = 0 — minimum TPM per isoform (set to 1 for stricter)
  • IFcutoff = 0.01 — minimum isoform fraction; below = noise
  • removeSingleIsoformGenes = TRUE — drop genes with only one detectable isoform (cannot have DTU)
  • keepIsoformInAllConditions = TRUE — require expression across all conditions

For long-read input, use importRdata with long-read transcript counts directly — bypasses Salmon EM uncertainty entirely.

Functional Consequence Annotation

Goal: Predict how each switch alters protein structure, function, and stability.

Approach: Extract sequences, run external annotators outside R, then re-import results into the switchAnalyzeRlist.

r
aSwitchList <- extractSequence(
    aSwitchList,
    pathToOutput = 'sequences/',
    writeToFile = TRUE
)

# Run external tools on sequences/isoformSwitchAnalyzeR_isoform_*.fasta
# Then import:

# IMPORTANT: ORF analysis must run BEFORE analyzeSwitchConsequences for NMD_status,
# ORF_seq_similarity, and coding_potential consequences to be computed.
aSwitchList <- analyzeORF(aSwitchList, orfMethod = 'longest', genomeObject = NULL)

aSwitchList <- analyzeCPC2(aSwitchList, pathToCPC2resultFile = 'cpc2_results.txt', removeNoncodinORFs = TRUE)
aSwitchList <- analyzePFAM(aSwitchList, pathToPFAMresultFile = 'pfam_results.txt')
aSwitchList <- analyzeSignalP(aSwitchList, pathToSignalPresultFile = 'signalp_results.txt')
aSwitchList <- analyzeIUPred2A(aSwitchList, pathToIUPred2AresultFile = 'iupred2_results.txt')
aSwitchList <- analyzeAlternativeSplicing(aSwitchList, onlySwitchingGenes = TRUE)

aSwitchList <- analyzeSwitchConsequences(
    aSwitchList,
    consequencesToAnalyze = c(
        'intron_retention',
        'coding_potential',
        'ORF_seq_similarity',
        'NMD_status',
        'domains_identified',
        'IDR_identified',
        'IDR_type',
        'signal_peptide_identified'
    ),
    dIFcutoff = 0.1
)
External toolPurposeRequired for
CPC2 (Coding Potential Calculator 2)Coding vs non-coding classificationcoding_potential consequence
Pfam (HMMER hmmscan against Pfam-A)Protein domain identificationdomains_identified
SignalP 6.0+Signal peptide predictionsignal_peptide_identified
IUPred2A or DeepTMHMMIntrinsic disorder regions / TM domainsIDR_identified, IDR_type
NetSurfP-3Surface accessibility (optional)Extended IDR analysis

The external tools must be run outside R; IsoformSwitchAnalyzeR provides FASTA outputs and re-imports the parsed results. Plan for ~30-60 minutes of external compute on typical mammalian transcriptomes.

NMD Prediction (The 50-nt Rule)

A transcript is predicted NMD-sensitive if its premature termination codon (PTC) lies >50-55 nt upstream of the last exon-exon junction (Maquat 2004 Nat Rev Mol Cell Biol; Lykke-Andersen & Jensen 2015 Nat Rev Mol Cell Biol).

Mechanism: Spliceosome deposits the Exon Junction Complex (EJC) ~20-24 nt upstream of every exon-exon junction. During the pioneer round of translation, ribosome reading through removes EJCs upstream of the stop codon. If a stop codon precedes the last EJC by >50 nt, the EJC remains, recruits UPF1 -> SMG1 phosphorylation -> SMG6/SMG7 -> mRNA decay.

Caveats and exceptions:

  • Last-exon PTCs escape NMD — can be dominant-negative or gain-of-function (e.g. MYH7 truncating variants).
  • 3'UTR length matters: very long 3' UTRs (>1 kb past stop) trigger NMD via UPF1 binding even without EJCs (faux-3'UTR rule).
  • Tissue-specific NMD: SMG6 vs SMG5/7 ratios vary; UPF1 stress conditions modulate.
  • PTC distance must be measured on the spliced transcript, not the genomic distance.
  • ~10-20% of "predicted NMD" transcripts escape NMD per orthogonal RNA-seq (Lindeboom 2016 Nat Genet; ~22% of canonical PTC-bearing transcripts escape in some tissues). Treat NMD prediction as probabilistic, not certain.

IsoformSwitchAnalyzeR's analyzeSwitchConsequences with 'NMD_status' evaluates this from the predicted ORF + transcript model.

AS-NMD as a Regulatory Layer

A large class of conserved alternative splicing events is deliberately PTC-introducing to titrate functional protein levels:

  • All major SR proteins (SRSF1-12) autoregulate via poison exons (Lareau 2007 Nature; Ni 2007 Genes Dev)
  • All major hnRNPs likewise
  • Ribosomal protein genes use AS-NMD autoregulation (e.g. rpL3, rpL12; Cuccurese 2005 NAR)
  • SCN1A poison exon -> Stoke STK-001 ASO in Phase 1/2 for Dravet syndrome (Han 2020 Sci Transl Med)

Functional implication: an increase in PSI of a poison exon decreases functional protein. Sign-of-effect in DTU output is opposite from intuition for these genes. Always check whether the alternative form is PTC-bearing before interpreting direction.

Disease examples:

  • TDP-43 cryptic exons (UNC13A, STMN2) introduce PTCs -> NMD on disease-relevant transcript (Brown 2022 Nature)
  • Last-exon truncating variants in TTN (and MYH7): escape NMD -> stable poison/dominant-negative protein

Manual DTU Pipeline (DRIMSeq + DEXSeq + stageR)

The canonical reference is the F1000Research "Swimming downstream" workflow (Love, Soneson, Patro 2018; Bioconductor rnaseqDTU).

r
library(tximeta); library(DRIMSeq); library(DEXSeq); library(stageR)

se <- tximeta(coldata)
counts <- assays(se)$counts

samples <- data.frame(
    sample_id = colnames(counts),
    condition = c('control', 'control', 'control', 'treatment', 'treatment', 'treatment')
)

txdf <- data.frame(
    gene_id = rowData(se)$gene_id,
    feature_id = rowData(se)$tx_id,
    counts
)

d <- dmDSdata(counts = txdf, samples = samples)
d <- dmFilter(d, min_samps_feature_expr = 3, min_feature_expr = 10,
              min_samps_feature_prop = 3, min_feature_prop = 0.1,
              min_samps_gene_expr = 6, min_gene_expr = 10)

design_full <- model.matrix(~ condition, data = samples(d))

dxd <- DEXSeqDataSet(
    countData = round(as.matrix(counts(d)[, -c(1, 2)])),
    sampleData = samples(d),
    design = ~ sample + exon + condition:exon,
    featureID = counts(d)$feature_id,
    groupID = counts(d)$gene_id
)
dxd <- estimateSizeFactors(dxd)
dxd <- estimateDispersions(dxd, quiet = TRUE)
dxd <- testForDEU(dxd, reducedModel = ~ sample + exon)
qval <- perGeneQValue(DEXSeqResults(dxd))

dxr <- DEXSeqResults(dxd, independentFiltering = FALSE)
pConfirmation <- matrix(dxr$pvalue, ncol = 1)
rownames(pConfirmation) <- dxr$featureID
tx2gene <- as.data.frame(dxr[, c('featureID', 'groupID')])

stageRObj <- stageRTx(
    pScreen = qval,
    pConfirmation = pConfirmation,
    pScreenAdjusted = TRUE,
    tx2gene = tx2gene
)
stageRObj <- stageWiseAdjustment(stageRObj, method = 'dtu', alpha = 0.05)

results <- getAdjustedPValues(stageRObj, order = FALSE, onlySignificantGenes = FALSE)

stageR semantics:

  • Stage 1 (screening): gene-level p-value (perGeneQValue from DEXSeq, or DRIMSeq's gene-level p) is filtered at the desired Overall FDR.
  • Stage 2 (confirmation): only within significant genes, individual transcripts are tested at a within-gene FWER computed to maintain global OFDR.
  • Net effect: gene-level FDR is properly controlled, AND the transcript that drove the call is known.
  • Without stageR: naive transcript-level BH overcounts because the gene-level multiple-testing burden is ignored.

fishpond/swish for Inferential-Uncertainty-Aware Testing

Goal: Test DTE while propagating quantification uncertainty from Salmon's Gibbs samples.

Approach: Run Salmon with --numGibbsSamples 20, import with tximeta, then use swish to average a non-parametric SAMseq-style test across inferential replicates.

r
library(fishpond); library(tximeta)

se <- tximeta(coldata)
y <- scaleInfReps(se)
y <- labelKeep(y)
y <- y[mcols(y)$keep, ]

set.seed(1)
y <- swish(y, x = 'condition')

dte_results <- as.data.frame(mcols(y))
sig <- subset(dte_results, qvalue < 0.05)

infRV (inferential relative variance) is a per-feature uncertainty diagnostic; high-infRV transcripts are unreliable and can be filtered before testing. Critical for genes with many similar isoforms (TTN, MAPT, NEFM) where Salmon's EM is uncertain.

Per-Tool Failure Modes

DEXSeq: Slowness at Scale

Trigger: Bulk cohort with >50 samples or single-cell DTU.

Mechanism: DEXSeq fits a NB GLM per exon-bin per gene; computational cost scales linearly with samples × bins.

Symptom: estimateDispersions takes hours; testForDEU exhausts memory.

Fix: Switch to satuRn (designed for scale, including scRNA-seq); run with parallelization (BPPARAM = MulticoreParam(8)).

Show full SKILL.md (866 more words)Show less
DRIMSeq: Filtering Sensitivity

Trigger: Default dmFilter parameters too strict for low-expression cohort.

Mechanism: min_samps_feature_expr = 3, min_feature_expr = 10 drops transcripts seen in <=2 samples or with <10 counts.

Symptom: Most candidate genes filtered out; few testable genes.

Fix: Tune to dataset: lower thresholds for low-coverage data, raise for high-coverage. Document choice.

satuRn: Empirical-Bayes Shrinkage Limits

Trigger: Very small cohort (n=2 vs n=2) or very heterogeneous.

Mechanism: Empirical-Bayes shrinkage assumes shared dispersion across genes; collapses with too-few or too-heterogeneous samples.

Symptom: Inflated p-values; few discoveries despite real effects.

Fix: Aggregate replicates (pseudobulk), or switch to DEXSeq for small cohorts; use larger cohorts when possible.

swish: Salmon Gibbs Requirements

Trigger: Running swish on Salmon output without Gibbs samples.

Mechanism: swish averages over inferential replicates from Salmon's Gibbs sampler; requires --numGibbsSamples 20 (or bootstrap with --numBootstraps) at Salmon time.

Symptom: scaleInfReps errors about missing inferential replicates.

Fix: Re-run Salmon with --numGibbsSamples 20; this triples Salmon runtime but enables uncertainty-aware testing.

IsoformSwitchAnalyzeR: External-Annotator Failure

Trigger: Forgetting to run all 4 external annotators (CPC2, Pfam, SignalP, IUPred2A).

Mechanism: analyzeSwitchConsequences silently drops consequence types for which annotation wasn't imported.

Symptom: extractConsequenceSummary shows fewer types than requested; specific consequence reports missing.

Fix: Verify all 4 result files exist before analyzeSwitchConsequences; check aSwitchList$AlternativeSplicingAnalysis slot for completeness.

Reconciliation: When DTU and Event-Level Disagree

PatternLikely causeAction
Significant DTU, no rMATS hitDTU shift across many transcripts; no single canonical event captures itExamine isoform structure in switchPlot; report at gene level
rMATS sig, no significant DTUSingle event in single isoform; not a gene-level DTUReport as event-level result; DTU not the right framing
Both sig, same gene, different "main" isoformsAnnotation differs (rMATS uses GENCODE basic; ISA uses comprehensive)Standardize annotation; re-run
DTU shows poison-exon switch, gene-level DGE shows decreaseNMD-coupled regulation: AS-NMD reducing protein on top of transcriptionMechanism: AS-NMD; report direction carefully

For high-confidence reporting: concordant DTU + event-level + sashimi visualization.

Single-Cell DTU

For scRNA-seq, satuRn scales where DEXSeq does not. IsoformSwitchAnalyzeR v2 supports single-cell input via importRdata with single-cell count matrices, and the underlying satuRn test has explicit single-cell calibration (Gilis 2022 F1000Research).

Strong recommendation: pseudobulk by cell type first; per-cell DTU is rarely powered with droplet 3' chemistry. See single-cell-splicing for chemistry-specific limitations.

Visualization

r
extractTopSwitches(
    aSwitchList,
    filterForConsequences = TRUE,
    n = 25,
    sortByQvals = TRUE
)

switchPlot(
    aSwitchList,
    gene = 'TARGET_GENE',
    condition1 = 'control',
    condition2 = 'treatment',
    localTheme = theme_bw(base_size = 12)
)

extractConsequenceSummary(aSwitchList, consequencesToAnalyze = 'all', plotGenes = FALSE)
extractConsequenceEnrichment(aSwitchList, consequencesToAnalyze = 'all')
extractSplicingSummary(aSwitchList, asFractionTotal = FALSE)

Significance Thresholds

ParameterDefaultNotes
isoform_switch_q_value< 0.05Switch significance
dIF (delta isoform fraction)> 0.1Minimum biological effect
Consequence q-value< 0.05Significance per consequence type
Gene-level OFDR (stageR)< 0.05Gene-level screening FDR
satuRn alpha0.05Empirical-Bayes alpha
swish qvalue< 0.05Local FDR from qvalue package

Common Errors

ErrorCauseSolution
Error in importRdata: ... transcript_ids do not matchSalmon index built from different annotation than provided GTFRebuild Salmon index with matching transcripts.fa
analyzeSwitchConsequences: not enough switching genespreFilter too strict; few candidate switchesLower geneExpressionCutoff, dIFcutoff in test step
dmFilter: empty resultFilter parameters too strictReduce min_feature_expr, min_samps_feature_expr
satuRn: rank-deficient design matrixConfounder perfectly correlated with conditionDrop the confounder or stratify analysis
swish: no inferential replicates foundSalmon run without --numGibbsSamplesRe-run Salmon with --numGibbsSamples 20
analyzeIUPred2A: file not foundExternal annotator output missing or wrong pathVerify CPC2/Pfam/SignalP/IUPred2A all completed and paths match

Common Pitfalls

  • Skipping stageR -> inflated transcript-level FDR; gene-level multiple-testing burden ignored.
  • Forgetting NMD direction -> sign-of-effect on protein opposite to sign-of-effect on transcript when alternative form is a PTC-bearer. Always check.
  • Treating short-read-derived isoform calls as ground truth -> Salmon EM is uncertain; use Gibbs samples + swish if quantification uncertainty matters.
  • Comparing across annotations -> GENCODE basic vs comprehensive, RefSeq, Ensembl all have different transcript catalogs; switches "appear" or "disappear" with annotation choice. Document version.
  • Not running long-read where possible -> Iso-Seq / ONT removes ambiguity for genes with many similar isoforms (TTN, MAPT, NEFM, DSCAM).
  • Choosing satuRn or DEXSeq blindly at the n=5 boundary -> IsoformSwitchAnalyzeR v2 auto-selects based on >5 vs <=5; results may differ. Document choice.
  • Reporting a "switch" without a sashimi plot -> reviewers will demand it; do it upfront.
  • Forgetting stageR also corrects gene-level p when starting from DRIMSeq -> DRIMSeq's gene_p should be passed as pScreen, not raw transcript p-values.
  • differential-splicing - Event-level (rMATS, leafcutter, MAJIQ) complementary to DTU
  • splicing-quantification - PSI is a 1D projection of DTU shifts
  • splicing-qc - Verify upstream library, depth, alignment before DTU
  • sashimi-plots - Required visualization for switch validation and reporting
  • splice-variant-prediction - Connects SpliceAI variant predictions to specific isoforms
  • long-read-splicing - Full-isoform DTU bypasses transcript-quant uncertainty; preferred for many-isoform genes
  • pathway-analysis/go-enrichment - Pathway enrichment of switching genes
  • rna-quantification/alignment-free-quant - Salmon with --numGibbsSamples is upstream

References

  • Han et al 2025 bioRxiv 10.64898/2025.12.08.693027 - IsoformSwitchAnalyzeR v2
  • Vitting-Seerup & Sandelin 2019 Bioinformatics 35:4469-4471 - IsoformSwitchAnalyzeR original
  • Anders et al 2012 Genome Res - DEXSeq
  • Nowicka & Robinson 2016 F1000Research - DRIMSeq
  • Gilis et al 2022 F1000Research - satuRn
  • Zhu et al 2019 NAR - swish / fishpond
  • Van den Berge et al 2017 Genome Biol - stageR
  • Love, Soneson, Patro 2018 F1000Research - Swimming downstream DTU workflow
  • Maquat 2004 Nat Rev Mol Cell Biol - NMD review
  • Lykke-Andersen & Jensen 2015 Nat Rev Mol Cell Biol - NMD update
  • Lindeboom et al 2016 Nat Genet - NMD escape rates from RNA-seq
  • Lareau et al 2007 Nature - SR protein AS-NMD autoregulation
  • Ni et al 2007 Genes Dev - ultraconserved-element AS-NMD in splicing regulators
  • Cuccurese et al 2005 NAR 33:5965-5977 - ribosomal protein AS-NMD autoregulation
  • Brown et al 2022 Nature - UNC13A cryptic exon (TDP-43)
  • Han et al 2020 Sci Transl Med - SCN1A poison exon ASO

© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in alternative-splicing/isoform-switching of GPTomics/bioSkills.

  • SKILL.md
  • examples/isoform_switch_analysis.R
  • usage-guide.md

Open the folder on GitHubat commit d91ed3d

Used in 2 other repositories

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Bio Isoform Switching next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bio Isoform Switching compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bio Isoform Switching this skillGPTomics/bioSkills1.2k2 repos~5.9kAutomated safety check: PassMIT
Hypothesis Generationspacering-net/codeg3.9k14 repos~3.6kAutomated safety check: NotesMIT
GitHub Deep Researchbytedance/deer-flow84k4 repos~1.3kAutomated safety check: PassMIT
Nature Paper CardYuan1z0825/nature-skills47k2 repos~2.1kAutomated safety check: PassApache-2.0
Content Research Writerweapp-tailwindcss/weapp-tailwindcss1.9k25 repos~3.5kAutomated safety check: PassMIT
Last30daysmvanhorn/last30days-skill64k—~7.9kAutomated safety check: NotesMIT

Similar skills

  • Hypothesis Generation

    spacering-net/codeg

    Structured hypothesis formulation from observations. An agent skill from spacering-net/codeg.

    3.9k GitHub starsUsed in 14 repos~3.6k tokens
    Research & ScienceAuto-check: notes
  • GitHub Deep Research

    bytedance/deer-flow

    Researches a GitHub repository over four rounds using the GitHub API and web search, then writes a structured markdown report with timeline, metrics and Mermaid diagrams.

    84k GitHub starsUsed in 4 repos~1.3k tokens
    Research & ScienceAuto-check passed
  • Nature Paper Card

    Yuan1z0825/nature-skills

    Builds a structured deep-reading card for one scientific paper, covering methods, how experiments support claims, limitations and research ideas, with a script to prepare the source.

    47k GitHub starsUsed in 2 repos~2.1k tokens
    Research & ScienceAuto-check passed
  • Content Research Writer

    weapp-tailwindcss/weapp-tailwindcss

    Assists in writing high-quality content by conducting research, adding citations, improving hooks, iterating on outlines, and providing real-time feedback on each section.

    1.9k GitHub starsUsed in 25 repos~3.5k tokens
    Research & ScienceAuto-check passed
  • Last30days

    mvanhorn/last30days-skill

    Research what people actually say about any topic in the last 30 days.

    64k GitHub stars~7.9k tokensUpdated yesterday
    Research & ScienceAuto-check: notes
  • Peer Review

    spacering-net/codeg

    Structured manuscript/grant review with checklist-based evaluation.

    3.9k GitHub starsUsed in 17 repos~5.9k tokens
    Research & ScienceAuto-check: notes

More from GPTomics/bioSkills

All 559 skills in this repo
  • Bio Alignment Io

    GPTomics/bioSkills

    Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.

    1.2k GitHub starsUsed in 3 repos~4.9k tokens
    Auto-check passed
  • bioSkills Installer

    GPTomics/bioSkills

    Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.

    1.2k GitHub starsUsed in 1 repo~789 tokens
    Auto-check passed
  • Bio Write Sequences

    GPTomics/bioSkills

    Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.

    1.2k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Amplicon Primer Clipping

    GPTomics/bioSkills

    Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.

    1.2k GitHub starsUsed in 2 repos~2.2k tokens
    Auto-check passed
  • Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.

    1.2k GitHub starsUsed in 2 repos~3.6k tokens
    Auto-check passed
  • Bio Alignment Indexing

    GPTomics/bioSkills

    Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.

    1.2k GitHub starsUsed in 2 repos~2.4k tokens
    Auto-check passed

Questions about Bio Isoform Switching

What does Bio Isoform Switching do?

Analyzes differential transcript usage (DTU) and isoform switches with functional consequence prediction (NMD via 50nt rule, ORF disruption, protein domain loss/gain, signal peptide changes, IDR…. Bio Isoform Switching is an agent skill from GPTomics/bioSkills. Analyzes differential transcript usage (DTU) and isoform switches with functional consequence prediction (NMD via 50nt rule, ORF disruption, protein domain loss/gain, signal peptide changes, IDR alterations, coding-potential shifts).

When should I use Bio Isoform Switching?

Bio Isoform Switching fits situations like: investigating how splicing differences alter protein function; trigger NMD-mediated degradation.

How do I install Bio Isoform Switching in Claude Code?

Run `npx skills add GPTomics/bioSkills --skill bio-isoform-switching -a claude-code`. Or copy the skill folder (alternative-splicing/isoform-switching in GPTomics/bioSkills) into .claude/skills/bio-isoform-switching in your project. Claude Code loads it when a task matches its description.

How do I install Bio Isoform Switching in Codex?

Run `npx skills add GPTomics/bioSkills --skill bio-isoform-switching -a codex`. Or copy the skill folder (alternative-splicing/isoform-switching in GPTomics/bioSkills) into .agents/skills/bio-isoform-switching in your project. Codex loads it when a task matches its description.

Can I use Bio Isoform Switching in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-isoform-switching -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-isoform-switching, .gemini/skills/bio-isoform-switching, .github/skills/bio-isoform-switching and .opencode/skills/bio-isoform-switching in your project.

What does Bio Isoform Switching need to run?

Going by SKILL.md and its folder, Bio Isoform Switching needs R for the scripts in its folder.

Does Bio Isoform Switching access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Bio Isoform Switching safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bio Isoform Switching use?

Bio Isoform Switching is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bio Isoform Switching use?

About 5.9k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bio Isoform Switching?

Skills that share tags, products or a category with Bio Isoform Switching: Hypothesis Generation (spacering-net/codeg, 3.9k stars), GitHub Deep Research (bytedance/deer-flow, 84k stars), Nature Paper Card (Yuan1z0825/nature-skills, 47k stars) and Content Research Writer (weapp-tailwindcss/weapp-tailwindcss, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bio Isoform Switching?

GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,218 GitHub stars. The repository holds 559 skills in this directory. The repository was last updated on August 15, 2026.

Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.