seqfold 0.9.0__tar.gz → 0.10.2__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.
- seqfold-0.10.2/.github/workflows/release.yml +309 -0
- seqfold-0.10.2/.gitignore +147 -0
- seqfold-0.10.2/Cargo.lock +191 -0
- seqfold-0.10.2/Cargo.toml +34 -0
- seqfold-0.10.2/DEVELOPMENT.md +130 -0
- seqfold-0.10.2/Makefile +32 -0
- {seqfold-0.9.0 → seqfold-0.10.2}/PKG-INFO +17 -32
- {seqfold-0.9.0 → seqfold-0.10.2}/README.md +4 -9
- seqfold-0.10.2/codegen/gen_data.py +84 -0
- seqfold-0.10.2/data/README.md +7 -0
- seqfold-0.10.2/data/_rna.py +237 -0
- seqfold-0.10.2/data/rna.dangle.dh.txt +89 -0
- seqfold-0.10.2/data/rna.dangle.txt +89 -0
- seqfold-0.10.2/data/rna.loop.dh.txt +34 -0
- seqfold-0.10.2/data/rna.loop.txt +34 -0
- seqfold-0.10.2/data/rna.py.template +10 -0
- seqfold-0.10.2/data/rna.stack.dh.txt +74 -0
- seqfold-0.10.2/data/rna.stack.txt +74 -0
- seqfold-0.10.2/data/rna.tstack.dh.txt +76 -0
- seqfold-0.10.2/data/rna.tstack.txt +76 -0
- seqfold-0.10.2/examples/README.md +16 -0
- seqfold-0.10.2/examples/bench.rs +47 -0
- seqfold-0.10.2/examples/dna.csv +9 -0
- seqfold-0.10.2/examples/known_structures.fasta +51 -0
- seqfold-0.10.2/examples/rna.csv +23 -0
- seqfold-0.10.2/pyproject.toml +40 -0
- {seqfold-0.9.0 → seqfold-0.10.2/python}/seqfold/__init__.py +21 -3
- {seqfold-0.9.0 → seqfold-0.10.2/python}/seqfold/main.py +1 -1
- seqfold-0.10.2/scripts/smoke_test.py +84 -0
- seqfold-0.10.2/src/core/data.rs +1421 -0
- seqfold-0.10.2/src/core/energies.rs +137 -0
- seqfold-0.10.2/src/core/fold.rs +936 -0
- seqfold-0.10.2/src/core/mod.rs +8 -0
- seqfold-0.10.2/src/core/pyfloat.rs +68 -0
- seqfold-0.10.2/src/core/tm.rs +279 -0
- seqfold-0.10.2/src/lib.rs +10 -0
- seqfold-0.10.2/src/python.rs +156 -0
- seqfold-0.10.2/tests/cli_test.py +85 -0
- {seqfold-0.9.0 → seqfold-0.10.2}/tests/fold_examples.py +1 -1
- {seqfold-0.9.0 → seqfold-0.10.2}/tests/fold_test.py +6 -129
- seqfold-0.9.0/seqfold/dna.py +0 -505
- seqfold-0.9.0/seqfold/fold.py +0 -891
- seqfold-0.9.0/seqfold/rna.py +0 -783
- seqfold-0.9.0/seqfold/tm.py +0 -299
- seqfold-0.9.0/seqfold/types.py +0 -39
- seqfold-0.9.0/seqfold.egg-info/PKG-INFO +0 -198
- seqfold-0.9.0/seqfold.egg-info/SOURCES.txt +0 -22
- seqfold-0.9.0/seqfold.egg-info/dependency_links.txt +0 -1
- seqfold-0.9.0/seqfold.egg-info/entry_points.txt +0 -2
- seqfold-0.9.0/seqfold.egg-info/not-zip-safe +0 -1
- seqfold-0.9.0/seqfold.egg-info/requires.txt +0 -5
- seqfold-0.9.0/seqfold.egg-info/top_level.txt +0 -2
- seqfold-0.9.0/setup.cfg +0 -4
- seqfold-0.9.0/setup.py +0 -32
- {seqfold-0.9.0 → seqfold-0.10.2}/LICENSE +0 -0
- {seqfold-0.9.0 → seqfold-0.10.2}/tests/__init__.py +0 -0
- {seqfold-0.9.0 → seqfold-0.10.2}/tests/fold_profile.py +0 -0
- {seqfold-0.9.0 → seqfold-0.10.2}/tests/tm_test.py +0 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# This file is autogenerated by maturin v1.13.3
|
|
2
|
+
# To update, run
|
|
3
|
+
#
|
|
4
|
+
# maturin generate-ci github --pytest -o .github/workflows/release.yml
|
|
5
|
+
#
|
|
6
|
+
# Builds + tests wheels on every push/PR; publishes to PyPI on tag push.
|
|
7
|
+
name: Release
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- main
|
|
13
|
+
- master
|
|
14
|
+
pull_request:
|
|
15
|
+
# Publishing a GitHub Release is the single source of truth for a release:
|
|
16
|
+
# the version is taken from the release tag and the wheels go to PyPI.
|
|
17
|
+
release:
|
|
18
|
+
types: [published]
|
|
19
|
+
workflow_dispatch:
|
|
20
|
+
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
linux:
|
|
26
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
27
|
+
strategy:
|
|
28
|
+
fail-fast: false
|
|
29
|
+
matrix:
|
|
30
|
+
# Mainstream glibc targets with working test emulation. Other arches
|
|
31
|
+
# (s390x/ppc64le/32-bit) install from the sdist.
|
|
32
|
+
platform:
|
|
33
|
+
- runner: ubuntu-22.04
|
|
34
|
+
target: x86_64
|
|
35
|
+
- runner: ubuntu-22.04
|
|
36
|
+
target: aarch64
|
|
37
|
+
steps:
|
|
38
|
+
- uses: actions/checkout@v6
|
|
39
|
+
- uses: actions/setup-python@v6
|
|
40
|
+
with:
|
|
41
|
+
python-version: "3.13"
|
|
42
|
+
- name: Set version from release tag
|
|
43
|
+
if: github.event_name == 'release'
|
|
44
|
+
shell: bash
|
|
45
|
+
env:
|
|
46
|
+
TAG: ${{ github.event.release.tag_name }}
|
|
47
|
+
run: |
|
|
48
|
+
V="${TAG#v}" # strip an optional leading "v"
|
|
49
|
+
sed -i.bak "s/^version = .*/version = \"$V\"/" Cargo.toml && rm -f Cargo.toml.bak
|
|
50
|
+
echo "building seqfold $V"
|
|
51
|
+
- name: Build wheels
|
|
52
|
+
uses: PyO3/maturin-action@v1
|
|
53
|
+
with:
|
|
54
|
+
target: ${{ matrix.platform.target }}
|
|
55
|
+
args: --release --out dist
|
|
56
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
57
|
+
manylinux: auto
|
|
58
|
+
- name: Upload wheels
|
|
59
|
+
uses: actions/upload-artifact@v6
|
|
60
|
+
with:
|
|
61
|
+
name: wheels-linux-${{ matrix.platform.target }}
|
|
62
|
+
path: dist
|
|
63
|
+
- uses: astral-sh/setup-uv@v7
|
|
64
|
+
if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
|
|
65
|
+
- name: pytest
|
|
66
|
+
if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
|
|
67
|
+
shell: bash
|
|
68
|
+
run: |
|
|
69
|
+
set -e
|
|
70
|
+
uv venv .venv
|
|
71
|
+
source .venv/bin/activate
|
|
72
|
+
uv pip install seqfold --no-index --no-deps --find-links dist --reinstall
|
|
73
|
+
uv pip install seqfold pytest
|
|
74
|
+
pytest
|
|
75
|
+
- name: pytest
|
|
76
|
+
if: ${{ !startsWith(matrix.platform.target, 'x86') && matrix.platform.target != 'ppc64' }}
|
|
77
|
+
uses: uraimo/run-on-arch-action@v3
|
|
78
|
+
with:
|
|
79
|
+
arch: ${{ matrix.platform.target }}
|
|
80
|
+
# ubuntu22.04 provides the aarch64 image used to run the emulated tests.
|
|
81
|
+
distro: ubuntu22.04
|
|
82
|
+
githubToken: ${{ github.token }}
|
|
83
|
+
install: |
|
|
84
|
+
apt-get update
|
|
85
|
+
apt-get install -y --no-install-recommends python3 python3-venv
|
|
86
|
+
run: |
|
|
87
|
+
set -e
|
|
88
|
+
python3 -m venv .venv
|
|
89
|
+
source .venv/bin/activate
|
|
90
|
+
pip install pytest
|
|
91
|
+
pip install seqfold --no-index --no-deps --find-links dist --force-reinstall
|
|
92
|
+
pip install seqfold
|
|
93
|
+
pytest
|
|
94
|
+
|
|
95
|
+
musllinux:
|
|
96
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
97
|
+
strategy:
|
|
98
|
+
fail-fast: false
|
|
99
|
+
matrix:
|
|
100
|
+
platform:
|
|
101
|
+
- runner: ubuntu-22.04
|
|
102
|
+
target: x86_64
|
|
103
|
+
- runner: ubuntu-22.04
|
|
104
|
+
target: aarch64
|
|
105
|
+
steps:
|
|
106
|
+
- uses: actions/checkout@v6
|
|
107
|
+
- uses: actions/setup-python@v6
|
|
108
|
+
with:
|
|
109
|
+
python-version: "3.13"
|
|
110
|
+
- name: Set version from release tag
|
|
111
|
+
if: github.event_name == 'release'
|
|
112
|
+
shell: bash
|
|
113
|
+
env:
|
|
114
|
+
TAG: ${{ github.event.release.tag_name }}
|
|
115
|
+
run: |
|
|
116
|
+
V="${TAG#v}" # strip an optional leading "v"
|
|
117
|
+
sed -i.bak "s/^version = .*/version = \"$V\"/" Cargo.toml && rm -f Cargo.toml.bak
|
|
118
|
+
echo "building seqfold $V"
|
|
119
|
+
- name: Build wheels
|
|
120
|
+
uses: PyO3/maturin-action@v1
|
|
121
|
+
with:
|
|
122
|
+
target: ${{ matrix.platform.target }}
|
|
123
|
+
args: --release --out dist
|
|
124
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
125
|
+
manylinux: musllinux_1_2
|
|
126
|
+
- name: Upload wheels
|
|
127
|
+
uses: actions/upload-artifact@v6
|
|
128
|
+
with:
|
|
129
|
+
name: wheels-musllinux-${{ matrix.platform.target }}
|
|
130
|
+
path: dist
|
|
131
|
+
- name: pytest
|
|
132
|
+
if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
|
|
133
|
+
run: |
|
|
134
|
+
set -e
|
|
135
|
+
docker run --rm -v ${{ github.workspace }}:/io -w /io alpine:latest sh -c '
|
|
136
|
+
apk add py3-pip py3-virtualenv
|
|
137
|
+
python3 -m virtualenv .venv
|
|
138
|
+
source .venv/bin/activate
|
|
139
|
+
pip install seqfold --no-index --no-deps --find-links dist --force-reinstall
|
|
140
|
+
pip install seqfold pytest
|
|
141
|
+
pytest
|
|
142
|
+
'
|
|
143
|
+
- name: pytest
|
|
144
|
+
if: ${{ !startsWith(matrix.platform.target, 'x86') }}
|
|
145
|
+
uses: uraimo/run-on-arch-action@v3
|
|
146
|
+
with:
|
|
147
|
+
arch: ${{ matrix.platform.target }}
|
|
148
|
+
distro: alpine_latest
|
|
149
|
+
githubToken: ${{ github.token }}
|
|
150
|
+
install: |
|
|
151
|
+
apk add py3-virtualenv
|
|
152
|
+
run: |
|
|
153
|
+
set -e
|
|
154
|
+
python3 -m virtualenv .venv
|
|
155
|
+
source .venv/bin/activate
|
|
156
|
+
pip install seqfold --no-index --no-deps --find-links dist --force-reinstall
|
|
157
|
+
pip install seqfold pytest
|
|
158
|
+
pytest
|
|
159
|
+
|
|
160
|
+
windows:
|
|
161
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
162
|
+
strategy:
|
|
163
|
+
fail-fast: false
|
|
164
|
+
matrix:
|
|
165
|
+
# 32-bit Windows (x86) is dropped: setup-python can't reliably provide
|
|
166
|
+
# 32-bit CPython 3.13, and it's a legacy target with ~no users. Those
|
|
167
|
+
# install from the sdist.
|
|
168
|
+
platform:
|
|
169
|
+
- runner: windows-2025
|
|
170
|
+
target: x64
|
|
171
|
+
python_arch: x64
|
|
172
|
+
- runner: windows-11-arm
|
|
173
|
+
target: aarch64
|
|
174
|
+
python_arch: arm64
|
|
175
|
+
steps:
|
|
176
|
+
- uses: actions/checkout@v6
|
|
177
|
+
- uses: actions/setup-python@v6
|
|
178
|
+
with:
|
|
179
|
+
python-version: "3.13"
|
|
180
|
+
architecture: ${{ matrix.platform.python_arch }}
|
|
181
|
+
- name: Set version from release tag
|
|
182
|
+
if: github.event_name == 'release'
|
|
183
|
+
shell: bash
|
|
184
|
+
env:
|
|
185
|
+
TAG: ${{ github.event.release.tag_name }}
|
|
186
|
+
run: |
|
|
187
|
+
V="${TAG#v}" # strip an optional leading "v"
|
|
188
|
+
sed -i.bak "s/^version = .*/version = \"$V\"/" Cargo.toml && rm -f Cargo.toml.bak
|
|
189
|
+
echo "building seqfold $V"
|
|
190
|
+
- name: Build wheels
|
|
191
|
+
uses: PyO3/maturin-action@v1
|
|
192
|
+
with:
|
|
193
|
+
target: ${{ matrix.platform.target }}
|
|
194
|
+
args: --release --out dist
|
|
195
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
196
|
+
- name: Upload wheels
|
|
197
|
+
uses: actions/upload-artifact@v6
|
|
198
|
+
with:
|
|
199
|
+
name: wheels-windows-${{ matrix.platform.target }}
|
|
200
|
+
path: dist
|
|
201
|
+
- uses: astral-sh/setup-uv@v7
|
|
202
|
+
- name: pytest
|
|
203
|
+
shell: bash
|
|
204
|
+
run: |
|
|
205
|
+
set -e
|
|
206
|
+
uv venv .venv
|
|
207
|
+
source .venv/Scripts/activate
|
|
208
|
+
uv pip install seqfold --no-index --no-deps --find-links dist --reinstall
|
|
209
|
+
uv pip install seqfold pytest
|
|
210
|
+
pytest
|
|
211
|
+
|
|
212
|
+
macos:
|
|
213
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
214
|
+
strategy:
|
|
215
|
+
fail-fast: false
|
|
216
|
+
matrix:
|
|
217
|
+
platform:
|
|
218
|
+
- runner: macos-15-intel
|
|
219
|
+
target: x86_64
|
|
220
|
+
- runner: macos-latest
|
|
221
|
+
target: aarch64
|
|
222
|
+
steps:
|
|
223
|
+
- uses: actions/checkout@v6
|
|
224
|
+
- uses: actions/setup-python@v6
|
|
225
|
+
with:
|
|
226
|
+
python-version: "3.13"
|
|
227
|
+
- name: Set version from release tag
|
|
228
|
+
if: github.event_name == 'release'
|
|
229
|
+
shell: bash
|
|
230
|
+
env:
|
|
231
|
+
TAG: ${{ github.event.release.tag_name }}
|
|
232
|
+
run: |
|
|
233
|
+
V="${TAG#v}" # strip an optional leading "v"
|
|
234
|
+
sed -i.bak "s/^version = .*/version = \"$V\"/" Cargo.toml && rm -f Cargo.toml.bak
|
|
235
|
+
echo "building seqfold $V"
|
|
236
|
+
- name: Build wheels
|
|
237
|
+
uses: PyO3/maturin-action@v1
|
|
238
|
+
with:
|
|
239
|
+
target: ${{ matrix.platform.target }}
|
|
240
|
+
args: --release --out dist
|
|
241
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
242
|
+
- name: Upload wheels
|
|
243
|
+
uses: actions/upload-artifact@v6
|
|
244
|
+
with:
|
|
245
|
+
name: wheels-macos-${{ matrix.platform.target }}
|
|
246
|
+
path: dist
|
|
247
|
+
- uses: astral-sh/setup-uv@v7
|
|
248
|
+
- name: pytest
|
|
249
|
+
run: |
|
|
250
|
+
set -e
|
|
251
|
+
uv venv .venv
|
|
252
|
+
source .venv/bin/activate
|
|
253
|
+
uv pip install seqfold --no-index --no-deps --find-links dist --reinstall
|
|
254
|
+
uv pip install seqfold pytest
|
|
255
|
+
pytest
|
|
256
|
+
|
|
257
|
+
sdist:
|
|
258
|
+
runs-on: ubuntu-latest
|
|
259
|
+
steps:
|
|
260
|
+
- uses: actions/checkout@v6
|
|
261
|
+
- name: Set version from release tag
|
|
262
|
+
if: github.event_name == 'release'
|
|
263
|
+
shell: bash
|
|
264
|
+
env:
|
|
265
|
+
TAG: ${{ github.event.release.tag_name }}
|
|
266
|
+
run: |
|
|
267
|
+
V="${TAG#v}" # strip an optional leading "v"
|
|
268
|
+
sed -i.bak "s/^version = .*/version = \"$V\"/" Cargo.toml && rm -f Cargo.toml.bak
|
|
269
|
+
echo "building seqfold $V"
|
|
270
|
+
- name: Build sdist
|
|
271
|
+
uses: PyO3/maturin-action@v1
|
|
272
|
+
with:
|
|
273
|
+
command: sdist
|
|
274
|
+
args: --out dist
|
|
275
|
+
- name: Upload sdist
|
|
276
|
+
uses: actions/upload-artifact@v6
|
|
277
|
+
with:
|
|
278
|
+
name: wheels-sdist
|
|
279
|
+
path: dist
|
|
280
|
+
|
|
281
|
+
release:
|
|
282
|
+
name: Release
|
|
283
|
+
runs-on: ubuntu-latest
|
|
284
|
+
if: ${{ github.event_name == 'release' || github.event_name == 'workflow_dispatch' }}
|
|
285
|
+
needs: [linux, musllinux, windows, macos, sdist]
|
|
286
|
+
# Dedicated publishing environment. Configure it under repo Settings ->
|
|
287
|
+
# Environments (and name it as the PyPI trusted publisher's "Environment").
|
|
288
|
+
# Add required reviewers there to gate who can actually publish to PyPI.
|
|
289
|
+
environment: pypi
|
|
290
|
+
permissions:
|
|
291
|
+
# Mint the OIDC token PyPI trusted publishing exchanges (no API token).
|
|
292
|
+
id-token: write
|
|
293
|
+
# Used to upload release artifacts
|
|
294
|
+
contents: write
|
|
295
|
+
# Used to generate artifact attestation
|
|
296
|
+
attestations: write
|
|
297
|
+
steps:
|
|
298
|
+
- uses: actions/download-artifact@v7
|
|
299
|
+
- name: Generate artifact attestation
|
|
300
|
+
uses: actions/attest@v4
|
|
301
|
+
with:
|
|
302
|
+
subject-path: 'wheels-*/*'
|
|
303
|
+
- name: Install uv
|
|
304
|
+
if: ${{ github.event_name == 'release' }}
|
|
305
|
+
uses: astral-sh/setup-uv@v7
|
|
306
|
+
# No token: uv uses GitHub OIDC trusted publishing (id-token: write above).
|
|
307
|
+
- name: Publish to PyPI
|
|
308
|
+
if: ${{ github.event_name == 'release' }}
|
|
309
|
+
run: uv publish --trusted-publishing always 'wheels-*/*'
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
target/
|
|
76
|
+
|
|
77
|
+
# Jupyter Notebook
|
|
78
|
+
.ipynb_checkpoints
|
|
79
|
+
|
|
80
|
+
# IPython
|
|
81
|
+
profile_default/
|
|
82
|
+
ipython_config.py
|
|
83
|
+
|
|
84
|
+
# pyenv
|
|
85
|
+
.python-version
|
|
86
|
+
|
|
87
|
+
# pipenv
|
|
88
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
89
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
90
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
91
|
+
# install all needed dependencies.
|
|
92
|
+
#Pipfile.lock
|
|
93
|
+
|
|
94
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
95
|
+
__pypackages__/
|
|
96
|
+
|
|
97
|
+
# Celery stuff
|
|
98
|
+
celerybeat-schedule
|
|
99
|
+
celerybeat.pid
|
|
100
|
+
|
|
101
|
+
# SageMath parsed files
|
|
102
|
+
*.sage.py
|
|
103
|
+
|
|
104
|
+
# Environments
|
|
105
|
+
.env
|
|
106
|
+
.venv
|
|
107
|
+
env/
|
|
108
|
+
venv/
|
|
109
|
+
ENV/
|
|
110
|
+
env.bak/
|
|
111
|
+
venv.bak/
|
|
112
|
+
|
|
113
|
+
# Spyder project settings
|
|
114
|
+
.spyderproject
|
|
115
|
+
.spyproject
|
|
116
|
+
|
|
117
|
+
# Rope project settings
|
|
118
|
+
.ropeproject
|
|
119
|
+
|
|
120
|
+
# mkdocs documentation
|
|
121
|
+
/site
|
|
122
|
+
|
|
123
|
+
# mypy
|
|
124
|
+
.mypy_cache/
|
|
125
|
+
.dmypy.json
|
|
126
|
+
dmypy.json
|
|
127
|
+
|
|
128
|
+
# Pyre type checker
|
|
129
|
+
.pyre/
|
|
130
|
+
|
|
131
|
+
# vscode settings
|
|
132
|
+
.vscode
|
|
133
|
+
|
|
134
|
+
# .c/.html files during build
|
|
135
|
+
seqfold/*.c
|
|
136
|
+
seqfold/*.html
|
|
137
|
+
|
|
138
|
+
# Rust / maturin build artifacts
|
|
139
|
+
/target
|
|
140
|
+
.venv/
|
|
141
|
+
|
|
142
|
+
# development/test files
|
|
143
|
+
/data/dna
|
|
144
|
+
*.stats
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
.DS_Store
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 4
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "crossbeam-deque"
|
|
7
|
+
version = "0.8.6"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"crossbeam-epoch",
|
|
12
|
+
"crossbeam-utils",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[[package]]
|
|
16
|
+
name = "crossbeam-epoch"
|
|
17
|
+
version = "0.9.18"
|
|
18
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
19
|
+
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
|
20
|
+
dependencies = [
|
|
21
|
+
"crossbeam-utils",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
[[package]]
|
|
25
|
+
name = "crossbeam-utils"
|
|
26
|
+
version = "0.8.21"
|
|
27
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
28
|
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
|
|
29
|
+
|
|
30
|
+
[[package]]
|
|
31
|
+
name = "either"
|
|
32
|
+
version = "1.16.0"
|
|
33
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
34
|
+
checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
|
|
35
|
+
|
|
36
|
+
[[package]]
|
|
37
|
+
name = "heck"
|
|
38
|
+
version = "0.5.0"
|
|
39
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
40
|
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
41
|
+
|
|
42
|
+
[[package]]
|
|
43
|
+
name = "libc"
|
|
44
|
+
version = "0.2.186"
|
|
45
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
46
|
+
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
|
47
|
+
|
|
48
|
+
[[package]]
|
|
49
|
+
name = "once_cell"
|
|
50
|
+
version = "1.21.4"
|
|
51
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
52
|
+
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
53
|
+
|
|
54
|
+
[[package]]
|
|
55
|
+
name = "portable-atomic"
|
|
56
|
+
version = "1.13.1"
|
|
57
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
58
|
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
59
|
+
|
|
60
|
+
[[package]]
|
|
61
|
+
name = "proc-macro2"
|
|
62
|
+
version = "1.0.106"
|
|
63
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
64
|
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
65
|
+
dependencies = [
|
|
66
|
+
"unicode-ident",
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
[[package]]
|
|
70
|
+
name = "pyo3"
|
|
71
|
+
version = "0.29.0"
|
|
72
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
73
|
+
checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
|
|
74
|
+
dependencies = [
|
|
75
|
+
"libc",
|
|
76
|
+
"once_cell",
|
|
77
|
+
"portable-atomic",
|
|
78
|
+
"pyo3-build-config",
|
|
79
|
+
"pyo3-ffi",
|
|
80
|
+
"pyo3-macros",
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
[[package]]
|
|
84
|
+
name = "pyo3-build-config"
|
|
85
|
+
version = "0.29.0"
|
|
86
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
87
|
+
checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
|
|
88
|
+
dependencies = [
|
|
89
|
+
"target-lexicon",
|
|
90
|
+
]
|
|
91
|
+
|
|
92
|
+
[[package]]
|
|
93
|
+
name = "pyo3-ffi"
|
|
94
|
+
version = "0.29.0"
|
|
95
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
96
|
+
checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
|
|
97
|
+
dependencies = [
|
|
98
|
+
"libc",
|
|
99
|
+
"pyo3-build-config",
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
[[package]]
|
|
103
|
+
name = "pyo3-macros"
|
|
104
|
+
version = "0.29.0"
|
|
105
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
106
|
+
checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
|
|
107
|
+
dependencies = [
|
|
108
|
+
"proc-macro2",
|
|
109
|
+
"pyo3-macros-backend",
|
|
110
|
+
"quote",
|
|
111
|
+
"syn",
|
|
112
|
+
]
|
|
113
|
+
|
|
114
|
+
[[package]]
|
|
115
|
+
name = "pyo3-macros-backend"
|
|
116
|
+
version = "0.29.0"
|
|
117
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
118
|
+
checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
|
|
119
|
+
dependencies = [
|
|
120
|
+
"heck",
|
|
121
|
+
"proc-macro2",
|
|
122
|
+
"quote",
|
|
123
|
+
"syn",
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
[[package]]
|
|
127
|
+
name = "quote"
|
|
128
|
+
version = "1.0.45"
|
|
129
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
130
|
+
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
131
|
+
dependencies = [
|
|
132
|
+
"proc-macro2",
|
|
133
|
+
]
|
|
134
|
+
|
|
135
|
+
[[package]]
|
|
136
|
+
name = "rayon"
|
|
137
|
+
version = "1.12.0"
|
|
138
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
139
|
+
checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
|
|
140
|
+
dependencies = [
|
|
141
|
+
"either",
|
|
142
|
+
"rayon-core",
|
|
143
|
+
]
|
|
144
|
+
|
|
145
|
+
[[package]]
|
|
146
|
+
name = "rayon-core"
|
|
147
|
+
version = "1.13.0"
|
|
148
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
149
|
+
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
|
|
150
|
+
dependencies = [
|
|
151
|
+
"crossbeam-deque",
|
|
152
|
+
"crossbeam-utils",
|
|
153
|
+
]
|
|
154
|
+
|
|
155
|
+
[[package]]
|
|
156
|
+
name = "seqfold"
|
|
157
|
+
version = "0.10.2"
|
|
158
|
+
dependencies = [
|
|
159
|
+
"pyo3",
|
|
160
|
+
"rayon",
|
|
161
|
+
"smallvec",
|
|
162
|
+
]
|
|
163
|
+
|
|
164
|
+
[[package]]
|
|
165
|
+
name = "smallvec"
|
|
166
|
+
version = "1.15.1"
|
|
167
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
168
|
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
|
|
169
|
+
|
|
170
|
+
[[package]]
|
|
171
|
+
name = "syn"
|
|
172
|
+
version = "2.0.117"
|
|
173
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
174
|
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
175
|
+
dependencies = [
|
|
176
|
+
"proc-macro2",
|
|
177
|
+
"quote",
|
|
178
|
+
"unicode-ident",
|
|
179
|
+
]
|
|
180
|
+
|
|
181
|
+
[[package]]
|
|
182
|
+
name = "target-lexicon"
|
|
183
|
+
version = "0.13.5"
|
|
184
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
185
|
+
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
186
|
+
|
|
187
|
+
[[package]]
|
|
188
|
+
name = "unicode-ident"
|
|
189
|
+
version = "1.0.24"
|
|
190
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
191
|
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "seqfold"
|
|
3
|
+
# Dev default only. Releases take the version from the GitHub Release tag, which
|
|
4
|
+
# the CI injects here before building (see DEVELOPMENT.md). pyproject.toml reads
|
|
5
|
+
# this via `dynamic = ["version"]`.
|
|
6
|
+
version = "0.10.2"
|
|
7
|
+
edition = "2021"
|
|
8
|
+
description = "Predict the minimum free energy structure of nucleic acids"
|
|
9
|
+
license = "MIT"
|
|
10
|
+
repository = "https://github.com/Lattice-Automation/seqfold"
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
|
|
13
|
+
[lib]
|
|
14
|
+
name = "seqfold"
|
|
15
|
+
crate-type = ["cdylib", "rlib"]
|
|
16
|
+
|
|
17
|
+
[features]
|
|
18
|
+
# Enables the PyO3 extension module. Off by default so `cargo test` exercises
|
|
19
|
+
# the pure-Rust engine without linking libpython.
|
|
20
|
+
python = ["dep:pyo3"]
|
|
21
|
+
|
|
22
|
+
[dependencies]
|
|
23
|
+
# abi3-py38: build a single stable-ABI wheel that works on CPython 3.8+,
|
|
24
|
+
# instead of a separate wheel per Python minor version.
|
|
25
|
+
pyo3 = { version = "0.29", features = ["extension-module", "abi3-py38"], optional = true }
|
|
26
|
+
# Data-parallel fill of the DP matrix (one task per cell on each anti-diagonal).
|
|
27
|
+
rayon = "1.10"
|
|
28
|
+
# Inline storage for the small per-cell basepair lists (no heap alloc for the
|
|
29
|
+
# common 0-1 element case).
|
|
30
|
+
smallvec = "1"
|
|
31
|
+
|
|
32
|
+
[profile.release]
|
|
33
|
+
lto = true
|
|
34
|
+
codegen-units = 1
|