{"id":50544745,"url":"https://github.com/eltrompetero/coniii","last_synced_at":"2026-06-03T23:00:44.485Z","repository":{"id":62564460,"uuid":"154201417","full_name":"eltrompetero/coniii","owner":"eltrompetero","description":"Convenient Interface to Inverse Ising (ConIII)","archived":false,"fork":false,"pushed_at":"2026-06-02T22:10:02.000Z","size":15784,"stargazers_count":21,"open_issues_count":10,"forks_count":11,"subscribers_count":2,"default_branch":"py3","last_synced_at":"2026-06-02T23:14:07.911Z","etag":null,"topics":["inference","inverse-ising","ising","maxent","python","spin-glass","statistics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eltrompetero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-22T19:14:03.000Z","updated_at":"2025-10-26T17:51:54.000Z","dependencies_parsed_at":"2023-01-24T22:45:32.634Z","dependency_job_id":null,"html_url":"https://github.com/eltrompetero/coniii","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/eltrompetero/coniii","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltrompetero%2Fconiii","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltrompetero%2Fconiii/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltrompetero%2Fconiii/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltrompetero%2Fconiii/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eltrompetero","download_url":"https://codeload.github.com/eltrompetero/coniii/tar.gz/refs/heads/py3","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltrompetero%2Fconiii/sbom","scorecard":{"id":374032,"data":{"date":"2025-08-11","repo":{"name":"github.com/eltrompetero/coniii","commit":"f25863705f8e459771ef60ea51c4bd6587904c78"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/28 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T13:44:57.139Z","repository_id":62564460,"created_at":"2025-08-18T13:44:57.139Z","updated_at":"2025-08-18T13:44:57.139Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33883102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["inference","inverse-ising","ising","maxent","python","spin-glass","statistics"],"created_at":"2026-06-03T23:00:43.204Z","updated_at":"2026-06-03T23:00:44.476Z","avatar_url":"https://github.com/eltrompetero.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![tests](https://github.com/eltrompetero/coniii/actions/workflows/test.yml/badge.svg?branch=dev)](https://github.com/eltrompetero/coniii/actions/workflows/test.yml) [![PyPI version fury.io](https://badge.fury.io/py/coniii.svg)](https://pypi.python.org/pypi/coniii/) [![PyPI license](https://img.shields.io/pypi/l/coniii.svg)](https://pypi.python.org/pypi/coniii/)\n\n# Convenient Interface to Inverse Ising\n\nConIII is a Python package for solving maximum entropy problems with a focus on the\npairwise maximum entropy model, also known as the inverse Ising problem.\n\nIf you use ConIII for your research, please consider citing the following:\n\u003e Lee, E.D. and Daniels, B.C., 2019. Convenient Interface to Inverse Ising (ConIII): A\n\u003e Python 3 Package for Solving Ising-Type Maximum Entropy Models. Journal of Open Research\n\u003e Software, 7(1), p.3. DOI: http://doi.org/10.5334/jors.217.\n\nThe paper also contains an overview of the modules. For code documentation, see\n[coniii.readthedocs.io](https://coniii.readthedocs.io/en/latest/ \"Documentation\").\n\n## Package layout\n\n| Area | Status | What's there |\n| --- | --- | --- |\n| `coniii.solvers` | stable | Inverse-Ising solvers: `Enumerate`, `SparseEnumerate`, `MPF`, `MCH`, `Pseudo`, `ClusterExpansion`, `RegularizedMeanField`. |\n| `coniii.samplers` | stable | Monte Carlo samplers: `Metropolis`, `WolffIsing`, `ParallelTempering`, `Potts3`, and the `sample_ising` helper. |\n| `coniii.models` | stable | Maxent model classes: `Ising`, `Triplet`, `Potts3`. |\n| `coniii.utils` | stable | Indexing, correlation, parameter-conversion, and helper-function utilities. |\n| `coniii.enumerate`, `coniii.enumerate_potts`, `coniii.ising_eqn` | stable | Exact enumeration and the generated equation files it produces. |\n| `coniii.experimental` | work in progress | Unvalidated samplers (`SWIsing`, `HamiltonianMC`, `Heisenberg3DSampler`) and an entropy stub. Not imported by `import coniii`; import explicitly. |\n| `coniii.legacy` | deprecated | `mean_field_ising` (still used internally by `ClusterExpansion`/`RegularizedMeanField`) and `pseudo_inverse_ising`. Direct imports warn. |\n\nThe top-level names available via `from coniii import *` are listed in `coniii.__all__`.\n\n## Installation\n\nTo set up an Anaconda environment called \"test\" and install from pip, run the following code. The openblas package is only recommended for AMD users.\n```bash\n$ conda create -n test -c conda-forge python=3.10 numpy scipy numba cython jupyter ipython multiprocess boost==1.74 matplotlib mpmath blas=*=openblas\n$ pip install coniii\n```\nIf you have trouble using `pip`, you can build from source. Make sure you are running\nPython 3.10 and have boost v1.74.0 installed.\n```bash\n$ git clone https://github.com/eltrompetero/coniii.git\n$ cd coniii\n$ pip install .\n```\nThe build probes for Boost and compiles the optional C++ samplers extension if it is\nfound; without Boost it falls back to the (slower) pure-Python samplers. To build\ndistributable wheels instead, run `python -m build` (or the convenience wrapper\n`./pypi_compile.sh`).\n\n#### Setting up exact solution for systems *N \u003e 9*\n`Enumerate` ships with precomputed equation files up to N = 9. For larger systems,\ngenerate the file yourself by running the `enumerate` module (works from any directory):\n```bash\n$ python -m coniii.enumerate [N] 1\n```\n\nwhere `[N]` is the system size. The trailing `1` selects the {-1,1} basis (the package\ndefault); omit it for the {0,1} basis. See the `__main__` block at the end of\n`enumerate.py` for more options.\n\n## Quick guide with Jupyter notebook\n\nA [Jupyter\nnotebook](https://github.com/eltrompetero/coniii/blob/py3/ipynb/usage_guide.ipynb) with a\nbrief introduction and examples for how to use ConIII is available. The\nnotebook is also installed into your package directory if you used pip.\n\nTo use the notebook, install jupyter such as by following the setup instructions above. Then, copy the notebook file \"usage_guide.ipynb\" into a directory outside the \"coniii\" directory. Change to this directory and run\n```bash\n$ jupyter notebook\n```\n\nThis should open the notebook in your default web browser.\n\n## Troubleshooting\n\nThis package is maintained for Python 3 and has been tested on Python 3.10. Check which\nversion you are running with\n```bash\n$ python --version\n```\n\nConIII has been tested on the following systems\n* Ubuntu 20.04.5\n\nTrouble compiling the Boost extension? Check that your Boost library is on the include\npath. If it is not, add the include directory to `include_dirs` in the `_detect_boost()`\nfunction in \"setup.py\" before compiling.\n\n\n### Support\n\nPlease file an issue on the GitHub if you have any problems or feature requests. Provide a\nstack trace or other information that would be helpful in debugging. For example, OS,\nsystem configuration details, and the results of unit tests. Unit tests can be run by\nnavigating to the package directory and running\n\n```bash\n$ pytest -q\n```\n\nThe package directory can be found by running inside python\n```python\n\u003e\u003e\u003e import coniii\n\u003e\u003e\u003e coniii.__path__\n```\n\nYou may also need to install pytest.\n```bash\n$ conda install -c conda-forge pytest\n```\n\n### Updating\n\nWhen updating, please read the [RELEASE_NOTES](https://github.com/eltrompetero/coniii/blob/py3/RELEASE_NOTES). There may\nbe modifications to the interface including parameter names as we make future versions\nmore user friendly. **Note:** v4.0.0 contains breaking changes — see the RELEASE_NOTES\nbefore upgrading.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feltrompetero%2Fconiii","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feltrompetero%2Fconiii","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feltrompetero%2Fconiii/lists"}