{"id":50677336,"url":"https://github.com/yufree/reactomics","last_synced_at":"2026-06-08T16:06:29.206Z","repository":{"id":355448810,"uuid":"1223114013","full_name":"yufree/reactomics","owner":"yufree","description":"Collections of reactomics papers","archived":false,"fork":false,"pushed_at":"2026-05-18T03:27:02.000Z","size":760,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-18T05:36:55.972Z","etag":null,"topics":["mass-spectrometry","metabolomics","pmd","reactomics"],"latest_commit_sha":null,"homepage":"https://yufree.github.io/reactomics/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yufree.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-28T02:47:32.000Z","updated_at":"2026-05-18T03:34:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/yufree/reactomics","commit_stats":null,"previous_names":["yufree/reactomics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yufree/reactomics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yufree%2Freactomics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yufree%2Freactomics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yufree%2Freactomics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yufree%2Freactomics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yufree","download_url":"https://codeload.github.com/yufree/reactomics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yufree%2Freactomics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34069546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mass-spectrometry","metabolomics","pmd","reactomics"],"created_at":"2026-06-08T16:06:23.618Z","updated_at":"2026-06-08T16:06:29.200Z","avatar_url":"https://github.com/yufree.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reactomics\n\nA self-updating textbook-style webpage for **PMD (Paired Mass Distance)-based reactomics** — the study of chemical reactions in biological and environmental systems using mass spectrometry data.\n\n## What this is\n\nThe site auto-collects new papers monthly from PubMed and uses an LLM to curate the most textbook-worthy updates. The main page (`index.html`) is a static, readable introduction to reactomics; the monthly updates section surfaces field-shaping developments as they are published.\n\nThe concept is introduced in [Reactomics: using mass spectrometry as a chemical reaction detector](https://doi.org/10.1038/s42004-020-00403-z) (Communications Chemistry, 2020) and implemented in the [`pmd` R package](https://cran.r-project.org/package=pmd).\n\n## Repository structure\n\n```\nreactomics.md            main textbook content (source of truth)\nindex.html               rendered HTML (generated)\nreactomics.html          rendered HTML (generated)\nupdates/YYYY-MM.html     monthly archive pages (generated)\ndata/\n  source_queries.json    PubMed search queries\n  papers.json            raw monthly fetch output (gitignored)\n  selected-updates.json  LLM-curated monthly selection\n  monthly-updates.json   cumulative history\nscripts/\n  fetch_monthly_papers.py   fetch papers from PubMed\n  select_monthly_updates.py score and LLM-curate candidates\n  update_site.py            write updates into reactomics.md\n  render_site.py            render markdown to HTML\n.github/workflows/\n  monthly-update.yml        GitHub Actions cron workflow\n```\n\n## Running locally\n\n```bash\npip install -r requirements.txt\n\n# Fetch papers for a specific month (omit TARGET_MONTH for previous month)\nTARGET_MONTH=2026-03 python scripts/fetch_monthly_papers.py\n\n# Score and select (set LLM_API_KEY + LLM_MODEL for LLM curation)\npython scripts/select_monthly_updates.py\n\n# Update markdown and archive\npython scripts/update_site.py\n\n# Render HTML\npython scripts/render_site.py\n```\n\n## GitHub Actions setup\n\nThe workflow runs automatically on the 3rd of each month. To enable LLM curation, add these secrets/variables to the repository:\n\n| Name | Where | Description |\n|------|-------|-------------|\n| `LLM_API_KEY` | Secret | API key for your LLM provider |\n| `LLM_MODEL` | Secret | Model name, e.g. `claude-sonnet-4-6` or `gpt-4o` |\n| `LLM_BASE_URL` | Variable | Base URL (default: `https://api.openai.com/v1`; for Claude use `https://api.anthropic.com/v1`) |\n\nThe workflow also supports manual dispatch with an optional `target_month` (YYYY-MM) to rebuild any past month.\n\n## Hosting\n\nPush to GitHub and enable GitHub Pages from the repository root to host the site at `https://\u003cuser\u003e.github.io/\u003crepo\u003e/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyufree%2Freactomics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyufree%2Freactomics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyufree%2Freactomics/lists"}