Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
31 changes: 30 additions & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,35 @@ jobs:
--python 3.14 \
--no-anaconda-upload

pre-commit:
name: Pre-commit
needs: unit
runs-on: ubuntu-26.04
timeout-minutes: 15

steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

- name: Set up Python 3.14
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
with:
python-version: "3.14"

- name: Install pre-commit dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -e .[pre-commit]

- name: Run pre-commit
run: |
pre-commit install
pre-commit run --all-files || {
git status --short
git diff
exit 1
}

docs:
name: Docs
needs: unit
Expand Down Expand Up @@ -154,4 +183,4 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: coverage.xml
fail-on-error: false
fail-on-error: false
2 changes: 1 addition & 1 deletion .github/workflows/weekly-regression.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,4 @@ jobs:
-c conda-forge \
-c bioconda \
--python ${{ matrix.python-version }} \
--no-anaconda-upload
--no-anaconda-upload
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,4 @@ coverage.xml

# Regression test artefacts
.testdata/
test-results/
test-results/
46 changes: 46 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.2
hooks:
- id: ruff-check
args: [--fix]
- id: ruff-format

- repo: https://github.com/pocc/pre-commit-hooks
rev: v1.3.5
hooks:
- id: clang-format
files: \.(c|cc|cpp|cxx|h|hh|hpp|hxx)$
- id: clang-tidy
files: \.(c|cc|cpp|cxx)$
args: ["-checks=-*,clang-analyzer-*,bugprone-*"]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-added-large-files
- id: check-merge-conflict
- id: check-yaml
exclude: ^conda-recipe/meta\.yaml$
- id: check-toml
- id: check-case-conflict
- id: check-ast
- id: end-of-file-fixer
- id: trailing-whitespace

- repo: https://github.com/rstcheck/rstcheck
rev: v6.2.0
hooks:
- id: rstcheck
name: rstcheck (docstrings only)
files: \.py$
args: ["--report-level", "warning"]

- repo: local
hooks:
- id: sphinx-docs
name: sphinx-build (pre-push, warnings as errors)
entry: bash -lc 'make -C docs clean && make -C docs html SPHINXOPTS="-W --keep-going"'
language: system
pass_filenames: false
stages: [pre-push]
2 changes: 0 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,3 @@ sphinx:
python:
install:
- requirements: docs/requirements.txt


2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,4 @@ keywords:

license: MIT
version: 1.0.0
date-released: '2026-09-14'
date-released: '2026-09-14'
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SIST: Stress-Induced Structural Transitions in superhelical DNA
SIST: Stress-Induced Structural Transitions in superhelical DNA
==============================

| Category | Badges |
Expand All @@ -12,7 +12,7 @@ SIST: Stress-Induced Structural Transitions in superhelical DNA

## Purpose of SIST

The codes in this repository are for analyzing three types of structural transitions in superhelical DNA molecules of specified base sequences and kilobase lengths. These are strand separation, BZ transitions and cruciform extrusion. More types of transitions may be added as their energetics become known. The statistical mechanical methods and algorithms used in these analyses are described in the papers cited below.
The codes in this repository are for analyzing three types of structural transitions in superhelical DNA molecules of specified base sequences and kilobase lengths. These are strand separation, BZ transitions and cruciform extrusion. More types of transitions may be added as their energetics become known. The statistical mechanical methods and algorithms used in these analyses are described in the papers cited below.

<p align="center">
<img src="docs/source/_static/logos/SIST-logo-white-text.svg#gh-dark-mode-only" alt="SIST logo" width="300"/>
Expand Down
2 changes: 1 addition & 1 deletion docs/source/_static/examples/one_line.pbr322.toy.fa
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
>one_line.pbr322.toy.fa
AGTCAGGCACCGTGTATGAAATCTAACAATGCGCTCATCGTCATCCTCGGCACCGTCACCCTGGATGCTGTAGGCATAGGCTTGGTTATGCCGGTACTGCCGGGCCTCTTGCGGGATATCGTCCATTCCGACAGCATCGCCAGTCACTATGGCGTGCTGCTAGCGCTATATGCGTTGATGCAATTTCTATGCGCACCCGTTCTCGGAGCACTGTCCGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGGAGCCACTATCGACTACGCGATCATGGCGACCACACCCGTCCTGTGGATCCTCTACGCCGGACGCATCGTGGCCGGCATCACCGGCGCCACAGGTGCGGTTGCTGGCGCCTATATCGCCGACATCACCGATGGGGAAGATCGGGCTCGCCACTTCGGGCTCATGAGCGCTTGTTTCGGCGTGGGTATGGTGGCAGGCCCCGTGGCCGGGGGACTGTTGGGCGCCATCTCCTTGCATGCACCATTCCTTGCGGCGGCGGTGCTCAACGGCCTCAACCTACTACTGGGCTGCTTCCTAATGCAGGAGTCGCATAAGGGAGAGCGTCGACCGATGCCCTTGAGAGCCTTCAACCCAGTCAGCTCCTTCCGGTGGGCGCGGGGCATGACTATCGTCGCCGCACTTATGACTGTCTTCTTTATCATGCAACTCGTAGGACAGGTGCCGGCAGCGCTCTGGGTCATTTTCGGCGAGGACCGCTTTCGCTGGAGCGCGACGATGATCGGCCTGTCGCTTGCGGTATTCGGAATCTTGCACGCCCTCGCTCAAGCCTTCGTCACTGGTCCCGCCACCAAACGTTTCGGCGAGAAGCAGGCCATTATCGCCGGCATGGCGGCCGACGCGCTGGGCTACGTCTTGCTGGCGTTCGCGACGCGAGGCTGGATGGCCTTCCCCATTATGATTCTTCTCGCTTCCGGCGGCATCGGGATGCCCGCGTTGCAGGCCATGCTGTCCAGGCAGGTCGCGCGCGCGCGCGCGCGCAGATGACAAGGATCGCTCGCGGCTCTTACCAGCCTAACTTCGATCACTGGACCGCTGATCGTCACGGCGATTTATGCCGCCTCGGCGAGCACATGGAACGGGTTGGCATGGATTGTAGGCGCCGCCCTATACCTTGTCTGCCTCCCCGCGTTGCGTCGCGGTGCATGGAGCCGGGCCACCTCGACCTGAATGGAAGCCGGCGGCACCTCGCTAACGGATTCACCACTCCAAGAATTGGAGCCAATCAATTCTTGCGGAGAACTGTGAATGCGCAAACCAACCCTTGGCAGAACATATCCATCGCGTCCGCCATCTCCAGCAGCCGCACGCGGCGCATCTCGGGCAGCGTTGGGTCCTGGCCACGGGTGCGCATGATCGTGCTCCTGTCGTTGAGGACCCGGCTAGGCTGGCGGGGTTGCCTTACTGGTTAGCAGAATGAATCACCGATACGCGAGCGAACGTGAAGCGACTGCTGCTGCAAAACGTCTGCGACCTGAGCAACAACATGAATGGTCTTCGGTTTCCGTGTTTCGTAAAGTCTGGAAACGCGGAAGTCAGCGCCCTGCACCATTATGTTCCGGATCTGCATCGCAGGATGCTGCTGGCTACCCTGTGGAACACCTACATCTGTATTAACGAAGCGCTGGCATTGACCCTGAGTGATTTTTCTCTGGTCCCGCCGCATCCATACCGCCAGTTGTTTACCCTCACAACGTTCCAGTAACCGGGCATGTTCATCATCAGTAACCCGTATCGTGAGCATCCTCTCTCGTTTCATCGGTATCATTACCCCCATGAACAGAAATCCCCCTTACACGGAGGCATCAGTGACCAAACAGGAAAAAACCGCCCTTAACATGGCCCGCTTTATCAGAAGCCAGACATTAACGCTTCTGGAGAAACTCAACGAGCTGGACGCGGATGAACAGGCAGACATCTGTGAATCGCTTCACGACCACGCTGATGAGCTTTACCGCAGCTGCCTCGCGCGTTTCGGTGATGACGGTGAAAACCTCTGACACATGCAGCTCCCGGAGACGGTCACAGCTTGTCTGTAAGCGGATGCCGGGAGCAGACAAGCCCGTCAGGGCGCGTCAGCGGGTGTTGGCGGGTGTCGGGGCGCAGCCATGACCCAGTCACGTAGCGATAGCGGAGTGTATACTGGCTTAACTATGCGGCATCAGAGCAGATTGTACTGAGAGTGCACCATATGCGGTGTGAAATACCGCACAGATGCGTAAGGAGAAAATACCGCATCAGGCGCTCTTCCGCTTCCTCGCTCACTGACTCGCTGCGCTCGGTCGTTCGGCTGCGGCGAGCGGTATCAGCTCACTCAAAGGCGGTAATACGGTTATCCACAGAATCAGGGGATAACGCAGGAAAGAACATGTGAGCAAAAGGCCAGCAAAAGGCCAGGAACCGTAAAAAGGCCGCGTTGCTGGCGTTTTTCCATAGGCTCCGCCCCCCTGACGAGCATCACAAAAATCGACGCTCAAGTCAGAGGTGGCGAAACCCGACAGGACTATAAAGATACCAGGCGTTTCCCCCTGGAAGCTCCCTCGTGCGCTCTCCTGTTCCGACCCTGCCGCTTACCGGATACCTGTCCGCCTTTCTCCCTTCGGGAAGCGTGGCGCTTTCTCATAGCTCACGCTGTAGGTATCTCAGTTCGGTGTAGGTCGTTCGCTCCAAGCTGGGCTGTGTGCACGAACCCCCCGTTCAGCCCGACCGCTGCGCCTTATCCGGTAACTATCGTCTTGAGTCCAACCCGGTAAGACACGACTTATCGCCACTGGCAGCAGCCACTGGTAACAGGATTAGCAGAGCGAGGTATGTAGGCGGTGCTACAGAGTTCTTGAAGTGGTGGCCTAACTACGGCTACACTAGAAGGACAGTATTTGGTATCTGCGCTCTGCTGAAGCCAGTTACCTTCGGAAAAAGAGTTGGTAGCTCTTGATCCGGCAAACAAACCACCGCTGGTAGCGGTGGTTTTTTTGTTTGCAAGCAGCAGATTACGCGCAGAAAAAAAGGATCTCAAGAAGATCCTTTGATCTTTTCTACGGGGTGCTCAGTGAACCAATTGGCCAACCGGAAGGAAAACCTTCCGGTTGGCCAATTGGTTGAACGAAAACTATCCTAGATCCTTTTAAATTAAAAATGAAGTTTTAAATCAATCTAAAGTATATATGAGTAAACTTGGTCTGACAGTTACCAATGCTTAATCAGTGAGGCACCTATCTCAGCGATCTGTCTATTTCGTTCATCCATAGTTGCCTGACTCCCCGTCGTGTAGATAACTACGATACGGGAGGGCTTACCATCTGGCCCCAGTGCTGCAATGATACCGCGAGACCCACGCTCACCGGCTCCAGATTTATCAGCAATAAACCAGCCAGCCGGAAGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTGCAGGCATCGTGGTGTCACGCTCGTCGTTTGGTATGGCTTCATTCAGCTCCGGTTCCCAACGATCAAGGCGAGTTACATGATCCCCCATGTTGTGCAAAAAAGCGGTTAGCTCCTTCGGTCCTCCGATCGTTGTCAGAAGTAAGTTGGCCGCAGTGTTATCACTCATGGTTATGGCAGCACTGCATAATTCTCTTACTGTCATGCCATCCGTAAGATGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCGAGTTGCTCTTGCCCGGCGTCAACACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCTTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACATTTCCCCGAAAAGTGCCACCTGACGTCTAAGAAACCATTATTATCATGACATTAACCTATAAAAATAGGCGTATCACGAGGCCCTTTCGTCTTCAAGAA
AGTCAGGCACCGTGTATGAAATCTAACAATGCGCTCATCGTCATCCTCGGCACCGTCACCCTGGATGCTGTAGGCATAGGCTTGGTTATGCCGGTACTGCCGGGCCTCTTGCGGGATATCGTCCATTCCGACAGCATCGCCAGTCACTATGGCGTGCTGCTAGCGCTATATGCGTTGATGCAATTTCTATGCGCACCCGTTCTCGGAGCACTGTCCGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGGAGCCACTATCGACTACGCGATCATGGCGACCACACCCGTCCTGTGGATCCTCTACGCCGGACGCATCGTGGCCGGCATCACCGGCGCCACAGGTGCGGTTGCTGGCGCCTATATCGCCGACATCACCGATGGGGAAGATCGGGCTCGCCACTTCGGGCTCATGAGCGCTTGTTTCGGCGTGGGTATGGTGGCAGGCCCCGTGGCCGGGGGACTGTTGGGCGCCATCTCCTTGCATGCACCATTCCTTGCGGCGGCGGTGCTCAACGGCCTCAACCTACTACTGGGCTGCTTCCTAATGCAGGAGTCGCATAAGGGAGAGCGTCGACCGATGCCCTTGAGAGCCTTCAACCCAGTCAGCTCCTTCCGGTGGGCGCGGGGCATGACTATCGTCGCCGCACTTATGACTGTCTTCTTTATCATGCAACTCGTAGGACAGGTGCCGGCAGCGCTCTGGGTCATTTTCGGCGAGGACCGCTTTCGCTGGAGCGCGACGATGATCGGCCTGTCGCTTGCGGTATTCGGAATCTTGCACGCCCTCGCTCAAGCCTTCGTCACTGGTCCCGCCACCAAACGTTTCGGCGAGAAGCAGGCCATTATCGCCGGCATGGCGGCCGACGCGCTGGGCTACGTCTTGCTGGCGTTCGCGACGCGAGGCTGGATGGCCTTCCCCATTATGATTCTTCTCGCTTCCGGCGGCATCGGGATGCCCGCGTTGCAGGCCATGCTGTCCAGGCAGGTCGCGCGCGCGCGCGCGCGCAGATGACAAGGATCGCTCGCGGCTCTTACCAGCCTAACTTCGATCACTGGACCGCTGATCGTCACGGCGATTTATGCCGCCTCGGCGAGCACATGGAACGGGTTGGCATGGATTGTAGGCGCCGCCCTATACCTTGTCTGCCTCCCCGCGTTGCGTCGCGGTGCATGGAGCCGGGCCACCTCGACCTGAATGGAAGCCGGCGGCACCTCGCTAACGGATTCACCACTCCAAGAATTGGAGCCAATCAATTCTTGCGGAGAACTGTGAATGCGCAAACCAACCCTTGGCAGAACATATCCATCGCGTCCGCCATCTCCAGCAGCCGCACGCGGCGCATCTCGGGCAGCGTTGGGTCCTGGCCACGGGTGCGCATGATCGTGCTCCTGTCGTTGAGGACCCGGCTAGGCTGGCGGGGTTGCCTTACTGGTTAGCAGAATGAATCACCGATACGCGAGCGAACGTGAAGCGACTGCTGCTGCAAAACGTCTGCGACCTGAGCAACAACATGAATGGTCTTCGGTTTCCGTGTTTCGTAAAGTCTGGAAACGCGGAAGTCAGCGCCCTGCACCATTATGTTCCGGATCTGCATCGCAGGATGCTGCTGGCTACCCTGTGGAACACCTACATCTGTATTAACGAAGCGCTGGCATTGACCCTGAGTGATTTTTCTCTGGTCCCGCCGCATCCATACCGCCAGTTGTTTACCCTCACAACGTTCCAGTAACCGGGCATGTTCATCATCAGTAACCCGTATCGTGAGCATCCTCTCTCGTTTCATCGGTATCATTACCCCCATGAACAGAAATCCCCCTTACACGGAGGCATCAGTGACCAAACAGGAAAAAACCGCCCTTAACATGGCCCGCTTTATCAGAAGCCAGACATTAACGCTTCTGGAGAAACTCAACGAGCTGGACGCGGATGAACAGGCAGACATCTGTGAATCGCTTCACGACCACGCTGATGAGCTTTACCGCAGCTGCCTCGCGCGTTTCGGTGATGACGGTGAAAACCTCTGACACATGCAGCTCCCGGAGACGGTCACAGCTTGTCTGTAAGCGGATGCCGGGAGCAGACAAGCCCGTCAGGGCGCGTCAGCGGGTGTTGGCGGGTGTCGGGGCGCAGCCATGACCCAGTCACGTAGCGATAGCGGAGTGTATACTGGCTTAACTATGCGGCATCAGAGCAGATTGTACTGAGAGTGCACCATATGCGGTGTGAAATACCGCACAGATGCGTAAGGAGAAAATACCGCATCAGGCGCTCTTCCGCTTCCTCGCTCACTGACTCGCTGCGCTCGGTCGTTCGGCTGCGGCGAGCGGTATCAGCTCACTCAAAGGCGGTAATACGGTTATCCACAGAATCAGGGGATAACGCAGGAAAGAACATGTGAGCAAAAGGCCAGCAAAAGGCCAGGAACCGTAAAAAGGCCGCGTTGCTGGCGTTTTTCCATAGGCTCCGCCCCCCTGACGAGCATCACAAAAATCGACGCTCAAGTCAGAGGTGGCGAAACCCGACAGGACTATAAAGATACCAGGCGTTTCCCCCTGGAAGCTCCCTCGTGCGCTCTCCTGTTCCGACCCTGCCGCTTACCGGATACCTGTCCGCCTTTCTCCCTTCGGGAAGCGTGGCGCTTTCTCATAGCTCACGCTGTAGGTATCTCAGTTCGGTGTAGGTCGTTCGCTCCAAGCTGGGCTGTGTGCACGAACCCCCCGTTCAGCCCGACCGCTGCGCCTTATCCGGTAACTATCGTCTTGAGTCCAACCCGGTAAGACACGACTTATCGCCACTGGCAGCAGCCACTGGTAACAGGATTAGCAGAGCGAGGTATGTAGGCGGTGCTACAGAGTTCTTGAAGTGGTGGCCTAACTACGGCTACACTAGAAGGACAGTATTTGGTATCTGCGCTCTGCTGAAGCCAGTTACCTTCGGAAAAAGAGTTGGTAGCTCTTGATCCGGCAAACAAACCACCGCTGGTAGCGGTGGTTTTTTTGTTTGCAAGCAGCAGATTACGCGCAGAAAAAAAGGATCTCAAGAAGATCCTTTGATCTTTTCTACGGGGTGCTCAGTGAACCAATTGGCCAACCGGAAGGAAAACCTTCCGGTTGGCCAATTGGTTGAACGAAAACTATCCTAGATCCTTTTAAATTAAAAATGAAGTTTTAAATCAATCTAAAGTATATATGAGTAAACTTGGTCTGACAGTTACCAATGCTTAATCAGTGAGGCACCTATCTCAGCGATCTGTCTATTTCGTTCATCCATAGTTGCCTGACTCCCCGTCGTGTAGATAACTACGATACGGGAGGGCTTACCATCTGGCCCCAGTGCTGCAATGATACCGCGAGACCCACGCTCACCGGCTCCAGATTTATCAGCAATAAACCAGCCAGCCGGAAGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTGCAGGCATCGTGGTGTCACGCTCGTCGTTTGGTATGGCTTCATTCAGCTCCGGTTCCCAACGATCAAGGCGAGTTACATGATCCCCCATGTTGTGCAAAAAAGCGGTTAGCTCCTTCGGTCCTCCGATCGTTGTCAGAAGTAAGTTGGCCGCAGTGTTATCACTCATGGTTATGGCAGCACTGCATAATTCTCTTACTGTCATGCCATCCGTAAGATGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCGAGTTGCTCTTGCCCGGCGTCAACACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCTTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACATTTCCCCGAAAAGTGCCACCTGACGTCTAAGAAACCATTATTATCATGACATTAACCTATAAAAATAGGCGTATCACGAGGCCCTTTCGTCTTCAAGAA
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<HTML><HEAD><TITLE>one_line.pbr322.toy.fa.2.10.10.80.10.20.10000.100.1.html</TITLE><BASE TARGET="one_line.pbr322.toy.fa.2.10.10.80.10.20.10000.100.txt.html"></HEAD><BODY bgcolor="#FBF8BC"><BR><PRE>Inverted Repeats Finder Program written by:</PRE><PRE><CENTER>Gary Benson<BR>Department of Biomathematical Sciences<BR>Mount Sinai School of Medicine<BR>Version 3.05<BR></CENTER>
Sequence: one_line.pbr322.toy.fa
Parameters: 2 10 10 80 10 20 10000 100
Parameters: 2 10 10 80 10 20 10000 100
Length: 4291</PRE>

<P><PRE>Tables: 1
<P><PRE>Tables: 1

This is table 1 of 1 ( 2 repeats found )
</PRE><PRE>
Expand All @@ -16,7 +16,7 @@

</TABLE>

<P><PRE>Tables: 1
<P><PRE>Tables: 1
</PRE><P>The End!

</BODY></HTML>
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Version 3.05

Sequence: one_line.pbr322.toy.fa
Parameters: 2 10 10 80 10 20 10000 100
Parameters: 2 10 10 80 10 20 10000 100
Length: 4291
ACGTcount: A:0.23, C:0.28, G:0.26, T:0.23, N:0.00

Expand All @@ -25,7 +25,7 @@
2972 >> (LF) TCCGGCAAAC
3016 << (RF) CGTTTGTTTT


2982 >> AAACCACCGCT >> 2992
3006 << *********** << 2996

Expand Down Expand Up @@ -60,7 +60,7 @@
3079 >> (LF) GTGCTCAGTG
3146 << (RF) CAAAAGCAAG


3089 >> AACCAATTGGCCAACCGGAAGG >> 3110
3136 << ********************** << 3115

Expand Down
1 change: 0 additions & 1 deletion docs/source/_static/examples/pbr322.toy.fa
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,3 @@ ACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTC
TCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACATTTCCCCG
AAAAGTGCCACCTGACGTCTAAGAAACCATTATTATCATGACATTAACCTATAAAAATAGGCGTATCACG
AGGCCCTTTCGTCTTCAAGAA

2 changes: 1 addition & 1 deletion docs/source/_static/logos/SIST-logo-black-text.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/source/_static/logos/SIST-logo-white-text.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/source/citation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,4 @@ The original SIST documentation listed the following contacts:

* Dina Zhabinskaya - dzhabinskaya@ucdavis.edu
* Craig Benham - cjbenham@ucdavis.edu
* Sally Madden - sallymadden@gmail.com
* Sally Madden - sallymadden@gmail.com
11 changes: 5 additions & 6 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'SIST'
copyright = '2026, CCPBioSim'
project = "SIST"
copyright = "2026, CCPBioSim"

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
Expand All @@ -29,18 +29,17 @@
napoleon_use_param = False
napoleon_use_ivar = True

templates_path = ['_templates']
templates_path = ["_templates"]
exclude_patterns = []



# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'furo'
html_theme = "furo"
html_theme_options = {
"dark_logo": "logos/SIST-logo-white-text.svg",
"light_logo": "logos/SIST-logo-black-text.svg",
}

html_static_path = ['_static']
html_static_path = ["_static"]
30 changes: 30 additions & 0 deletions docs/source/development.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,36 @@ During a normal source test run, the test fixtures create a temporary copy of
the repository, build the C++ executables, and run the supported calculations
from that working copy.

Pre-commit hooks
----------------

SIST uses **pre-commit hooks** to maintain code quality and consistent style
across the Python and C++ code.

Install the pre-commit dependencies and enable the hooks:

.. code-block:: bash

python -m pip install -e '.[pre-commit]'
pre-commit install

Our tooling stack:

* **Python linting and formatting** via ``ruff``
* **C++ formatting and static analysis** via ``clang-format`` and ``clang-tidy``
* **Basic repository checks** via ``pre-commit-hooks``
* **Docstring RST validation** via ``rstcheck``

Run the checks manually against the whole repository:

.. code-block:: bash

pre-commit run --all-files

.. note::

Pull requests must pass all pre-commit checks before being merged.

Scientific regression baselines
--------------------------------

Expand Down
11 changes: 10 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Repository = "https://github.com/CCPBioSim/SIST"
[project.scripts]
sist = "sist.cli:main"
# Deprecated aliases for scripted workflows that still invoke the old Perl
# script names directly.
# script names directly.
"master.pl" = "sist.cli:main"
"IR_finder.pl" = "sist.ir_finder_cli:main"

Expand All @@ -45,6 +45,15 @@ testing = [
"mypy>=1.14,<2.0",
]

pre-commit = [
"pre-commit>=4.5,<5.0",
"ruff>=0.16,<0.17",
"pylint>=4.0,<5.0",
"rstcheck>=6.2,<7.0",
"clang-format>=23.0,<24.0",
"clang-tidy>=22.0,<23.0",
]

[tool.setuptools.packages.find]
where = ["src"]
include = ["sist*"]
Expand Down
73 changes: 33 additions & 40 deletions src/trans_compete/G_x.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,54 +22,47 @@
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

G_x::G_x()
{
G_x::G_x() {

sum_xG = 0.0;
sum_xB = 0.0;
ave_Gx = 0.0;
px = 0.0;
sum_xG = 0.0;
sum_xB = 0.0;
ave_Gx = 0.0;
px = 0.0;
}

void G_x::reset()
{
sum_xG = 0.0;
sum_xB = 0.0;
ave_Gx = 0.0;
px = 0.0;
void G_x::reset() {
sum_xG = 0.0;
sum_xB = 0.0;
ave_Gx = 0.0;
px = 0.0;
}

void G_x::add(double gs, double exponent, double rt, double lastG, double lastB)
{
if(gs == -1.0 && rt == -1.0){
sum_xG = sum_xG + lastG;
sum_xB = sum_xB + lastB;
}
else{
sum_xG = sum_xG + gs*exponent + lastG;
sum_xB = sum_xB + exponent + lastB;
}
void G_x::add(double gs, double exponent, double rt, double lastG,
double lastB) {
if (gs == -1.0 && rt == -1.0) {
sum_xG = sum_xG + lastG;
sum_xB = sum_xB + lastB;
} else {
sum_xG = sum_xG + gs * exponent + lastG;
sum_xB = sum_xB + exponent + lastB;
}
}

//intput: average energy and partition function
void G_x::calc(double ave_Gs, double ZsumB)
{
if (ZsumB == 0.0)
px = 1.0;
else
// V: This is the calculation for the probability
px = sum_xB / ZsumB;

if(sum_xB == 0.0)
ave_Gx = INFINITE_Gx;
else
// V: This is the calculation of the energy required to transition
ave_Gx = sum_xG / sum_xB - ave_Gs;
}

G_x::~G_x()
{
// intput: average energy and partition function
void G_x::calc(double ave_Gs, double ZsumB) {
if (ZsumB == 0.0)
px = 1.0;
else
// V: This is the calculation for the probability
px = sum_xB / ZsumB;

if (sum_xB == 0.0)
ave_Gx = INFINITE_Gx;
else
// V: This is the calculation of the energy required to transition
ave_Gx = sum_xG / sum_xB - ave_Gs;
}

G_x::~G_x() {}

#endif
Loading
Loading