bblean 0.6.0b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bblean-0.6.0b1/.cruft.json +20 -0
- bblean-0.6.0b1/.flake8 +11 -0
- bblean-0.6.0b1/.github/CODEOWNERS +1 -0
- bblean-0.6.0b1/.github/workflows/ci-cpp.yaml +63 -0
- bblean-0.6.0b1/.github/workflows/ci.yaml +155 -0
- bblean-0.6.0b1/.github/workflows/upload-to-pypi.yaml +134 -0
- bblean-0.6.0b1/.gitignore +95 -0
- bblean-0.6.0b1/.pre-commit-config.yaml +71 -0
- bblean-0.6.0b1/LICENSE +48 -0
- bblean-0.6.0b1/LICENSES/BSD-3-Clause.txt +29 -0
- bblean-0.6.0b1/LICENSES/GPL-3.0-only.txt +674 -0
- bblean-0.6.0b1/PKG-INFO +283 -0
- bblean-0.6.0b1/README.md +240 -0
- bblean-0.6.0b1/bblean/__init__.py +22 -0
- bblean-0.6.0b1/bblean/_config.py +61 -0
- bblean-0.6.0b1/bblean/_console.py +187 -0
- bblean-0.6.0b1/bblean/_legacy/__init__.py +0 -0
- bblean-0.6.0b1/bblean/_legacy/bb_int64.py +1252 -0
- bblean-0.6.0b1/bblean/_legacy/bb_uint8.py +1144 -0
- bblean-0.6.0b1/bblean/_memory.py +198 -0
- bblean-0.6.0b1/bblean/_merges.py +212 -0
- bblean-0.6.0b1/bblean/_py_similarity.py +278 -0
- bblean-0.6.0b1/bblean/_timer.py +42 -0
- bblean-0.6.0b1/bblean/_version.py +34 -0
- bblean-0.6.0b1/bblean/analysis.py +258 -0
- bblean-0.6.0b1/bblean/bitbirch.py +1437 -0
- bblean-0.6.0b1/bblean/cli.py +1854 -0
- bblean-0.6.0b1/bblean/csrc/README.md +1 -0
- bblean-0.6.0b1/bblean/csrc/similarity.cpp +521 -0
- bblean-0.6.0b1/bblean/fingerprints.py +424 -0
- bblean-0.6.0b1/bblean/metrics.py +199 -0
- bblean-0.6.0b1/bblean/multiround.py +489 -0
- bblean-0.6.0b1/bblean/plotting.py +479 -0
- bblean-0.6.0b1/bblean/similarity.py +304 -0
- bblean-0.6.0b1/bblean/sklearn.py +203 -0
- bblean-0.6.0b1/bblean/smiles.py +61 -0
- bblean-0.6.0b1/bblean/utils.py +130 -0
- bblean-0.6.0b1/bblean-demo-v2.gif +0 -0
- bblean-0.6.0b1/bblean-demo.cast +179 -0
- bblean-0.6.0b1/bblean.egg-info/PKG-INFO +283 -0
- bblean-0.6.0b1/bblean.egg-info/SOURCES.txt +90 -0
- bblean-0.6.0b1/bblean.egg-info/dependency_links.txt +1 -0
- bblean-0.6.0b1/bblean.egg-info/entry_points.txt +2 -0
- bblean-0.6.0b1/bblean.egg-info/requires.txt +14 -0
- bblean-0.6.0b1/bblean.egg-info/top_level.txt +1 -0
- bblean-0.6.0b1/docs/src/_static/api.svg +1 -0
- bblean-0.6.0b1/docs/src/_static/installing.svg +1 -0
- bblean-0.6.0b1/docs/src/_static/logo-dark-bw.svg +1338 -0
- bblean-0.6.0b1/docs/src/_static/logo-light-bw.svg +1338 -0
- bblean-0.6.0b1/docs/src/_static/publications.svg +1 -0
- bblean-0.6.0b1/docs/src/_static/style.css +29 -0
- bblean-0.6.0b1/docs/src/_static/user-guide.svg +2 -0
- bblean-0.6.0b1/docs/src/_templates/module.rst +66 -0
- bblean-0.6.0b1/docs/src/api-reference.rst +20 -0
- bblean-0.6.0b1/docs/src/conf.py +128 -0
- bblean-0.6.0b1/docs/src/index.rst +105 -0
- bblean-0.6.0b1/docs/src/installing.rst +40 -0
- bblean-0.6.0b1/docs/src/publications.rst +28 -0
- bblean-0.6.0b1/docs/src/user-guide/linux_memory_setup.rst +113 -0
- bblean-0.6.0b1/docs/src/user-guide/notebooks/bitbirch_best_practices.ipynb +526 -0
- bblean-0.6.0b1/docs/src/user-guide/notebooks/bitbirch_quickstart.ipynb +525 -0
- bblean-0.6.0b1/docs/src/user-guide/parameters.rst +101 -0
- bblean-0.6.0b1/docs/src/user-guide.rst +16 -0
- bblean-0.6.0b1/environment.yaml +59 -0
- bblean-0.6.0b1/examples/biogen_logS.csv +2174 -0
- bblean-0.6.0b1/examples/bitbirch_best_practices.ipynb +526 -0
- bblean-0.6.0b1/examples/bitbirch_quickstart.ipynb +525 -0
- bblean-0.6.0b1/examples/chembl-33-natural-products-subset.smi +64086 -0
- bblean-0.6.0b1/examples/dataset_splitting.ipynb +1214 -0
- bblean-0.6.0b1/pyproject.toml +86 -0
- bblean-0.6.0b1/setup.cfg +4 -0
- bblean-0.6.0b1/setup.py +66 -0
- bblean-0.6.0b1/tests/chembl-sample-3k.smi +3000 -0
- bblean-0.6.0b1/tests/chembl-sample-bad.smi +3000 -0
- bblean-0.6.0b1/tests/legacy_merges.py +66 -0
- bblean-0.6.0b1/tests/legacy_metrics.py +250 -0
- bblean-0.6.0b1/tests/test_bb_consistency.py +151 -0
- bblean-0.6.0b1/tests/test_cli.py +449 -0
- bblean-0.6.0b1/tests/test_fake_fps.py +30 -0
- bblean-0.6.0b1/tests/test_fingerprints.py +95 -0
- bblean-0.6.0b1/tests/test_global_clustering.py +61 -0
- bblean-0.6.0b1/tests/test_import_bblean.py +2 -0
- bblean-0.6.0b1/tests/test_merges.py +209 -0
- bblean-0.6.0b1/tests/test_metrics.py +47 -0
- bblean-0.6.0b1/tests/test_multiround.py +201 -0
- bblean-0.6.0b1/tests/test_refine.py +221 -0
- bblean-0.6.0b1/tests/test_regression.py +101 -0
- bblean-0.6.0b1/tests/test_sampling.py +2640 -0
- bblean-0.6.0b1/tests/test_similarity.py +284 -0
- bblean-0.6.0b1/tests/test_simple.py +39 -0
- bblean-0.6.0b1/tests/test_sklearn.py +163 -0
- bblean-0.6.0b1/tests/test_utils.py +17 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "git@github.com:IgnacioJPickering/cookiecutter-pycargo",
|
|
3
|
+
"commit": "5d9ffa2461db9a78fcbab0194efefb7000d85d4e",
|
|
4
|
+
"checkout": null,
|
|
5
|
+
"context": {
|
|
6
|
+
"cookiecutter": {
|
|
7
|
+
"access": "private",
|
|
8
|
+
"repo_name": "bbtools",
|
|
9
|
+
"package_name": "bbtools",
|
|
10
|
+
"command": "bbtools",
|
|
11
|
+
"author_name": "Ignacio Pickering",
|
|
12
|
+
"author_git_profile": "IgnacioJPickering",
|
|
13
|
+
"author_email": "ign.pickering@gmail.com",
|
|
14
|
+
"python_version_minor": "10",
|
|
15
|
+
"_template": "git@github.com:IgnacioJPickering/cookiecutter-pycargo",
|
|
16
|
+
"_commit": "5d9ffa2461db9a78fcbab0194efefb7000d85d4e"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"directory": null
|
|
20
|
+
}
|
bblean-0.6.0b1/.flake8
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @IgnacioJPickering
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: ci-cpp
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
pull_request:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
schedule:
|
|
10
|
+
- cron: '0 0 * * *'
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
PYTHON_VERSION: '3.11'
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
cpp-tests:
|
|
17
|
+
strategy:
|
|
18
|
+
matrix:
|
|
19
|
+
os: [ubuntu-latest, macos-latest]
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
steps:
|
|
22
|
+
- name: checkout-repo
|
|
23
|
+
uses: actions/checkout@v5
|
|
24
|
+
|
|
25
|
+
- name: setup-python
|
|
26
|
+
uses: actions/setup-python@v6
|
|
27
|
+
with:
|
|
28
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
29
|
+
|
|
30
|
+
- name: install-repo
|
|
31
|
+
run: |
|
|
32
|
+
python -m pip install --upgrade pip
|
|
33
|
+
pip install pytest pytest-subtests inline-snapshot
|
|
34
|
+
BITBIRCH_BUILD_NATIVE=1 BITBIRCH_BUILD_CPP=1 pip install --verbose .
|
|
35
|
+
|
|
36
|
+
- name: run-pytest
|
|
37
|
+
run: BITBIRCH_CANT_SKIP_CPP_TESTS=1 pytest -s ./tests/test_similarity.py
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# Ubuntu 24.04 for reproducibility in regression tests only
|
|
41
|
+
# coverage makes tests slightly slower, so regression tests should not run with
|
|
42
|
+
# coverage
|
|
43
|
+
# skip these for pushes to main since they are slower
|
|
44
|
+
cpp-regression-tests:
|
|
45
|
+
runs-on: ubuntu-24.04
|
|
46
|
+
if: github.ref != 'refs/heads/main'
|
|
47
|
+
steps:
|
|
48
|
+
- name: checkout-repo
|
|
49
|
+
uses: actions/checkout@v5
|
|
50
|
+
|
|
51
|
+
- name: setup-python
|
|
52
|
+
uses: actions/setup-python@v6
|
|
53
|
+
with:
|
|
54
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
55
|
+
|
|
56
|
+
- name: install-repo
|
|
57
|
+
run: |
|
|
58
|
+
python -m pip install --upgrade pip
|
|
59
|
+
pip install pytest pytest-subtests inline-snapshot
|
|
60
|
+
BITBIRCH_BUILD_NATIVE=1 BITBIRCH_BUILD_CPP=1 pip install --verbose .
|
|
61
|
+
|
|
62
|
+
- name: run-pytest
|
|
63
|
+
run: BITBIRCH_CANT_SKIP_CPP_TESTS=1 pytest -s ./tests/test_regression.py
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
pull_request:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
schedule:
|
|
10
|
+
- cron: '0 0 * * *'
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
PYTHON_VERSION: '3.11'
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
flake8:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- name: checkout-repo
|
|
20
|
+
uses: actions/checkout@v5
|
|
21
|
+
|
|
22
|
+
- name: setup-python
|
|
23
|
+
uses: actions/setup-python@v6
|
|
24
|
+
with:
|
|
25
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
26
|
+
|
|
27
|
+
- name: install-deps
|
|
28
|
+
run: |
|
|
29
|
+
python -m pip install --upgrade pip
|
|
30
|
+
pip install flake8
|
|
31
|
+
|
|
32
|
+
- name: run-flake8
|
|
33
|
+
run: flake8 .
|
|
34
|
+
|
|
35
|
+
tests:
|
|
36
|
+
strategy:
|
|
37
|
+
matrix:
|
|
38
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
39
|
+
runs-on: ${{ matrix.os }}
|
|
40
|
+
steps:
|
|
41
|
+
- name: checkout-repo
|
|
42
|
+
uses: actions/checkout@v5
|
|
43
|
+
|
|
44
|
+
- name: setup-python
|
|
45
|
+
uses: actions/setup-python@v6
|
|
46
|
+
with:
|
|
47
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
48
|
+
|
|
49
|
+
- name: install-repo-and-test-deps
|
|
50
|
+
run: |
|
|
51
|
+
python -m pip install --upgrade pip
|
|
52
|
+
pip install pytest pytest-subtests pytest-cov coverage inline-snapshot
|
|
53
|
+
pip install --verbose --editable .
|
|
54
|
+
|
|
55
|
+
- name: run-pytest
|
|
56
|
+
run: |
|
|
57
|
+
pytest --cov=bblean --cov-report=json -s -k 'not regression' ./tests
|
|
58
|
+
coverage report
|
|
59
|
+
|
|
60
|
+
- name: upload-badge-artifact
|
|
61
|
+
if: ${{ runner.os == 'Linux' }}
|
|
62
|
+
uses: actions/upload-artifact@v4
|
|
63
|
+
with:
|
|
64
|
+
name: coverage-report
|
|
65
|
+
path: coverage.json
|
|
66
|
+
|
|
67
|
+
docs:
|
|
68
|
+
runs-on: ubuntu-latest
|
|
69
|
+
steps:
|
|
70
|
+
- name: checkout-repo
|
|
71
|
+
uses: actions/checkout@v5
|
|
72
|
+
|
|
73
|
+
- name: setup-python
|
|
74
|
+
uses: actions/setup-python@v6
|
|
75
|
+
with:
|
|
76
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
77
|
+
|
|
78
|
+
- name: install-repo-and-docs-deps
|
|
79
|
+
run: |
|
|
80
|
+
sudo apt-get install -y pandoc
|
|
81
|
+
python -m pip install --upgrade pip
|
|
82
|
+
pip install sphinx sphinx-design pydata-sphinx-theme nbsphinx
|
|
83
|
+
pip install --verbose --editable .
|
|
84
|
+
|
|
85
|
+
- name: build-docs
|
|
86
|
+
run: BITBIRCH_NO_EXTENSIONS=1 sphinx-build docs/src docs/build
|
|
87
|
+
|
|
88
|
+
- name: upload-docs-artifact
|
|
89
|
+
uses: actions/upload-artifact@v4
|
|
90
|
+
with:
|
|
91
|
+
name: docs
|
|
92
|
+
path: docs/build
|
|
93
|
+
|
|
94
|
+
upload-docs-and-badges-to-gh-pages:
|
|
95
|
+
runs-on: ubuntu-latest
|
|
96
|
+
needs: [tests, docs]
|
|
97
|
+
if: github.ref == 'refs/heads/main'
|
|
98
|
+
permissions:
|
|
99
|
+
contents: write
|
|
100
|
+
steps:
|
|
101
|
+
- name: create-site-dirs
|
|
102
|
+
run: |
|
|
103
|
+
mkdir -p site/coverage
|
|
104
|
+
mkdir -p site/devdocs
|
|
105
|
+
mkdir -p site/docs/stable
|
|
106
|
+
|
|
107
|
+
# TODO: releases to docs/stable
|
|
108
|
+
- name: fetch-docs
|
|
109
|
+
uses: actions/download-artifact@v4
|
|
110
|
+
with:
|
|
111
|
+
name: docs
|
|
112
|
+
path: './site/devdocs'
|
|
113
|
+
|
|
114
|
+
- name: fetch-coverage-report
|
|
115
|
+
uses: actions/download-artifact@v4
|
|
116
|
+
with:
|
|
117
|
+
name: coverage-report
|
|
118
|
+
path: ./site/coverage/
|
|
119
|
+
|
|
120
|
+
- name: generate-coverage-badge
|
|
121
|
+
run: |
|
|
122
|
+
COVERAGE=$(jq -r '.totals.percent_covered_display' site/coverage/coverage.json)
|
|
123
|
+
echo "{\"schemaVersion\":1,\"label\":\"coverage\",\"message\":\"${COVERAGE}%\",\"color\":\"green\"}" > site/coverage/coverage-badge.json
|
|
124
|
+
|
|
125
|
+
- name: deploy-to-gh-pages
|
|
126
|
+
uses: peaceiris/actions-gh-pages@v4
|
|
127
|
+
with:
|
|
128
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
129
|
+
publish_dir: ./site
|
|
130
|
+
publish_branch: gh-pages
|
|
131
|
+
|
|
132
|
+
# Ubuntu 24.04 for reproducibility in regression tests only
|
|
133
|
+
# coverage makes tests slightly slower, so regression tests should not run with
|
|
134
|
+
# coverage
|
|
135
|
+
# skip these for pushes to main since they are slower
|
|
136
|
+
regression-tests:
|
|
137
|
+
runs-on: ubuntu-24.04
|
|
138
|
+
if: github.ref != 'refs/heads/main'
|
|
139
|
+
steps:
|
|
140
|
+
- name: checkout-repo
|
|
141
|
+
uses: actions/checkout@v5
|
|
142
|
+
|
|
143
|
+
- name: setup-python
|
|
144
|
+
uses: actions/setup-python@v6
|
|
145
|
+
with:
|
|
146
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
147
|
+
|
|
148
|
+
- name: install-repo
|
|
149
|
+
run: |
|
|
150
|
+
python -m pip install --upgrade pip
|
|
151
|
+
pip install pytest pytest-subtests inline-snapshot
|
|
152
|
+
pip install --verbose .
|
|
153
|
+
|
|
154
|
+
- name: run-pytest
|
|
155
|
+
run: pytest -s ./tests/test_regression.py
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
name: upload-to-pypi
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version:
|
|
7
|
+
description: Force version
|
|
8
|
+
upload-pypi:
|
|
9
|
+
description: Upload to pypi
|
|
10
|
+
required: false
|
|
11
|
+
default: false
|
|
12
|
+
type: boolean
|
|
13
|
+
upload-testpypi:
|
|
14
|
+
description: Upload to test-pypi
|
|
15
|
+
required: false
|
|
16
|
+
default: false
|
|
17
|
+
type: boolean
|
|
18
|
+
|
|
19
|
+
env:
|
|
20
|
+
PYTHON_VERSION: '3.11'
|
|
21
|
+
SETUPTOOLS_SCM_PRETEND_VERSION: ${{ github.event.inputs.version }}
|
|
22
|
+
# cibuildwheel configuration:
|
|
23
|
+
# Skip py 3.14, 32 bit and musllinux (Alpine) wheels
|
|
24
|
+
CIBW_SKIP: "cp314-* cp314t-* *-manylinux_i686 *-win32 *-musllinux_*"
|
|
25
|
+
CIBW_TEST_REQUIRES: pytest pytest-subtests inline-snapshot
|
|
26
|
+
CIBW_TEST_COMMAND: pytest -k 'not regression' {project}/tests
|
|
27
|
+
CIBW_PRERELEASE_PYTHONS: False
|
|
28
|
+
CIBW_ENVIRONMENT: "SETUPTOOLS_SCM_PRETEND_VERSION=${{ github.event.inputs.version }} BITBIRCH_BUILD_CPP=1"
|
|
29
|
+
# Build wheels that support both aarch64 and x86_64 on macOS
|
|
30
|
+
CIBW_ARCHS_MACOS: "universal2"
|
|
31
|
+
CIBW_BUILD_VERBOSITY: 3
|
|
32
|
+
|
|
33
|
+
jobs:
|
|
34
|
+
make_sdist:
|
|
35
|
+
name: make-source-distribution
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
steps:
|
|
38
|
+
- name: checkout-repo
|
|
39
|
+
uses: actions/checkout@v5
|
|
40
|
+
with:
|
|
41
|
+
persist-credentials: false
|
|
42
|
+
|
|
43
|
+
- name: setup-python
|
|
44
|
+
uses: actions/setup-python@v6
|
|
45
|
+
with:
|
|
46
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
47
|
+
|
|
48
|
+
- name: install-sdist-deps
|
|
49
|
+
run: |
|
|
50
|
+
python -m pip install --upgrade pip
|
|
51
|
+
pip install build twine
|
|
52
|
+
|
|
53
|
+
- name: build-sdist
|
|
54
|
+
run: python -m build --sdist
|
|
55
|
+
- uses: actions/upload-artifact@v4
|
|
56
|
+
with:
|
|
57
|
+
name: cibw-sdist
|
|
58
|
+
path: dist/*.tar.gz
|
|
59
|
+
|
|
60
|
+
- name: validate-sdist-metadata
|
|
61
|
+
run: twine check dist/*
|
|
62
|
+
|
|
63
|
+
build_wheels:
|
|
64
|
+
strategy:
|
|
65
|
+
matrix:
|
|
66
|
+
os: [ubuntu-latest, macos-latest]
|
|
67
|
+
name: build-${{ matrix.os }}-wheels
|
|
68
|
+
runs-on: ${{ matrix.os }}
|
|
69
|
+
steps:
|
|
70
|
+
- name: checkout-repo
|
|
71
|
+
uses: actions/checkout@v5
|
|
72
|
+
with:
|
|
73
|
+
persist-credentials: false
|
|
74
|
+
|
|
75
|
+
- name: setup-python
|
|
76
|
+
uses: actions/setup-python@v6
|
|
77
|
+
with:
|
|
78
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
79
|
+
|
|
80
|
+
- name: install-wheel-deps
|
|
81
|
+
run: |
|
|
82
|
+
python -m pip install --upgrade pip
|
|
83
|
+
pip install cibuildwheel
|
|
84
|
+
|
|
85
|
+
- name: build-wheels
|
|
86
|
+
run: python -m cibuildwheel --output-dir wheelhouse
|
|
87
|
+
|
|
88
|
+
- uses: actions/upload-artifact@v4
|
|
89
|
+
with:
|
|
90
|
+
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
|
91
|
+
path: wheelhouse/*.whl
|
|
92
|
+
|
|
93
|
+
publish_to_testpypi:
|
|
94
|
+
needs: [build_wheels, make_sdist]
|
|
95
|
+
runs-on: ubuntu-latest
|
|
96
|
+
if: ${{ github.event.inputs.upload-testpypi == 'true' }}
|
|
97
|
+
environment:
|
|
98
|
+
name: testpypi
|
|
99
|
+
url: https://test.pypi.org/p/bblean
|
|
100
|
+
permissions:
|
|
101
|
+
id-token: write
|
|
102
|
+
|
|
103
|
+
steps:
|
|
104
|
+
- uses: actions/download-artifact@v5
|
|
105
|
+
with:
|
|
106
|
+
pattern: cibw-*
|
|
107
|
+
path: dist
|
|
108
|
+
merge-multiple: true
|
|
109
|
+
- name: publish
|
|
110
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
111
|
+
with:
|
|
112
|
+
verbose: true
|
|
113
|
+
repository-url: https://test.pypi.org/legacy/
|
|
114
|
+
|
|
115
|
+
publish_to_pypi:
|
|
116
|
+
needs: [build_wheels, make_sdist]
|
|
117
|
+
runs-on: ubuntu-latest
|
|
118
|
+
if: ${{ github.event.inputs.upload-pypi == 'true' }}
|
|
119
|
+
environment:
|
|
120
|
+
name: pypi
|
|
121
|
+
url: https://pypi.org/p/bblean
|
|
122
|
+
permissions:
|
|
123
|
+
id-token: write
|
|
124
|
+
|
|
125
|
+
steps:
|
|
126
|
+
- uses: actions/download-artifact@v5
|
|
127
|
+
with:
|
|
128
|
+
pattern: cibw-*
|
|
129
|
+
path: dist
|
|
130
|
+
merge-multiple: true
|
|
131
|
+
- name: publish
|
|
132
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
133
|
+
with:
|
|
134
|
+
verbose: true
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Byte-compiled / optimized
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
|
|
5
|
+
# Setuptools-scm file
|
|
6
|
+
_version.py
|
|
7
|
+
|
|
8
|
+
# C extensions and binaries
|
|
9
|
+
*.so
|
|
10
|
+
*.o
|
|
11
|
+
|
|
12
|
+
# Compressed files
|
|
13
|
+
*.tar
|
|
14
|
+
*.tar.gz
|
|
15
|
+
*.zip
|
|
16
|
+
|
|
17
|
+
# Distribution / packaging
|
|
18
|
+
build/
|
|
19
|
+
dist/
|
|
20
|
+
sdist/
|
|
21
|
+
eggs/
|
|
22
|
+
.eggs/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
*.egg
|
|
25
|
+
wheels/
|
|
26
|
+
wheelhouse/
|
|
27
|
+
share/python-wheels/
|
|
28
|
+
|
|
29
|
+
# Coverage
|
|
30
|
+
htmlcov/
|
|
31
|
+
.coverage
|
|
32
|
+
.coverage.*
|
|
33
|
+
coverage.xml
|
|
34
|
+
coverage.json
|
|
35
|
+
.hypothesis
|
|
36
|
+
.pytest_cache/
|
|
37
|
+
|
|
38
|
+
# Sphinx documentation
|
|
39
|
+
docs/build
|
|
40
|
+
docs/src/_api_autogen/
|
|
41
|
+
|
|
42
|
+
# Mypy
|
|
43
|
+
.mypy_cache/
|
|
44
|
+
.dmypy.json
|
|
45
|
+
dmypy.json
|
|
46
|
+
|
|
47
|
+
# Vim swap files
|
|
48
|
+
*.swo
|
|
49
|
+
*.swp
|
|
50
|
+
|
|
51
|
+
# nohup
|
|
52
|
+
nohup.out
|
|
53
|
+
|
|
54
|
+
# vscode
|
|
55
|
+
.vscode
|
|
56
|
+
|
|
57
|
+
# language server
|
|
58
|
+
.ccls-cache
|
|
59
|
+
|
|
60
|
+
# memray memory profile files
|
|
61
|
+
*.bin
|
|
62
|
+
*-flamegraph-memray.html
|
|
63
|
+
|
|
64
|
+
# py-spy profile files
|
|
65
|
+
profile.svg
|
|
66
|
+
profile_output*
|
|
67
|
+
|
|
68
|
+
# Outputs / inputs
|
|
69
|
+
*.npy
|
|
70
|
+
monitor-rss*.csv
|
|
71
|
+
peak-rss*.json
|
|
72
|
+
cluster-mol-ids*.json
|
|
73
|
+
config*.json
|
|
74
|
+
timings*.json
|
|
75
|
+
max-rss.txt
|
|
76
|
+
|
|
77
|
+
# Pickle
|
|
78
|
+
*.pkl
|
|
79
|
+
*.pickle
|
|
80
|
+
|
|
81
|
+
# Shell and python scripts
|
|
82
|
+
*.script.sh
|
|
83
|
+
*.script.bash
|
|
84
|
+
*.script.py
|
|
85
|
+
script.py
|
|
86
|
+
script.sh
|
|
87
|
+
|
|
88
|
+
# Jupyter checkpoints
|
|
89
|
+
.ipynb_checkpoints/
|
|
90
|
+
|
|
91
|
+
# Outputs from examples
|
|
92
|
+
examples/*.png
|
|
93
|
+
examples/*.csv
|
|
94
|
+
!examples/biogen_logS.csv
|
|
95
|
+
*.pdf
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Configuration file that stores all hooks that pre-commit runs
|
|
2
|
+
repos:
|
|
3
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
4
|
+
rev: v4.6.0
|
|
5
|
+
hooks:
|
|
6
|
+
- id: no-commit-to-branch # disallow commiting to master / main directly
|
|
7
|
+
args: ['--branch', 'main', '--branch', 'master']
|
|
8
|
+
stages: [pre-commit]
|
|
9
|
+
- id: check-yaml # check yaml files for parsable syntax
|
|
10
|
+
stages: [pre-push]
|
|
11
|
+
- id: check-toml # checks toml files for parsable syntax
|
|
12
|
+
stages: [pre-push]
|
|
13
|
+
- id: check-json # checks json files for parsable syntax
|
|
14
|
+
stages: [pre-push]
|
|
15
|
+
- id: check-added-large-files # prevent large files from commit
|
|
16
|
+
stages: [pre-push]
|
|
17
|
+
- id: check-merge-conflict # checks for merge conflict strings
|
|
18
|
+
stages: [pre-push]
|
|
19
|
+
- id: debug-statements # checks for "breakpoint()" and debugger imports
|
|
20
|
+
stages: [pre-push]
|
|
21
|
+
|
|
22
|
+
- repo: https://github.com/psf/black
|
|
23
|
+
rev: 24.3.0
|
|
24
|
+
hooks:
|
|
25
|
+
- id: black
|
|
26
|
+
files: \.py$
|
|
27
|
+
stages: [pre-push]
|
|
28
|
+
|
|
29
|
+
- repo: https://github.com/PyCQA/flake8
|
|
30
|
+
rev: 7.0.0
|
|
31
|
+
hooks:
|
|
32
|
+
- id: flake8
|
|
33
|
+
stages: [pre-push]
|
|
34
|
+
|
|
35
|
+
- repo: https://github.com/PyCQA/autoflake
|
|
36
|
+
rev: v2.3.1
|
|
37
|
+
hooks:
|
|
38
|
+
- id: autoflake
|
|
39
|
+
files: \.py$
|
|
40
|
+
exclude: bblean/bitbirch\.py$|bblean/_legacy/bb_uint8\.py$|bblean/_legacy/bb_int64\.py$
|
|
41
|
+
stages: [pre-push]
|
|
42
|
+
|
|
43
|
+
- repo: local
|
|
44
|
+
hooks:
|
|
45
|
+
- id: mypy
|
|
46
|
+
name: mypy
|
|
47
|
+
entry: "mypy --ignore-missing ."
|
|
48
|
+
# Don't generate a venv for the exe
|
|
49
|
+
language: system
|
|
50
|
+
types: [python]
|
|
51
|
+
# Pass no files but run regardless
|
|
52
|
+
files: $^
|
|
53
|
+
always_run: true
|
|
54
|
+
# Print output on success
|
|
55
|
+
verbose: true
|
|
56
|
+
stages: [pre-push]
|
|
57
|
+
|
|
58
|
+
- repo: local
|
|
59
|
+
hooks:
|
|
60
|
+
- id: pytest
|
|
61
|
+
name: pytest
|
|
62
|
+
entry: "pytest ./tests -k 'not regression and not tsne'"
|
|
63
|
+
# Don't generate a venv for the exe
|
|
64
|
+
language: system
|
|
65
|
+
types: [python]
|
|
66
|
+
# Pass no files but run regardless
|
|
67
|
+
files: $^
|
|
68
|
+
always_run: true
|
|
69
|
+
# Print output on success
|
|
70
|
+
verbose: true
|
|
71
|
+
stages: [pre-push]
|
bblean-0.6.0b1/LICENSE
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
BitBIRCH-Lean Python Package: An open-source clustering module based on iSIM.
|
|
2
|
+
|
|
3
|
+
If you find this software useful please cite the following articles:
|
|
4
|
+
- BitBIRCH: efficient clustering of large molecular libraries:
|
|
5
|
+
https://doi.org/10.1039/D5DD00030K
|
|
6
|
+
- BitBIRCH Clustering Refinement Strategies:
|
|
7
|
+
https://doi.org/10.1021/acs.jcim.5c00627
|
|
8
|
+
- BitBIRCH-Lean:
|
|
9
|
+
(preprint) https://www.biorxiv.org/content/10.1101/2025.10.22.684015v1
|
|
10
|
+
|
|
11
|
+
Copyright (C) 2025 The Miranda-Quintana Lab and other BitBirch developers, comprised
|
|
12
|
+
exclusively by:
|
|
13
|
+
- Ramon Alain Miranda Quintana <ramirandaq@gmail.com>, <quintana@chem.ufl.edu>
|
|
14
|
+
- Krisztina Zsigmond <kzsigmond@ufl.edu>
|
|
15
|
+
- Ignacio Pickering <ipickering@chem.ufl.edu>
|
|
16
|
+
- Kenneth Lopez Perez <klopezperez@chem.ufl.edu>
|
|
17
|
+
- Miroslav Lzicar <miroslav.lzicar@deepmedchem.com>
|
|
18
|
+
|
|
19
|
+
Authors of ./bblean/multiround.py are:
|
|
20
|
+
- Ramon Alain Miranda Quintana <ramirandaq@gmail.com>, <quintana@chem.ufl.edu>
|
|
21
|
+
- Ignacio Pickering <ipickering@chem.ufl.edu>
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it under the
|
|
24
|
+
terms of the GNU General Public License as published by the Free Software Foundation,
|
|
25
|
+
version 3 (SPDX-License-Identifier: GPL-3.0-only).
|
|
26
|
+
|
|
27
|
+
Portions of the file ./bblean/bitbirch.py are licensed under the BSD 3-Clause License
|
|
28
|
+
Copyright (c) 2007-2024 The scikit-learn developers. All rights reserved.
|
|
29
|
+
(SPDX-License-Identifier: BSD-3-Clause). Copies or reproductions of code in the
|
|
30
|
+
./bblean/bitbirch.py file must in addition adhere to the BSD-3-Clause license terms. A
|
|
31
|
+
copy of the BSD-3-Clause license can be located at the root of this repository, under
|
|
32
|
+
./LICENSES/BSD-3-Clause.txt.
|
|
33
|
+
|
|
34
|
+
Portions of the file ./bblean/bitbirch.py were previously licensed under the LGPL 3.0
|
|
35
|
+
license (SPDX-License-Identifier: LGPL-3.0-only), they are relicensed in this program
|
|
36
|
+
as GPL-3.0, with permission of all original copyright holders:
|
|
37
|
+
- Ramon Alain Miranda Quintana <ramirandaq@gmail.com>, <quintana@chem.ufl.edu>
|
|
38
|
+
- Vicky (Vic) Jung <jungvicky@ufl.edu>
|
|
39
|
+
- Kenneth Lopez Perez <klopezperez@chem.ufl.edu>
|
|
40
|
+
- Kate Huddleston <kdavis2@chem.ufl.edu>
|
|
41
|
+
|
|
42
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
43
|
+
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
44
|
+
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
45
|
+
|
|
46
|
+
You should have received a copy of the GNU General Public License along with this
|
|
47
|
+
program. This copy can be located at the root of this repository, under
|
|
48
|
+
./LICENSES/GPL-3.0-only.txt. If not, see <http://www.gnu.org/licenses/gpl-3.0.html>.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2007-2024 The scikit-learn developers.
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer.
|
|
11
|
+
|
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
* Neither the name of the copyright holder nor the names of its
|
|
17
|
+
contributors may be used to endorse or promote products derived from
|
|
18
|
+
this software without specific prior written permission.
|
|
19
|
+
|
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|