pythonforbio.
[WASM idle]
Core Concepts01/06

Library Versions

Starting sandbox…
Beginnerlesson

Library Versions

State of the stack as of August 2026. Several of these libraries shipped breaking changes recently, so tutorials written before 2026 will mislead you.

Current versions

Library Version Notes
NumPy 2.5.x (2.5.2, Aug 2026) distutils removed; Python 3.12–3.14
pandas 3.0.x (3.0 released 21 Jan 2026) Copy-on-Write mandatory; string dtype by default
Matplotlib 3.11.x (3.11.0, Jun 2026)
seaborn 0.13.2 (Jan 2024) Slow release cadence; objects interface still evolving
Biopython 1.87 (Mar 2026) Bio.Application removed in 1.86
hgvs 1.5.7 (Mar 2026) Python ≥3.10; pin as hgvs>=1.5,<1.6

The three changes that break old tutorials

1. pandas 3.0 — Copy-on-Write is the only mode

Chained assignment silently stopped working. Code like df["col"][mask] = value no longer modifies df. SettingWithCopyWarning was removed because the ambiguity it warned about no longer exists. Use .loc. Full detail in Copy-on-Write.

2. pandas 3.0 — strings are str, not object

pd.Series(["a","b"]).dtype is now str, backed by PyArrow when available. Any code doing df.dtypes == object to find text columns is now wrong. See pandas dtypes.

Also in 3.0: datetimes default to microsecond resolution rather than nanosecond, which quietly fixes the old 1678–2262 out-of-bounds problem.

3. Biopython 1.86 — Bio.Application is gone

All the command-line wrappers (Bio.Blast.Applications, Bio.Align.Applications, NcbiblastnCommandline, MuscleCommandline, and friends) were removed. Every tutorial that shows from Bio.Blast.Applications import NcbiblastnCommandline is dead code. Use subprocess directly. See Biopython Deprecations.

NumPy 2.x migration notes

If you hit NumPy-2-era errors in older code:

  • np.float_, np.unicode_, np.NaN, np.Inf and similar aliases were removed. Use np.float64, np.str_, np.nan, np.inf.
  • np.product, np.cumproduct, np.alltrue, np.sometrue gone → np.prod, np.cumprod, np.all, np.any.
  • Scalar promotion rules changed (NEP 50). np.float32(1) + 1.0 now stays float32 instead of upcasting to float64. This can change numerical results in genuinely surprising ways.
  • Compiled extensions built against NumPy 1.x need rebuilding.

Pinning strategy for bioinformatics

Reproducibility matters more here than having the newest features. A reasonable floor:

python >=3.12,<3.14
numpy >=2.4,<3
pandas >=3.0,<4
matplotlib >=3.10,<4
seaborn >=0.13,<0.14
biopython >=1.86,<2
hgvs >=1.5,<1.6

The hgvs project explicitly asks you to pin to a minor range, because its normalization behaviour can change between minors and that changes your output variants. See Applied - Reproducible Environment.

Python version floor

The binding constraint is usually hgvs (≥3.10) and NumPy 2.5 (≥3.12). Python 3.12 is the practical floor for the whole stack in 2026.

See also

Ecosystem Map · Applied - Reproducible Environment · Biopython Deprecations · Copy-on-Write

scratch

No output yet — run the code to populate this drawer.

start of pathCoordinate Systems