Skip to content

About

3,722 AI × Biology papers from ICLR / ICML / NeurIPS (2010–2026) — browsable by venue & year

Resources

Stars

23 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

BioTender · AI × Biology Papers Corpus — 3,722 peer-reviewed papers from ICLR / ICML / NeurIPS

AI × Biology Papers Corpus

The definitive, machine-readable index of AI × Biology papers accepted at ICLR, ICML and NeurIPS.

3,722 papers 3 venues 17 years 10 tags 95.9% recall MIT + CC-BY-4.0 Updated 2026.07

Browse  ·  Figures  ·  Tags  ·  Data  ·  Load  ·  Methods


Why this exists

🎯 One canonical corpus

Every AI × Biology paper accepted at ICLR / ICML / NeurIPS, from NeurIPS 2010 to ICLR 2026, in one place. 3,722 records, all with abstract, authors and PDF link.

🏷️ Machine-labelled, human-audited

Two-stage keyword filter with 95.9 % recall against a 315-paper hand-curated truth set. Ten topical tags (protein, molecule, single_cell, …) assigned per paper.

📊 Ready to analyse

Ships as structured JSON + CSV plus 33 foldable markdown files you can browse on GitHub. Reproducible: the entire tree regenerates from one JSON.


🚀 Quick start

git clone https://github.com/biotender/ai-bio-conference-papers.git
cd ai-bio-conference-papers

# Browse in your editor — every paper is a foldable <details> card
open papers/ICLR/2026.md

# Or load the data
python -c "import json; papers = json.load(open('data/papers_master.json')); print(len(papers), 'papers')"

📈 At a glance

Corpus overview — 3,722 papers, 2010 → 2026

Corpus overview: stacked bars per year by venue

Stacked bars by venue, one bar per year. NeurIPS dominates the early record (2010–2017, ICLR/ICML absent from the corpus); ICLR takes over from 2020 onwards. The 2026 bar reaches 1,235 papers even without NeurIPS 2026, which had not yet run at snapshot time. The AlphaFold2 reference line marks the 2021 inflection point.

SVG (vector, editable): figures/corpus_overview.svg

Topic trajectories — 7 tags, 2017 → 2026

Topic trajectories: paper counts per tag over time

Per-year paper counts for the seven densest tags. protein climbs from ~2 papers/year (2018) to 294 in 2026 — a textbook post-AlphaFold2 explosion. single_cell lifts late (25 → 125 across 2020–2026). genomics roughly doubles between 2024 → 2025 (59 → 148). medical_imaging and clinical grow more steadily.

SVG (vector, editable): figures/topic_trajectories.svg

Both figures are regenerated directly from data/papers_master.json; the plotting code lives in the companion biotender-ai-bio-corpus repo.


🗂 Browse by venue × year

Each cell links to a markdown file containing all papers for that venue/year, grouped by tag and sorted alphabetically. Numbers are paper counts.

Year ICLR ICML NeurIPS Total
2010 — — 10 10
2011 — — 5 5
2012 — — 13 13
2013 — — 7 7
2014 — — 9 9
2015 — — 6 6
2016 — — 14 14
2017 — — 18 18
2018 — 4 21 25
2019 31 2 27 60
2020 75 13 42 130
2021 80 10 42 132
2022 126 23 71 220
2023 217 39 141 397
2024 264 73 195 532
2025 501 134 274 909
2026 887 348 — 1,235
Total 2,181 646 895 3,722

Note: NeurIPS 2026 is not yet in the corpus — the conference had not run when this snapshot was taken. ICML 2019 has only 2 papers because the PMLR proceedings for that year yielded very few abstracts matching the biology filter (title-only signal for the pre-2020 PMLR floor is weaker).


🎴 Anatomy of a paper card

Every paper inside papers/*/*.md is a foldable <details> block. GitHub renders it natively — click the arrow to expand.

Collapsed view (always visible):

Title — Author1, Author2, Author3 et al. · page · pdf · tag1 tag2

Expanded view (unfolded on click):

Full abstract (verbatim, HTML-escaped).

Matched: clinical (13) · prognostic · healthcare

The Matched: … line lists which biology keywords the filter picked up in this paper (with per-term hit counts when a term appears more than once) — useful for auditing why a paper was kept.

Sorting rules inside each per-year markdown (click to expand)
  1. Papers are grouped by their first _tags entry (or untagged if the list is empty).
  2. Tag groups are ordered by descending paper count within that file.
  3. untagged always appears last.
  4. Inside each tag group, papers are sorted alphabetically by title (case-insensitive).

Multi-tag papers only appear once (under their first tag) so per-file counts stay additive to the venue-year total. The complete tag list is preserved in papers_master.json.


🏷 Tag universe

Tags are non-exclusive — a paper can carry multiple tags. Counts below are over the full corpus (a paper tagged both protein and single_cell contributes to both rows).

Tag Papers Definition
🧪 molecule 1,005 small-molecule drug discovery, molecular property prediction, generative chemistry, SMILES/graph modeling
🩺 clinical 925 clinical prediction, electronic health records, healthcare, prognostic / diagnostic modeling
🧬 protein 925 protein structure prediction, protein language models, protein design, folding
🧠 neuro 916 neural signals / spikes / EEG / fMRI, brain imaging, neuroscience
🧬 genomics 480 DNA / RNA sequence models, variant calling, gene expression, transcriptomics
🩻 medical_imaging 465 radiology, histopathology images, medical segmentation, X-ray / CT / MRI
🔬 single_cell 401 single-cell RNA-seq, cell type prediction, single-cell foundation models
⚛️ md_structbio 286 molecular dynamics, structural biology, force fields, energy prediction
🦠 oncology 188 cancer-specific modeling — subtypes, tumor imaging, drug response
🛡 immuno 91 immunology — antibody / TCR / B-cell modeling, MHC binding, vaccine design
— untagged 132 Passed the biology filter but did not hit any tag keyword — kept for completeness.

📁 Repository layout

ai-bio-conference-papers/
├── README.md              ← you are here
├── LICENSE                MIT (scripts, README, CHANGELOG)
├── LICENSE-DATA           CC BY 4.0 (paper records + markdown + figures)
├── CHANGELOG.md
├── .gitignore
├── assets/
│   ├── hero_banner.png              README hero image
│   ├── biotender_logo.png           original logo (black on white)
│   ├── biotender_logo_white.png     white-on-transparent for dark bg
│   └── biotender_logo_black.png     black-on-transparent for light bg
├── papers/
│   ├── ICLR/2019.md .. 2026.md      (8 files)
│   ├── ICML/2018.md .. 2026.md      (9 files)
│   └── NeurIPS/2010.md .. 2025.md   (16 files)
├── data/
│   ├── papers_master.json           canonical, 3,722 dicts (~8.2 MB)
│   └── papers_master.csv            flattened subset (~1.3 MB)
├── figures/
│   ├── corpus_overview.{png,svg}    stacked bars, 2010–2026 by venue
│   └── topic_trajectories.{png,svg} 7-tag lines, 2017–2026
└── scripts/
    ├── generate_papers_md.py        regenerate 33 markdown files
    └── build_readme.py              regenerate this README

Total: 33 per-year markdown + 2 data files + 4 figures + 4 assets + 2 scripts + 5 root files = 50 tracked files, ~18 MB working tree.


📚 Data files

data/papers_master.json — canonical

A JSON array of 3,722 dicts. This is the source of truth; every markdown, count and table in this repo is derived from it.

Field dictionary (click to expand)
Field Type Description
title str Paper title, verbatim from the source.
abstract str Full abstract; never empty in this corpus.
authors list[str] Full author list, ordered as printed on the paper.
keywords list[str] Author-supplied keywords (OpenReview only; empty for PMLR / papers.nips.cc).
venue str One of ICLR, ICML, NeurIPS.
year int Publication year.
source str Upstream source: openreview / pmlr / nips_cc.
primary_area str OpenReview submission track; empty for non-OpenReview sources.
forum_id str OpenReview forum id when applicable.
paper_page str URL to the paper landing page.
pdf_url str Direct PDF URL.
_tags list[str] Topical tags assigned by the BioTender filter.
_hit_terms list[str] Biology keywords that the filter matched, order preserved.
_hits dict[str,int] Per-term hit counts across title + abstract + keywords.
_keep_reason str Which filter branch kept this paper (e.g. text_high_spec_focused, title_strong_bio).
_area str Coarse area bucket, or no_area.

Fields prefixed with _ are added by the filter; the rest are pulled verbatim from the upstream source.

data/papers_master.csv — flattened subset

For quick inspection in Excel / pandas. Drops several fields for size — see the mapping below. Use the JSON if you need the abstract or per-term hit counts.

CSV column mapping (click to expand)
CSV column Corresponds to JSON field
venue, year, title, source, primary_area, forum_id, paper_page same (verbatim)
authors authors — list joined by ;
tags _tags — list joined by ; (underscore dropped)
hit_terms _hit_terms — list joined by ; (underscore dropped)
keep_reason _keep_reason (underscore dropped)

Not in the CSV: abstract, keywords, pdf_url, _hits, _area. Load papers_master.json for those.


💻 Loading & usage

Python — JSON

import json

with open('data/papers_master.json') as f:
    papers = json.load(f)   # list of 3722 dicts

# Example: all ICLR 2026 protein-tagged papers
hits = [p for p in papers
        if p['venue'] == 'ICLR'
        and p['year'] == 2026
        and 'protein' in p['_tags']]
print(len(hits), 'papers')

# Example: papers matching a specific keyword
cryo = [p for p in papers if 'cryo-em' in p['_hit_terms']]

Python — CSV

import pandas as pd

df = pd.read_csv('data/papers_master.csv')

# Reconstruct list-valued columns
for col in ('authors', 'tags', 'hit_terms'):
    df[col] = df[col].fillna('').apply(lambda s: s.split('; ') if s else [])

# Group by venue-year
df.groupby(['venue', 'year']).size()

Regenerate the markdown

The 33 per-year markdown files and this README are both regenerable from data/papers_master.json:

python scripts/generate_papers_md.py    # rewrites papers/**/*.md
python scripts/build_readme.py          # rewrites README.md

Neither script has external dependencies (Python 3.10+ standard library only).


🔬 Methodology

Data sources

Venue Years Source Access pattern
ICLR 2019–2026 OpenReview API v2 api2.openreview.net/notes?content.venue=…
ICML 2018–2026 PMLR proceedings (+ OpenReview for 2026 only) proceedings.mlr.press/v<vol>/
NeurIPS 2010–2025 papers.nips.cc (+ OpenReview 2023 onward) papers.nips.cc/paper_files/paper/<year>

All fetching uses public endpoints with polite rate-limiting. Only accepted papers are included — rejected / withdrawn submissions and workshops are out of scope.

Filter design (summary)

Two-stage filter, applied to title + abstract + keywords:

  1. Keyword hit count against a curated 44-term biology lexicon (protein, ligand, patient, EEG, transcriptomic, cryo-em, single-cell, …).
  2. Tag assignment against 12 topical groups (10 stayed active in this corpus — snn and chem-pure-materials are used only as exclusion branches).

A paper is kept if its combined signal exceeds a per-branch threshold. False-positive branches (snn_dropped, chem_pure_materials_dropped, brain_false_positive, neuro_no_neurobio, chem_bio_no_bio) explicitly drop papers that match biology keywords but are actually about spiking-neural-networks, computational chemistry of pure materials, or brain-inspired ML without any biology content.

The full filter code (with all lexicons, thresholds and branch definitions) lives in the companion biotender-ai-bio-corpus repo under scripts/filter_pipeline.py. This repo intentionally ships only the output.

Filter validation

Against a 315-paper hand-curated truth set (ICML 2026 papers manually labelled as "in scope for AI × biology"):

Metric Value
Truth set size 315
Filter kept 348
Overlap (true positives) 302
Recall 95.9 % (302 / 315)
Missing (false negatives) 13 — all borderline chemistry / materials science with weak biology signal
Extras (kept beyond truth) 46 — audited as legitimate AI × biology, retained after review

The 46 extras include: bio-inspired representation-learning papers (e.g. hippocampal place-field models, biologically-plausible connectivity), a handful of protein / genomic foundation-model papers where the reviewer had originally been strict about "pure ML methods on bio data", and several medical-imaging papers with heavier ML machinery. All 46 were audited during the validation pass and kept.


⚠️ Known limitations

  1. PMLR floor. ICML abstracts before 2020 are partly truncated on PMLR — filtering leans more on titles for those years. This is why ICML 2019 shows only 2 papers.
  2. Accepted-papers only. Rejected / withdrawn submissions are not included. Workshops are not covered.
  3. Editorial subjectivity. The 46 legitimate extras vs. 13 borderline chemistry/materials exclusions are judgement calls. See the filter code for the exact rules.
  4. Tag first-match rule. In per-year markdown files, multi-tag papers appear under their first tag only. The complete tag list is preserved in papers_master.json.
  5. NeurIPS 2026 not included. Snapshot taken before the conference ran.
  6. Snapshot date. This is a point-in-time cut; papers added / retracted after the generation date shown at the top of this README are not reflected.

📖 Citation

If you use this corpus, please cite it as:

BioTender (2026). ai-bio-conference-papers: 3,722 AI × biology papers
from ICLR, ICML and NeurIPS (2010–2026). https://biotender.online

Paper titles, abstracts and author names remain the copyright of the original authors and their publishers. This project claims copyright only over the compilation, tag assignment, filter rationale (_tags, _hit_terms, _hits, _keep_reason, _area) and the markdown organisation.


⚖ License

This repository is dual-licensed:

  • Scripts & documentation — MIT (see LICENSE). Applies to scripts/, README.md, CHANGELOG.md.
  • Paper records, markdown, figures & assets — CC BY 4.0 (see LICENSE-DATA). Applies to papers/**/*.md, data/papers_master.{json,csv}, figures/*.{png,svg}, assets/*.png.

Users redistributing this repository must respect the underlying copyright of the paper text itself, which is held by the original authors and publishers.


Part of the BioTender · OSINT curation for AI × Biology

About

3,722 AI × Biology papers from ICLR / ICML / NeurIPS (2010–2026) — browsable by venue & year

Resources

Stars

23 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages