Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
6e37afa
get_df: also fill missing mol
mwinokan Nov 25, 2025
727434d
more fingerprint types
mwinokan Nov 25, 2025
27bc5f1
register_compounds: update aliases
mwinokan Nov 25, 2025
73ae640
lint
mwinokan Nov 25, 2025
3c16a96
merge
mwinokan Nov 25, 2025
f12bd46
RouteSet.reactants
mwinokan Nov 25, 2025
d0c50c5
interaction resolution in memory
mwinokan Nov 26, 2025
f3f4929
SQL formatting
mwinokan Nov 26, 2025
70548c8
get_poses: first implementation
mwinokan Nov 27, 2025
c7f6c09
get_poses: first implementation
mwinokan Nov 27, 2025
91a55ee
calculate-interactions: parallelisation scaffolding
mwinokan Nov 27, 2025
4bb578b
Merge branch 'main' into dev
mwinokan Dec 1, 2025
3037103
Merge remote-tracking branch 'origin/dev' into dev
mwinokan Dec 1, 2025
ade736f
calculate_interactions
mwinokan Dec 1, 2025
e7d6231
add_enamine_quote: more options
mwinokan Dec 1, 2025
7ca75d4
fix sql
mwinokan Dec 1, 2025
032cc62
better debugging
mwinokan Dec 1, 2025
e69dbff
write_reactant_csv: estimate quotes
mwinokan Dec 1, 2025
d8bc871
Merge branch 'dev' of github.com:mwinokan/HIPPO into dev
mwinokan Dec 1, 2025
8e7dbed
fix broken tests
mwinokan Dec 2, 2025
f4fedca
postgres testing
mwinokan Dec 2, 2025
8b225d8
postgres development
mwinokan Dec 2, 2025
63102f4
variable configuration
mwinokan Dec 2, 2025
8938e91
postgres development
mwinokan Dec 2, 2025
b1ba4e4
fix sqlite
mwinokan Dec 2, 2025
23bbc0c
docstrings
mwinokan Dec 2, 2025
c61ac22
docstrings
mwinokan Dec 2, 2025
5c9bc1e
postgres dev
mwinokan Dec 2, 2025
2ceeda9
fix sqlite test behaviour
mwinokan Dec 2, 2025
940a530
Create indexes #246
mwinokan Dec 5, 2025
3d4aa1b
postgres dev #245
mwinokan Dec 5, 2025
ae6662e
postgres dev #245
mwinokan Dec 5, 2025
b972b7b
copy_temp_interactions: support OR IGNORE #245
mwinokan Dec 5, 2025
69f9da9
insert_features
mwinokan Dec 7, 2025
e3b5743
resolve: summary is broken with in-memory DB
mwinokan Dec 7, 2025
8934cec
improve interaction profiling performance
mwinokan Dec 7, 2025
3621f23
postgres subsite support #245
mwinokan Dec 8, 2025
c2e7719
fix test_compound #245
mwinokan Dec 8, 2025
513590a
sqlite backwards compatibility #245
mwinokan Dec 8, 2025
59d7add
execute: raise error
mwinokan Dec 8, 2025
3548dd4
select_where: debug option
mwinokan Dec 8, 2025
5177baa
InteractionSet: postgres support #245
mwinokan Dec 8, 2025
593181c
column_names
mwinokan Dec 8, 2025
d4d4c11
towards migration #245
mwinokan Dec 8, 2025
9e9cb16
postgres readme
mwinokan Dec 9, 2025
fbc9094
test config
mwinokan Dec 9, 2025
69d9b13
get_pose_id_obj_dict: fix syntax
mwinokan Dec 9, 2025
82c3620
fix syntax
mwinokan Dec 9, 2025
d723630
list of tables
mwinokan Dec 9, 2025
5c28122
schema helper functions
mwinokan Dec 9, 2025
0e92390
raise error if 'mol' datatype is missing
mwinokan Dec 9, 2025
ad64bec
get_price: handle deleted quotes
mwinokan Dec 9, 2025
f4c9938
PoseTable.__getitem__: support numpy arrays
mwinokan Dec 9, 2025
f746013
move route registration to db file
mwinokan Dec 9, 2025
34fb40a
handle missing routes
mwinokan Dec 9, 2025
62f155d
lint
mwinokan Dec 9, 2025
0fa2c9a
rdkit functions must be in hippo schema
mwinokan Dec 9, 2025
65bfb25
PoseTable.__iter__: fix iteration following pose deletion
mwinokan Dec 9, 2025
d1743eb
Recipe.calculate_missing_routes: only process products with no routes…
mwinokan Dec 9, 2025
c470f6f
get_df: expand tags option
mwinokan Dec 9, 2025
d35d3c5
ReactionSet.__sub__
mwinokan Dec 9, 2025
261fe46
Compound.scaffolds: fix name
mwinokan Dec 10, 2025
1e30a76
Compound.scaffolds: fix name
mwinokan Dec 10, 2025
306eeb9
RouteSet: progress bar option in factories
mwinokan Dec 10, 2025
cb02d43
CompoundSet.split_by_scaffolds and .despaghettify
mwinokan Dec 10, 2025
552b015
get_route_id_reactant_ids_dict
mwinokan Dec 10, 2025
5a6a881
CompoundSet.despaghettify: improved performance
mwinokan Dec 10, 2025
e08fad0
CompoundSet.despaghettify: register_missing_routes
mwinokan Dec 10, 2025
540ca5b
Compound.formula: fix postgres implementation
mwinokan Dec 10, 2025
2eea5e4
Recipe.write_reactant_csv: reaction_type_counts option
mwinokan Dec 10, 2025
7efd517
migration progress #245
mwinokan Dec 11, 2025
3387537
fix init error
mwinokan Dec 11, 2025
2715d66
migration dev #245
mwinokan Dec 11, 2025
e5c7789
format
mwinokan Dec 11, 2025
b13d046
first draft of migration #245
mwinokan Dec 11, 2025
456ee1e
postgres dev #245
mwinokan Dec 12, 2025
0903031
add psycopg requirement
mwinokan Dec 12, 2025
df02eeb
TagTable.summary: postgres support #245
mwinokan Dec 12, 2025
0e4de7a
TagTable.summary: postgres support #245
mwinokan Dec 12, 2025
ebfc886
TagTable.summary: postgres support #245
mwinokan Dec 12, 2025
00d388a
TagTable.summary & tests
mwinokan Dec 12, 2025
953e0da
attempt at renaming pose paths with regex #245
mwinokan Dec 12, 2025
0dcca3c
postgres images #245
mwinokan Dec 12, 2025
99cb030
backup: return destination
mwinokan Dec 12, 2025
66f3bfd
close database when complete #245
mwinokan Dec 12, 2025
92e2d41
add port
mwinokan Dec 15, 2025
53a79fa
more postgres support #245
mwinokan Dec 15, 2025
5e49ba8
fix tests
mwinokan Dec 15, 2025
10e3e16
update readme
mwinokan Dec 15, 2025
20df8b3
update docstring
mwinokan Dec 15, 2025
902f199
remove postgres catch
mwinokan Dec 15, 2025
9fc36a4
Merge branch 'postgres' into dev
mwinokan Dec 15, 2025
c344339
docs update
mwinokan Dec 15, 2025
b3dc9ca
update API docs
mwinokan Dec 15, 2025
fdd43f0
update quotes on bulk insertion #245
mwinokan Dec 15, 2025
9a11dfd
Pose.calculate_interactions: in_memory_db #248
mwinokan Dec 18, 2025
828c392
Download Fragalysis data when running pytest
Jnelen Jan 22, 2026
bf4985c
Implemented fix to ensure the correct ref_pdbs are exported, as sugge…
Jnelen Jan 22, 2026
4615863
Merge pull request #250 from Jnelen/dev_openbind
mwinokan Jan 22, 2026
ab74317
stashing
kaliif Feb 27, 2026
66733a3
fix: load_sdf pose-compound mapping issue (#2033)
kaliif Mar 3, 2026
42930fa
fix: wrong use of string formatting (#2026)
kaliif Mar 3, 2026
9378917
fix: python-sqlite3 data type mismatch
kaliif Mar 3, 2026
9f5f46f
Merge pull request #2 from xchem/m2ms-2033-table-reference
laurenreid1 Mar 3, 2026
d3d9d1b
Merge pull request #3 from xchem/m2ms-2026-register-reaction
laurenreid1 Mar 3, 2026
605e153
Merge pull request #4 from xchem/m2ms-2069-incorrect-data-type
laurenreid1 Mar 3, 2026
5bf7f9c
Merge dev branch to main
kaliif Mar 3, 2026
deec147
ci: Release modifications
Mar 3, 2026
f34b196
ci: More work on CI
Mar 3, 2026
d5c6367
ci: Disable test jobn (it doesn't work as written)
Mar 3, 2026
1bb256e
ci: Better publishing
Mar 4, 2026
11dfc56
build: Remove version from pyproject.toml
Mar 4, 2026
1c617ae
ci: Use of uv
Mar 4, 2026
6c6fa32
ci: Restore version
Mar 4, 2026
e422ae4
ci: Better lint and test scheduling
Mar 4, 2026
d76f4b7
ci: Include branches
Mar 4, 2026
204ad2e
docs: README tweak
Mar 4, 2026
42825a0
docs: Fix test badge
Mar 4, 2026
1f64b61
docs: Note about releases
Mar 4, 2026
0325b89
Merge pull request #6 from xchem/m2ms-2076
alanbchristie Mar 4, 2026
cfa142f
Change deprecated/remove sqlite3.version to sqlite3.sqlite_version
cvallee Mar 4, 2026
8fafd2c
fix: postgres dev env working
kaliif Mar 4, 2026
6d318c3
Merge branch 'main' into fix_postgres_build
kaliif Mar 4, 2026
1ad3982
add_hits() now accept .sdf that doesn't match Fragalysis pattern
cvallee Mar 4, 2026
207f4bb
feat: local postgres development environment
kaliif Mar 5, 2026
b6c9e3b
Fixing thread issue for interactive() in Jupyter Notebook
cvallee Mar 5, 2026
9def8d4
Making sure check_same_thread=False is safe to use
cvallee Mar 5, 2026
16fb460
Making sure check_same_thread=False is safe to use (linted)
cvallee Mar 5, 2026
72713d5
Merge pull request #8 from xchem/fix_postgres_build
kaliif Mar 6, 2026
09c5994
Merge pull request #7 from cvallee/cedric-dev
laurenreid1 Mar 6, 2026
3b69f61
feat: designdb docker image and correspoinding compose file
kaliif Mar 10, 2026
45a6a23
fix: deleted unnecessary pg_setup, handled by the new image
kaliif Mar 10, 2026
43071ab
fix: clean up compose file
kaliif Mar 10, 2026
bf998e4
Merge pull request #9 from xchem/postgres_designdb_image
kaliif Mar 10, 2026
86d0ff3
feat: new dependency management toolchain
kaliif Mar 11, 2026
e29185a
fix: added .dockerignore
kaliif Mar 11, 2026
3519fb3
feat: schema working
kaliif Mar 14, 2026
01e6c70
fix: worflow working (mostly) in both sqlite and postgres
kaliif Apr 10, 2026
59323a2
fix: directory rename
kaliif Apr 10, 2026
a3aa8af
fix: directory rename vol 2
kaliif Apr 10, 2026
a75852d
fix: workflow working as written
kaliif Apr 10, 2026
037a8d4
fix: final minor issues, ready to go to testing
kaliif Apr 23, 2026
cfa6417
fix: adding compose file
kaliif Apr 23, 2026
110b08d
fix: specify conda-forge in Dockerfile
kaliif Apr 28, 2026
2f32be4
fix: remove unnecessary dependencies and fix dockerfile
kaliif Apr 28, 2026
c2dd6da
fix: specify platform info in pyproject.toml
kaliif Apr 29, 2026
2ef29e0
fix: explicit venv creation
kaliif Apr 30, 2026
bc21134
fix: prevent compose file from overwriting container
kaliif Apr 30, 2026
3d04921
fix: rich -> mrich in sets.pose
kaliif Apr 30, 2026
3a98aed
fix: testing-compatible compose file
kaliif May 13, 2026
005e744
refactoring
kaliif May 15, 2026
ce4e5be
fix: Recipe.from_compound working
kaliif May 19, 2026
d28f4c5
Merge pull request #13 from xchem/m2ms-2184-route-from-compounds
kaliif May 19, 2026
f5f5bc4
fix: 2084, add missing files
kaliif May 20, 2026
b4db36e
fix: some linting errors
kaliif May 20, 2026
86c6af2
fix: circular import
kaliif May 20, 2026
bcdcb80
stashing
kaliif May 22, 2026
13a4170
feat: add alignment check to pose creation
kaliif May 22, 2026
cea35e6
Merge pull request #14 from xchem/m2ms-2094-unique-rmsd-poses
kaliif May 22, 2026
14e18d9
fix: mostly fixes to get the wf2 working (add_hits)
kaliif May 27, 2026
f32d797
fix: data loading part of the workflow
kaliif Jun 2, 2026
00cfb02
Merge pull request #15 from xchem/m2ms-2230-wf2
kaliif Jun 2, 2026
cede087
feat: ISPyB project permissions
kaliif Jun 3, 2026
b45d5b4
fix: SynchronousOnlyOperation when working in notebooks
kaliif Jun 4, 2026
0b81fd1
fix: partially implemented recipe
kaliif Jun 4, 2026
2160440
Merge pull request #16 from xchem/m2ms-2231-wf2
kaliif Jun 4, 2026
689dde3
feat: Fragalysis download service + apo_desolv HIPPO helper
kaliif Jun 10, 2026
21d184b
Merge branch 'm2ms-2130-ispyb-auth' into m2ms-2231-wf2
kaliif Jun 10, 2026
c1ac39d
feat: download and auth
kaliif Jun 10, 2026
c0fdbaa
feat: downloadable hit data
kaliif Jun 12, 2026
8182a4c
fix: rmsd calculation
kaliif Jun 15, 2026
b78b76a
Merge branch 'm2ms-2231-wf2' into django_refactor
kaliif Jun 16, 2026
757eae6
fix: docs
kaliif Jun 16, 2026
98f34db
stashing
kaliif Jun 16, 2026
cb1ccbd
fix: quote fixes
kaliif Jun 17, 2026
d8353c8
Merge branch 'm2ms-2231-wf2' into django_refactor
kaliif Jun 17, 2026
ff96b71
feat: wf2 mostly working
kaliif Jun 19, 2026
27e3428
feat: wf2 seemingly working
kaliif Jun 22, 2026
4278398
fix: linting
kaliif Jun 23, 2026
80d1042
fix: github actions
kaliif Jun 23, 2026
b1a06dc
Merge pull request #17 from xchem/m2ms-2231-wf2
kaliif Jun 23, 2026
6a3dd81
fix: allow access to host machine
kaliif Jun 23, 2026
f309d7e
fix: new built-in functions to disable and enable triggers on load_sdf
kaliif Jun 25, 2026
736bea1
fix: attempt to fix dat loading bug
kaliif Jun 29, 2026
0577163
Merge pull request #19 from xchem/m2ms-2284-compound-doesnotexist
kaliif Jun 29, 2026
731aed1
feat: port over remaining methods from CompoundSet
kaliif Jul 1, 2026
7665874
feat: more functions ported over (poseset)
kaliif Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# =========================================================
# .dockerignore
# =========================================================

# Environment and secrets
.env
.env.*
*.env

# Logs
*.log
*.log.*

# Git
.git/
.gitignore

# IDE and OS
.vscode/
.idea/
.DS_Store
Thumbs.db
._*
*~
\#*#
\#*


# Temporary files
*.tmp
*.temp
*.bak
*.backup

# Virtual environment
.venv
venv

#Python cache files
__pycache__
*.pyc

dist
build
12 changes: 0 additions & 12 deletions .github/workflows/black.yml

This file was deleted.

25 changes: 25 additions & 0 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: Lint

on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
enable-cache: true
- name: Install dependencies
run: uv sync --frozen
- name: Repeat pre-commit
run: uv run pre-commit run --all-files
42 changes: 0 additions & 42 deletions .github/workflows/pytest.yml

This file was deleted.

39 changes: 0 additions & 39 deletions .github/workflows/python-publish.yml

This file was deleted.

58 changes: 58 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
# The standard xchem Python package release process.
# Run on 'Release' and published to PyPI as a 'trusted' publisher.
#
# See https://docs.pypi.org/trusted-publishers/creating-a-project-through-oidc/
# See https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
name: Release

on:
release:
types:
- published

jobs:
build:
name: Build distribution
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install build package
run: |
python3 -m pip install --upgrade pip
python3 -m pip install uv==0.10.6 --user
- name: Build
run: |
uv version ${{ github.ref_name }}
uv build
- name: Store the distribution
uses: actions/upload-artifact@v5
with:
name: python-package-distribution
path: dist/

publish:
name: Publish to PyPI
needs:
- build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/xchem-hippo
permissions:
id-token: write
steps:
- name: Download distribution
uses: actions/download-artifact@v6
with:
name: python-package-distribution
path: dist/
- name: Publish
uses: pypa/gh-action-pypi-publish@release/v1
36 changes: 36 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Test

on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest
# Test is broken - fix and remove this condition
if: false
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install rdkit==2023.9.1 molparse>=0.0.13 tqdm jupyterlab pycule chardet pandas
conda install -c conda-forge -y chemicalite
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test
run: |
#pytest
cd tests
python test_A71EV2A.py
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,10 @@ celerybeat.pid
.venv
env/
venv/

# Local docker-compose overrides (per-developer, not shared)
docker-compose.override.yaml
docker-compose.override.yml
ENV/
env.bak/
venv.bak/
Expand Down
51 changes: 42 additions & 9 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
---

repos:
# Using this mirror lets us use mypyc-compiled black, which is about 2x faster
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 25.1.0
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: black
# It is recommended to specify the latest version of Python
# supported by your project here, or alternatively use
# pre-commit's default_language_version, see
# https://pre-commit.com/#top_level-default_language_version
language_version: python3
- id: check-yaml
- id: check-case-conflict
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
- id: detect-private-key
- id: end-of-file-fixer
- id: trailing-whitespace
args:
- --markdown-linebreak-ext=md


# project tools using uv local environment
- repo: local
hooks:

- id: ruff
name: ruff lint
entry: uv run ruff check --fix
language: system
types: [python]

- id: ruff-format
name: ruff format
entry: uv run ruff format
language: system
types: [python]

# - id: mypy
# name: mypy
# entry: uv run mypy
# language: system
# pass_filenames: false

# - id: ty-check
# name: ty check
# entry: uv run ty check
# language: system
# pass_filenames: false
50 changes: 50 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
FROM quay.io/jupyter/minimal-notebook:2025-04-14
LABEL authors="Max Winokan"


# Ported from Max's Dockerfile to support local development

# combines conda and pip environments. There's a conflict somewhere
# which I haven't resolved (TODO) between something in conda and pip
# envs, so cannot use a single env

# this is what I'm stuck on. Project depends on numpy v1.23 (why?) and
# I can't go over 3.12
ARG PYTHON_VERSION=3.12


WORKDIR "/home/code/HIPPO"
# WORKDIR "/home/code/HIPPO/data"
# WORKDIR "/home/code/HIPPO/hippo"

USER 0


# install package dependencies into different virtual env
COPY uv.lock pyproject.toml ./
RUN pip install --upgrade pip && python -m pip install uv

# install all dependencies into active environment without updating lockfile
# RUN uv sync --frozen --active
RUN uv venv /home/code/HIPPO/.venv
RUN uv sync --frozen --python /home/code/HIPPO/.venv/bin/python

# now add venv python to path so conda python can find it
ENV PATH="/home/code/HIPPO/.venv/bin:$PATH"
ENV PYTHONPATH="/home/code/HIPPO/.venv/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"


# patch rich
RUN python -c "import mrich; mrich.patch_rich_jupyter_margins()"


# notebooks
RUN chown ${NB_USER} "/home/code" && sudo apt update && sudo apt install screen -y

# force numpy update. since there's now a new venv, make sure conda is
# used (othewise numpy will be invisible)
RUN uv pip install --upgrade numpy==2.4.4
USER ${NB_USER}


# WORKDIR "/home/code/HIPPO"
Loading
Loading