Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
fe79f17
Add plumbdb package files
ianmkenney Oct 27, 2025
180023f
Add asapdiscovery dependency
ianmkenney Oct 27, 2025
9a7be70
Expose cli entrypoint: plumbline
ianmkenney Oct 27, 2025
a7b78f9
Lower Python version constraint
ianmkenney Oct 27, 2025
37acd2d
Add test module
ianmkenney Oct 27, 2025
ce3972c
Add developer docs
ianmkenney Oct 27, 2025
487dd06
Trim package README
ianmkenney Oct 27, 2025
c1b9beb
Add ruff to dev tools
ianmkenney Oct 27, 2025
b83f2e9
Replicate commands from old bin/ directory
ianmkenney Oct 27, 2025
b453eef
Add generate_constrained_ligand_poses command to cli
ianmkenney Oct 27, 2025
9ce41a7
Add stubs for unimplemented CLI commands
ianmkenney Oct 27, 2025
cc6bf54
Fix variable name usage
ianmkenney Oct 28, 2025
e2518b6
Implement prep_cif command
ianmkenney Oct 28, 2025
c50aecc
Implement process_bindingdb command
ianmkenney Oct 28, 2025
c66bdaf
Implement visualize-network command
ianmkenney Oct 28, 2025
86466e9
Updated nextflow to use new plumbline command
ianmkenney Oct 28, 2025
a68166e
Replace tabs with spaces
ianmkenney Oct 28, 2025
7e36e28
added openeye to conda env
arianabrenner Nov 14, 2025
4135d70
added output option
arianabrenner Nov 14, 2025
cbc3866
renamed PDBID field
arianabrenner Dec 11, 2025
7ef7ca9
add prep-protein-for-docking step to avoid using the asapdiscovery cl…
apayne97 Dec 11, 2025
1ffd0b8
add small command to rename title of ligands so that the openfe cli w…
apayne97 Dec 11, 2025
aa4fa6c
renamed field BindingDB monomerid to BindingDB MonomerID
arianabrenner Dec 11, 2025
4ef1340
Merge branch 'plumbdb_pkg' of github.com:ianmkenney/plumb into plumbd…
arianabrenner Dec 11, 2025
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
41 changes: 29 additions & 12 deletions modules.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ process PROCESS_BINDINGDB {

script:
"""
python "${params.scripts}/process_bindingdb.py" --input-dir "${params.bindingDB}"
plumbline process-bindingdb \
--input-directory "${params.bindingDB}" \
--output-directory "./"
"""
}
process DOWNLOAD_PDB {
Expand All @@ -30,7 +32,8 @@ process DOWNLOAD_PDB {

script:
"""
python "${params.scripts}/download_pdb.py" --input-json "${input_json}"
plumbline download-pdb \
--input-file "${input_json}"
"""
}
process PREP_CIF {
Expand All @@ -51,7 +54,11 @@ process PREP_CIF {

script:
"""
python "${params.scripts}/prep_cif.py" --input-json "${input_json}" --input-cif "${input_cif}" --fasta-sequence "${params.fasta}"
plumbline prep-cif \
--input-json "${input_json}" \
--input-cif "${input_cif}" \
--fasta-sequence "${params.fasta}" \
--output-directory "./"
"""
}
process PREP_FOR_DOCKING {
Expand All @@ -71,7 +78,10 @@ process PREP_FOR_DOCKING {

script:
"""
asap-cli protein-prep --target SARS-CoV-2-Mpro --pdb-file "${prepped_pdb}" --output-dir "./"
plumbline prep-protein-for-docking \
--target SARS-CoV-2-Mpro \
--pdb-file "${prepped_pdb}" \
--output-dir "./"
"""
}
process ASSESS_PREPPED_PROTEIN {
Expand All @@ -88,7 +98,9 @@ process ASSESS_PREPPED_PROTEIN {

script:
"""
python "${params.scripts}/assess_prepped_protein.py" --input-oedu "${design_unit}"
plumbline assess-prepped-protein \
--input-file "${design_unit}" \
--output-directory "./"
"""
}
process GENERATE_CONSTRAINED_LIGAND_POSES {
Expand All @@ -105,7 +117,10 @@ process GENERATE_CONSTRAINED_LIGAND_POSES {

script:
"""
python "${params.scripts}/generate_constrained_ligand_poses.py" --input-sdf "${params.congenericSeries}" --prepped-schema "${prepped_complex_json_schema}"
plumbline generate-constrained-ligand-poses \
--input-sdf "${params.congenericSeries}" \
--prepped-schema "${prepped_complex_json_schema}" \
--output-directory "./"
"""

}
Expand All @@ -127,10 +142,10 @@ process MAKE_FEC_INPUTS {
asap-cli alchemy create fecs-workflow.json

asap-cli alchemy plan \
-f fecs-workflow.json \
--name ${uuid}_plumb_alchemiscale_network \
--receptor "${prepped_complex}" \
--ligands "${posed_ligands}" \
-f fecs-workflow.json \
--name ${uuid}_plumb_alchemiscale_network \
--receptor "${prepped_complex}" \
--ligands "${posed_ligands}" \
"""
}
process VISUALIZE_NETWORK {
Expand All @@ -147,6 +162,8 @@ process VISUALIZE_NETWORK {

script:
"""
python "${params.scripts}/visualize_network.py" --network-graphml "${network_graph}"
plumbline visualize-network \
--network-graphml "${network_graph}" \
--output-directory "./"
"""
}
}
11 changes: 11 additions & 0 deletions pkg/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# plumbdb

## Installation

Since `plumbdb` is not yet registered with conda-forge, follow the developer installation instructions at [docs/developer.md](docs/developer.md#installation).

## Usage

### Command line

`plumbdb` is usable via command line through the `plumbline` CLI application.
19 changes: 19 additions & 0 deletions pkg/docs/developer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Developer documentation

## Installation

`plumbdb` can currently only be installed via its python source with its dependencies handled by `conda`.

```bash
conda create -n plumbdb_dev -f env.yaml
conda activate plumbdb_dev
pip install -e ".[dev]"
```

## Running tests

Tests are performed with [`pytest`](https://docs.pytest.org/), which is automatically installed as part of the `test` dependency group specified in `pyproject.toml`. With the test environment active and from within `plumb/pkg/`, run:

```bash
python -m pytest src/
```
11 changes: 11 additions & 0 deletions pkg/env.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: plumbdb
channels:
- conda-forge
- openeye

dependencies:
- python=3.11
- openeye-toolkits
- asapdiscovery
- openfe
- click
31 changes: 31 additions & 0 deletions pkg/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[build-system]
requires = [
"setuptools>=77.0.3",
"setuptools-scm>=8",
]
build-backend = "setuptools.build_meta"

[project]
name = "plumbdb"
description = ""
readme = "README.md"
authors = [
{name = "Ariana Brenner Clerkin", email = "ariana.clerkin@choderlab.org"}
]
license = "MIT"
classifiers = [
"Intended Audience :: Science/Research",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"Topic :: Scientific/Engineering :: Chemistry",
]
requires-python = ">= 3.11"
dynamic = ["version"]

[project.scripts]
plumbline = "plumbdb.cli:cli"

[project.optional-dependencies]
test = ["pytest"]
dev = ["pytest", "ruff"]
Empty file added pkg/src/plumbdb/__init__.py
Empty file.
Loading
Loading