Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
The single most important step: identify what physical process the problem describes. In quantitative biology, almost every problem maps to one of these:
Drug enters body โ distributes โ is eliminated: pharmacokinetics. Key quantities: dose, bioavailability, volume of distribution, clearance, half-life. The body is a compartment model.
Radioactive tracer decays over time: nuclear medicine. Same math as drug elimination (exponential decay) but the rate constant is a physical property of the isotope, not a patient variable.
Pathogen spreads through population: epidemiology. Rโ determines whether an epidemic grows or dies. Herd immunity threshold = 1 - 1/Rโ. Every epidemic model starts here.
Ligand binds receptor: binding equilibrium. At low [ligand], binding is linear. At saturation, all sites occupied. Kd = concentration at half-maximal binding. This same curve describes enzyme kinetics, drug-receptor occupancy, and surface adsorption.
Contaminant enters environment: dilution + persistence. Two questions: what is the concentration after mixing (conservation of mass), and how long does it persist (exponential decay with environmental half-life)?
Two populations differ genetically: population genetics. Fst measures differentiation. HWE tests if mating is random. Gene flow opposes drift.
Neurons communicate in a network: computational neuroscience. Integrate-and-fire models, synaptic dynamics, balanced excitation/inhibition. Mean firing rate depends on input current relative to threshold.
Once you name the process, the mathematical structure follows. Solve algebraically first, substitute numbers second, and always check that units cancel correctly and the magnitude is physically reasonable.
2. Reasoning Patterns by Problem Type
These are not formulas. They are ways of thinking about what is happening physically.
Conservation / Dilution Problems
Something is being spread into a larger volume, or two streams are mixing. The total amount of substance is conserved. Think: amount_before = amount_after, where amount = concentration x volume. This covers serial dilutions, mixing streams, stock solution preparation, and environmental discharge into rivers.
Exponential Decay / Growth Problems
Something is disappearing (or growing) at a rate proportional to how much is currently there. The signature: "half-life" or "doubling time" appears in the problem. This single pattern covers drug clearance, radioactive decay, environmental persistence, bacterial growth, and epidemic doubling. The only things that change between applications are the rate constant and what is decaying.
Saturation / Binding Problems
Something binds to a limited number of sites. At low concentrations, binding is proportional to concentration. At high concentrations, sites fill up and adding more has diminishing effect. This covers receptor-ligand binding, enzyme kinetics, surface adsorption, and oxygen-hemoglobin curves. The shape is always hyperbolic: response = max_response x [thing] / ([thing] + half_max_constant).
Threshold / Crossover Problems
"At what point does X equal Y?" or "When does the concentration drop below the therapeutic level?" Set two expressions equal and solve. Examples: time to reach a target drug level, when an environmental concentration exceeds a safety limit, herd immunity threshold (where effective R drops to 1).
Ratio / Rate Problems
Output = input x time, or output = concentration x flow rate. Clearance, flux, dosing rate, and drip rate calculations are all just dimensional analysis: arrange the given quantities so the units work out.
Population Comparison Problems
Two groups are being compared. You need a measure of difference (Fst, odds ratio, relative risk) and a measure of whether the difference is real (p-value, confidence interval). Think: what is the effect size, and is it distinguishable from noise?
3. When to Compute vs. Estimate vs. Look Up
Compute carefully when:
The answer affects a patient (drug dosing, diagnostic interpretation)
The problem gives you exact numbers and asks for an exact answer
You need to fit a curve to data (use scipy)
Estimate and state uncertainty when:
The answer needs an order of magnitude (environmental risk, population-level)
Input values are themselves uncertain (R0 estimates, BCF from log Kow regressions)
Say: "This is approximately X, with the main uncertainty coming from Y"
Look up via ToolUniverse when:
You need a physical constant: half-life, molecular weight, Kd, log Kow, allele frequency
The user names a specific drug, compound, gene, or variant
You want to validate your calculation against a known case
CRITICAL: When a problem gives you numbers and asks for a numerical answer, WRITE AND RUN Python code using the Bash tool. Do not try to compute in your head โ write a script, execute it, and report the result. Mental arithmetic on multi-step problems introduces errors. The templates below are starting points โ adapt them to the specific problem, then EXECUTE.
Answer Format Rules: Match the precision and format the question expects. If data uses 2 decimal places, round to 2. For large numbers (>10^6), use scientific notation; if the question says "in units of 10^28", give just the coefficient. For small numbers, match the question's format (e.g., "1.776 ร 10^-3" not "1.8e-3"). Give ONLY the number โ no units or descriptions unless explicitly asked.
# Pattern for every computation problem:
# 1. Extract ALL given values from the problem โ write them down with units
# 2. Identify EXACTLY what quantity the question asks for
# 3. Write a Python script connecting givens to the unknown
# 4. Run it with: python3 -c "..."
# 5. VERIFY: substitute your answer back into the original problem โ does it make sense?
# e.g., if computing a drip rate, check: rate ร time = total volume?
# e.g., if computing vaccine coverage, check: coverage ร efficacy ร population > herd immunity?
import numpy as np
defexponential_process(initial, half_life, time):
"""Amount remaining after exponential decay. For growth, use negative half_life."""return initial * (0.5 ** (time / half_life))
deftime_to_reach(initial, target, half_life):
"""Time for exponential process to reach a target value."""return half_life * np.log2(initial / target)
# Examples โ same math, different domains:# Drug: 500 mg dose, tยฝ = 6 h, after 24 h โ 31.25 mg# Radioactive: 20 mCi Tc-99m, tยฝ = 6 h, after 12 h โ 5 mCi# Environmental: 100 ppm pesticide, tยฝ = 30 days, after 90 days โ 12.5 ppm
Template 2: Conservation / Dilution / Mixing
Covers: C1V1=C2V2, stream mixing, serial dilutions. Core logic: C1*V1 = C2*V2 (pass 3 knowns, solve for 4th). For mixing n streams: final_conc = sum(Ci*Qi) / sum(Qi).
Template 3: Threshold / Equilibrium Solver
Covers: when drug drops below therapeutic level, herd immunity threshold. Use scipy.optimize.brentq(lambda x: func(x) - target, lo, hi) to find the crossover point.
Template 4: Saturation / Binding Curve
Covers: receptor binding, enzyme kinetics, adsorption, dose-response. Shape: response = Rmax * C / (C + Kd). Fit with scipy.optimize.curve_fit using p0=[median(C), max(response)].
Template 5: Statistical Comparison
Covers: HWE chi-square, contingency tables, group comparisons. Use scipy.stats.chisquare(observed, expected) for goodness-of-fit, stats.ttest_ind/ttest_rel for group comparisons.
Template 6: Rate / Dimensional Analysis
Covers: IV drip rate, clearance, flux, dosing rate. Core: rate = amount / time, mass_rate = concentration * flow_rate. Arrange units to cancel correctly.
Template 7: Compartmental Models & R0
Covers: SIR/SEIR, R0 derivation. R0 = beta * N / gamma (basic SIR). General: R0 = transmission_rate * infectious_duration * susceptible_contacts. Derive by tracing one infected individual through all compartments.
5. Multiple-Choice Strategy
Multiple-choice questions in biophysics, pharmacology, and clinical medicine are frequently answered incorrectly not because of missing knowledge but because of process errors: skipping an option, confusing a letter with the text, or committing to the first plausible-sounding choice. Use the systematic approach below every time.
The Mandatory MC Process
Read the stem twice. Identify the exact action being asked: "MOST likely", "FIRST step", "BEST describes", "EXCEPT". These qualifiers change the answer.
Force evaluation of every choice. For each option ask:
Why would this be correct? โ does it align with the core concept?
Why would this be wrong? โ does the reasoning contradict it, or is it only partially true?
Eliminate with explicit justification. Mark a choice eliminated only when you can state a factual reason (not just a feeling).
Count survivors. One survivor โ that is your answer. Two or more โ go back to the stem and look for the qualifier that distinguishes them.
Verify letter-to-text alignment. Before writing your answer, confirm the letter you intend to write corresponds to the option text you reasoned about. This catches the common error of reasoning "B is correct" but writing "C".
Quantitative MC: Calculate the exact answer FIRST using Python, THEN match to the closest option. Do not let the listed choices bias your computation โ compute independently.
MC traps: "All/None of the above" is correct only ~25% of the time. Absolute language ("always", "never", "only") is usually wrong. The longest/most detailed option is correct more often. When two options are opposites, one is usually correct.
CRITICAL FOR BATCH PROCESSING: When answering multiple MC questions in sequence, do NOT rush. Apply the FULL elimination process to EVERY question. Common batch error: answering based on first impression without elimination. For each MC question, you MUST:
Write out at least 2 eliminated options with reasons BEFORE selecting your answer
If you cannot eliminate any options, that's a sign you need to LOOK UP information
mc_analyzer.py โ Automated MC Scaffold
Located in skills/tooluniverse-computational-biophysics/scripts/mc_analyzer.py.
Analysis mode scans reasoning for elimination signals, reports survivor count. Verify mode checks letter-text alignment. Use for any scored MC question.
6. Bundled Scripts
These ready-to-run scripts live in skills/tooluniverse-computational-biophysics/scripts/.
Use them via the Bash tool instead of computing by hand โ they include verification steps and handle edge cases.
epidemiology.py โ Epidemiology calculations (5 types via --type)
Preferred: Use ToolUniverse tools (via MCP/SDK) instead of the script:
Epidemiology_r0_herd tool -- R0 and herd immunity threshold
Epidemiology_vaccine_coverage tool -- Vaccine coverage from field data
Epidemiology_nnt tool -- Number needed to treat
Epidemiology_diagnostic tool -- Diagnostic test performance (2x2 table)
Epidemiology_bayesian tool -- Bayesian pre/post-test probability
Fallback: Pure stdlib script. Types: r0_herd, vaccine_coverage, nnt, diagnostic, bayesian.
Output: hourly rates (first 8h / next 16h), total volume, urine output target. 8h clock starts from burn time.
7. Combinatorics & Counting Problems
For genetics combinatorics (F2 haplotypes, genotype counts, specimen tallies) or any counting/permutation/combination problem: ALWAYS write and execute Python code. Never attempt to enumerate or count mentally โ even simple-looking problems (e.g., "how many unique chromosomes from 5 SNPs") have subtleties that cause errors without code. Use itertools.product, itertools.combinations, or direct formulas, then verify the count.
8. Common Pitfalls to Flag
Unit mismatch: mg vs g, mL vs L, hours vs seconds. Always write units next to every number and verify cancellation before computing.
Mono- vs multi-exponential: Drug clearance is often biexponential (distribution + elimination phases). Simple half-life decay assumes one compartment. State this assumption.
R0 vs Re: R0 = fully susceptible population. Re = R0 x fraction_susceptible. Most real-world questions want Re.
Single-site estimates are noisy: One SNP's Fst, one patient's response, one measurement's Kd. Always note when genome-wide averages, population means, or replicate experiments would be more reliable.
Regression estimates are order-of-magnitude: BCF from log Kow, toxicity from QSAR. Flag the uncertainty explicitly.
SI units in simulations: Neuron models, diffusion, thermodynamics โ always convert to SI (seconds, meters, joules, volts) before computing. Mixed ms/mV causes silent factor-of-1000 errors.