{"id":13675824,"url":"https://github.com/aristoteleo/dynamo-release","last_synced_at":"2026-03-18T01:10:30.568Z","repository":{"id":37030162,"uuid":"195433524","full_name":"aristoteleo/dynamo-release","owner":"aristoteleo","description":"Inclusive model of expression dynamics with conventional or metabolic labeling based scRNA-seq / multiomics, vector field reconstruction and differential geometry analyses","archived":false,"fork":false,"pushed_at":"2026-02-20T20:40:01.000Z","size":27548,"stargazers_count":490,"open_issues_count":14,"forks_count":62,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-02-21T01:51:10.319Z","etag":null,"topics":["cell-fate","differential-geometry","dynamical-systems","dynamo","nasc-seq","potential-landscape","rna-acceleration","rna-curvature","rna-divergence","rna-jacobian","rna-velocity","sci-fate","scnt-seq","scrna-seq","scslam-seq","vector-field"],"latest_commit_sha":null,"homepage":"https://dynamo-release.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aristoteleo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2019-07-05T15:44:35.000Z","updated_at":"2026-02-20T20:37:53.000Z","dependencies_parsed_at":"2023-10-20T17:35:44.105Z","dependency_job_id":"7cd2883d-a12e-4173-8878-48d4a5dc97f4","html_url":"https://github.com/aristoteleo/dynamo-release","commit_stats":{"total_commits":3222,"total_committers":33,"mean_commits":97.63636363636364,"dds":0.7666045934202359,"last_synced_commit":"1eaafae718dbb9d41398f6a1eb9c80a2daae65a5"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/aristoteleo/dynamo-release","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aristoteleo%2Fdynamo-release","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aristoteleo%2Fdynamo-release/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aristoteleo%2Fdynamo-release/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aristoteleo%2Fdynamo-release/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aristoteleo","download_url":"https://codeload.github.com/aristoteleo/dynamo-release/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aristoteleo%2Fdynamo-release/sbom","scorecard":{"id":206963,"data":{"date":"2025-08-11","repo":{"name":"github.com/aristoteleo/dynamo-release","commit":"ce3c4a6c49c6513e04268ba647168d903fb19c46"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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":"Maintained","score":10,"reason":"22 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","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":10,"reason":"no dangerous workflow patterns detected","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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/python-docker.yml:1","Warn: no topLevel permission defined: .github/workflows/python-package.yml:1","Warn: no topLevel permission defined: .github/workflows/python-plain-run-test.yml:1","Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/stale.yml:1","Info: no jobLevel write permissions found"],"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python-publish.yml:32"],"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-docker.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-docker.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-docker.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-docker.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-docker.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-docker.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-docker.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-docker.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-docker.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-plain-run-test.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-plain-run-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-plain-run-test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-plain-run-test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-plain-run-test.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-plain-run-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/aristoteleo/dynamo-release/stale.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:2","Warn: containerImage not pinned by hash: Dockerfile:7","Warn: pipCommand not pinned by hash: Dockerfile:6","Warn: npmCommand not pinned by hash: .github/workflows/python-docker.yml:20","Warn: npmCommand not pinned by hash: .github/workflows/python-docker.yml:46","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:28","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/python-plain-run-test.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/python-plain-run-test.yml:28","Warn: pipCommand not pinned by hash: .github/workflows/python-plain-run-test.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/python-plain-run-test.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/python-plain-run-test.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/python-plain-run-test.yml:45","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:43","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:44","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of  14 pipCommand dependencies pinned","Info:   0 out of   2 npmCommand dependencies pinned"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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"}},{"name":"Vulnerabilities","score":0,"reason":"42 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2021-870 / GHSA-8rh6-h94m-vj54","Warn: Project is vulnerable to: PYSEC-2024-4 / GHSA-2mqj-m65w-jghx","Warn: Project is vulnerable to: PYSEC-2023-165 / GHSA-cwvm-v4w8-q58c","Warn: Project is vulnerable to: PYSEC-2022-42992 / GHSA-hcpj-qp55-gfph","Warn: Project is vulnerable to: PYSEC-2023-137 / GHSA-pr76-5cm5-w9cj","Warn: Project is vulnerable to: PYSEC-2023-161 / GHSA-wfm5-v35h-vwf4","Warn: Project is vulnerable to: GHSA-29gw-9793-fvw7","Warn: Project is vulnerable to: PYSEC-2015-24 / GHSA-4vwq-x64q-j4cj","Warn: Project is vulnerable to: PYSEC-2017-46 / GHSA-66gw-5xpf-gfp5","Warn: Project is vulnerable to: PYSEC-2015-25 / GHSA-92mr-v722-f48m","Warn: Project is vulnerable to: PYSEC-2022-12 / GHSA-pq7m-3gw7-gq5x","Warn: Project is vulnerable to: PYSEC-2017-47","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2021-140 / GHSA-9w8r-397f-prfh","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: PYSEC-2021-141 / GHSA-pq64-v7f5-gqh8","Warn: Project is vulnerable to: PYSEC-2020-107 / GHSA-jjw5-xxj6-pcv5","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: PYSEC-2020-108","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2013-22 / GHSA-27x4-j476-jp5f","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579","Warn: Project is vulnerable to: PYSEC-2017-74","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2017-48 / GHSA-chqf-hx79-gxc6","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg","Warn: Project is vulnerable to: GHSA-33p9-3p43-82vq","Warn: Project is vulnerable to: PYSEC-2022-42974 / GHSA-m678-f26j-3hrp","Warn: Project is vulnerable to: GHSA-9q39-rmj3-p4r2"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T23:59:08.141Z","repository_id":37030162,"created_at":"2025-08-16T23:59:08.141Z","updated_at":"2025-08-16T23:59:08.141Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30639077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-18T00:09:27.587Z","status":"ssl_error","status_checked_at":"2026-03-18T00:09:26.123Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cell-fate","differential-geometry","dynamical-systems","dynamo","nasc-seq","potential-landscape","rna-acceleration","rna-curvature","rna-divergence","rna-jacobian","rna-velocity","sci-fate","scnt-seq","scrna-seq","scslam-seq","vector-field"],"created_at":"2024-08-02T12:01:04.596Z","updated_at":"2026-03-18T01:10:30.538Z","avatar_url":"https://github.com/aristoteleo.png","language":"Python","funding_links":[],"categories":["Software packages"],"sub_categories":["RNA-seq"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg height=\"150\" src=\"https://dynamo-release.readthedocs.io/en/latest/_static/logo.png\" /\u003e\n\u003c/p\u003e\n\n##\n\n\u003c!--\n[![package](https://github.com/aristoteleo/dynamo-release/workflows/Python%20package/badge.svg)](https://github.com/aristoteleo/dynamo-release)/!\u003e \n--\u003e\n\n[![upload](https://img.shields.io/pypi/v/dynamo-release?logo=PyPI)](https://pypi.org/project/dynamo-release/) \n[![conda](https://img.shields.io/conda/vn/conda-forge/dynamo-release.svg)](https://anaconda.org/conda-forge/dynamo-release)\n[![download](https://static.pepy.tech/badge/dynamo-release)](https://pepy.tech/project/dynamo-release)\n[![star](https://img.shields.io/github/stars/aristoteleo/dynamo-release?logo=GitHub\u0026color=red)](https://github.com/aristoteleo/dynamo-release/stargazers)\n[![build](https://github.com/aristoteleo/dynamo-release/actions/workflows/python-package.yml/badge.svg)](https://github.com/aristoteleo/dynamo-release/actions/workflows/python-package.yml)\n[![documentation](https://readthedocs.org/projects/dynamo-release/badge/?version=latest)](https://dynamo-release.readthedocs.io/en/latest/)\n[![upload_python_package](https://github.com/aristoteleo/dynamo-release/actions/workflows/python-publish.yml/badge.svg)](https://github.com/aristoteleo/dynamo-release/actions/workflows/python-publish.yml)\n[![test](https://github.com/aristoteleo/dynamo-release/actions/workflows/python-plain-run-test.yml/badge.svg)](https://github.com/aristoteleo/dynamo-release/actions/workflows/python-plain-run-test.yml)\n\n## **Dynamo**: Mapping Transcriptomic Vector Fields of Single Cells\n\nInclusive model of expression dynamics with metabolic labeling based scRNA-seq / multiomics, vector field reconstruction, potential landscape mapping, differential geometry analyses, and most probably paths / *in silico* perturbation predictions.\n\n[Installation](https://dynamo-release.readthedocs.io/en/latest/installation.html) - [Ten minutes to dynamo](https://dynamo-release.readthedocs.io/en/latest/user_guide/index.html) - [Tutorials](https://dynamo-release.readthedocs.io/en/latest/tutorials/index.html) - [API](https://dynamo-release.readthedocs.io/en/latest/api/index.html) - [Citation](https://dynamo-release.readthedocs.io/en/latest/references.html) - [Theory](https://dynamo-release.readthedocs.io/en/latest/introduction/index.html)\n\n![Dynamo](https://user-images.githubusercontent.com/7456281/152110270-7ee1b0ed-1205-495d-9d65-59c7984d2fa2.png)\n\nSingle-cell (sc)RNA-seq, together with RNA velocity and metabolic labeling, reveals cellular states and transitions at unprecedented resolution. Fully exploiting these data, however, requires kinetic models capable of unveiling governing regulatory functions. Here, we introduce an analytical framework dynamo, which infers absolute RNA velocity, reconstructs continuous vector fields that predict cell fates, employs differential geometry to extract underlying regulations, and ultimately predicts optimal reprogramming paths and perturbation outcomes. We highlight dynamo’s power to overcome fundamental limitations of conventional splicing-based RNA velocity analyses to enable accurate velocity estimations on a metabolically labeled human hematopoiesis scRNA-seq dataset. Furthermore, differential geometry analyses reveal mechanisms driving early megakaryocyte appearance and elucidate asymmetrical regulation within the PU.1-GATA1 circuit. Leveraging the least-action-path method, dynamo accurately predicts drivers of numerous hematopoietic transitions. Finally, in silico perturbations predict cell-fate diversions induced by gene perturbations. Dynamo, thus, represents an important step in advancing quantitative and predictive theories of cell-state transitions.\n\n## Highlights of dynamo\n\n* Robust and accurate estimation of RNA velocities for regular scRNA-seq datasets:\n    * Three methods for the velocity estimations (including the new negative binomial distribution based approach)\n    * Improved kernels for transition matrix calculation and velocity projection \n    * Strategies to correct RNA velocity vectors (when your RNA velocity direction is problematic) \n* Inclusive modeling of time-resolved metabolic labeling based scRNA-seq:\n    * Overcome intrinsic limitation of the conventional splicing based RNA velocity analyses\n    * Explicitly model RNA metabolic labeling, in conjunction with RNA bursting, transcription, splicing and degradation\n    * Comprehensive RNA kinetic rate estimation for one-shot, pulse, chase and mixture metabolic labeling experiments\n* Move beyond RNA velocity to continuous vector field function for gaining mechanistic insights into cell fate transitions:\n    * Dynamical systems approaches to identify stable cell types (fixed points), boundaries of cell states (separatrices), etc\n    * Calculate RNA acceleration (reveals early drivers), curvature (reveals master regulators of fate decision points), divergence (stability of cell states) and RNA Jacobian (cell-state dependent regulatory networks) \n    * Various downstream differential geometry analyses to rank critical regulators/effectors,  and visualize regulatory networks at key fate decision points    \n* Non-trivial vector field predictions of cell fate transitions:\n    * Least action path approach to predict the optimal paths and transcription factors of cell fate reprogramming\n    * In silico perturbation to predict the gene-wise perturbation effects and cell fate diversion after genetic perturbations\n\n## News\n* 5/30/2023: dynamo 1.3.0 released!\n* 3/1/2023: We welcome @Sichao25 to join the dynamo development team!\n* 1/28/2023: We welcome @Ukyeon to join the dynamo development team! \n* 15/12/2022: *Thanks for @elfofmaxwell and @MukundhMurthy's contribution*. dynamo 1.2.0 released\n* 11/11/2022: the continuing development of dynamo and the Aristotle ecosystem will be supported by CZI. See [here](https://chanzuckerberg.com/eoss/proposals/predictive-modeling-of-single-cell-multiomics-over-time-and-space/)\n* 4/14/2022: dynamo 1.1.0 released!\n* 3/14/2022: Since today dynamo has its own logo! Here the arrow represents the RNA velocity vector field, while the helix is the RNA molecule and the colored dots are RNA metabolic labels (4sU labeling). See [readthedocs](https://dynamo-release.readthedocs.io/en/latest/index.html)\n* 2/15/2022: primers and tutorials on least action paths and in silico perturbation are released.\n* 2/1/2022: after 3.5+ years of perseverance, our dynamo paper is finally online in [Cell](https://www.sciencedirect.com/science/article/pii/S0092867421015774#tbl1) today!\n\n## Discussion \nPlease use github issue tracker to report coding related [issues](https://github.com/aristoteleo/dynamo-release/issues) of dynamo. For community discussion of novel usage cases, analysis tips and biological interpretations of dynamo, please join our public slack workspace: [dynamo-discussion](https://join.slack.com/t/dynamo-discussionhq/shared_invite/zt-itnzjdxs-PV~C3Hr9uOArHZcmv622Kg) (Only a working email address is required from the slack side). \n\n## Contribution \nIf you want to contribute to the development of dynamo, please check out CONTRIBUTION instruction: [Contribution](https://github.com/aristoteleo/dynamo-release/blob/master/CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faristoteleo%2Fdynamo-release","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faristoteleo%2Fdynamo-release","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faristoteleo%2Fdynamo-release/lists"}