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.Infand similar aliases were removed. Usenp.float64,np.str_,np.nan,np.inf.np.product,np.cumproduct,np.alltrue,np.sometruegone →np.prod,np.cumprod,np.all,np.any.- Scalar promotion rules changed (NEP 50).
np.float32(1) + 1.0now staysfloat32instead of upcasting tofloat64. 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