{"id":350824,"name":"s-jSDM","description":"A scalable and fast method for estimating joint Species Distribution Models (jSDMs) for big community data, including eDNA data.","url":"https://github.com/theoreticalecology/s-jsdm","last_synced_at":"2026-05-31T21:30:27.667Z","repository":{"id":37422704,"uuid":"221264554","full_name":"TheoreticalEcology/s-jSDM","owner":"TheoreticalEcology","description":"Scalable joint species distribution modeling","archived":false,"fork":false,"pushed_at":"2026-04-21T11:42:24.000Z","size":53618,"stargazers_count":78,"open_issues_count":54,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-05-15T14:04:42.365Z","etag":null,"topics":["deep-learning","gpu-acceleration","machine-learning","species-distribution-modelling","species-interactions"],"latest_commit_sha":null,"homepage":"https://cran.r-project.org/web/packages/sjSDM/index.html","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheoreticalEcology.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2019-11-12T16:38:43.000Z","updated_at":"2026-05-13T18:13:09.000Z","dependencies_parsed_at":"2023-02-10T09:01:28.682Z","dependency_job_id":"e598acff-e90b-4b44-bc51-a8d04f8a4009","html_url":"https://github.com/TheoreticalEcology/s-jSDM","commit_stats":{"total_commits":464,"total_committers":9,"mean_commits":51.55555555555556,"dds":0.6961206896551724,"last_synced_commit":"b1d9c876761c477ff2e2170dd7f7643b0c43de96"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/sbom","scorecard":{"id":140706,"data":{"date":"2025-08-11","repo":{"name":"github.com/TheoreticalEcology/s-jSDM","commit":"5cdefba3ed1206ee5aaf7ac09ab1e516592dfee7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/19 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":"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":"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":"Maintained","score":2,"reason":"1 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/installation.yaml:1","Warn: no topLevel permission defined: .github/workflows/rcmdcheck.yaml: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":"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":"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":"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":"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/installation.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/installation.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/installation.yaml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  11 third-party GitHubAction 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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 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-16T08:02:02.540Z","repository_id":37422704,"created_at":"2025-08-16T08:02:02.541Z","updated_at":"2025-08-16T08:02:02.541Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33143276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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"}},"owner":{"login":"TheoreticalEcology","name":"Theoretical Ecology","uuid":"22679875","kind":"organization","description":"Repositories of the Theoretical Ecology Group, University of Regensburg","email":null,"website":"http://www.uni-regensburg.de/biologie-vorklinische-medizin/theoretische-oekologie/forschung/index.html","location":"Regensburg, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/22679875?v=4","repositories_count":10,"last_synced_at":"2023-03-05T01:08:20.721Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/TheoreticalEcology","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T03:23:55.397Z","updated_at":"2023-03-05T01:08:20.749Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology/repositories"},"packages":[{"id":425742,"name":"sjSDM","ecosystem":"cran","description":"Scalable Joint Species Distribution Modeling","homepage":"https://github.com/TheoreticalEcology/s-jSDM/","licenses":"GPL-3","normalized_licenses":["GPL-3.0"],"repository_url":"https://github.com/TheoreticalEcology/s-jSDM","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2022-01-10T11:10:00.000Z","latest_release_published_at":"2025-09-17T00:00:00.000Z","latest_release_number":"1.0.7","last_synced_at":"2026-05-25T19:03:48.659Z","created_at":"2022-04-06T18:29:20.015Z","updated_at":"2026-05-25T19:09:29.584Z","registry_url":"https://cran.r-project.org/package=sjSDM","install_command":null,"documentation_url":"http://cran.r-project.org/web/packages/sjSDM/sjSDM.pdf","metadata":{},"repo_metadata":{"id":37422704,"uuid":"221264554","full_name":"TheoreticalEcology/s-jSDM","owner":"TheoreticalEcology","description":"Scalable joint species distribution modeling","archived":false,"fork":false,"pushed_at":"2026-04-21T11:42:24.000Z","size":53618,"stargazers_count":78,"open_issues_count":54,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-05-15T14:04:42.365Z","etag":null,"topics":["deep-learning","gpu-acceleration","machine-learning","species-distribution-modelling","species-interactions"],"latest_commit_sha":null,"homepage":"https://cran.r-project.org/web/packages/sjSDM/index.html","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheoreticalEcology.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2019-11-12T16:38:43.000Z","updated_at":"2026-05-13T18:13:09.000Z","dependencies_parsed_at":"2023-02-10T09:01:28.682Z","dependency_job_id":"e598acff-e90b-4b44-bc51-a8d04f8a4009","html_url":"https://github.com/TheoreticalEcology/s-jSDM","commit_stats":{"total_commits":464,"total_committers":9,"mean_commits":51.55555555555556,"dds":0.6961206896551724,"last_synced_commit":"b1d9c876761c477ff2e2170dd7f7643b0c43de96"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/sbom","scorecard":{"id":140706,"data":{"date":"2025-08-11","repo":{"name":"github.com/TheoreticalEcology/s-jSDM","commit":"5cdefba3ed1206ee5aaf7ac09ab1e516592dfee7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/19 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":"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":"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":"Maintained","score":2,"reason":"1 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/installation.yaml:1","Warn: no topLevel permission defined: .github/workflows/rcmdcheck.yaml: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":"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":"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":"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":"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/installation.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/installation.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/installation.yaml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  11 third-party GitHubAction 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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 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-16T08:02:02.540Z","repository_id":37422704,"created_at":"2025-08-16T08:02:02.541Z","updated_at":"2025-08-16T08:02:02.541Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33406444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"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"},"owner_record":{"login":"TheoreticalEcology","name":"Theoretical Ecology","uuid":"22679875","kind":"organization","description":"Repositories of the Theoretical Ecology Group, University of Regensburg","email":null,"website":"http://www.uni-regensburg.de/biologie-vorklinische-medizin/theoretische-oekologie/forschung/index.html","location":"Regensburg, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/22679875?v=4","repositories_count":10,"last_synced_at":"2023-03-05T01:08:20.721Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/TheoreticalEcology","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T03:23:55.397Z","updated_at":"2023-03-05T01:08:20.749Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-05-25T19:09:29.584Z","dependent_packages_count":0,"downloads":240,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":52.77922570250675,"dependent_repos_count":35.45467469080226,"dependent_packages_count":29.796711368051938,"stargazers_count":7.245415343789982,"forks_count":5.6484859972515755,"average":26.1849026204805},"purl":"pkg:cran/sjSDM","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/cran/sjSDM","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/cran/sjSDM","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/cran/sjSDM/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-05-15T14:03:01.838Z","issues_count":124,"pull_requests_count":30,"avg_time_to_close_issue":16806440.549295776,"avg_time_to_close_pull_request":782083.1,"issues_closed_count":71,"pull_requests_closed_count":30,"pull_request_authors_count":2,"issue_authors_count":45,"avg_comments_per_issue":2.814516129032258,"avg_comments_per_pull_request":0.13333333333333333,"merged_pull_requests_count":28,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":14,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":2382766.0,"past_year_avg_time_to_close_pull_request":157.0,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":9,"past_year_avg_comments_per_issue":1.5,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/issues","maintainers":[{"login":"MaximilianPi","count":51,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaximilianPi"},{"login":"florianhartig","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/florianhartig"},{"login":"dougwyu","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dougwyu"},{"login":"chnpenny","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chnpenny"}],"active_maintainers":[{"login":"MaximilianPi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaximilianPi"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/sjSDM/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/sjSDM/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/sjSDM/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/sjSDM/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/sjSDM/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/sjSDM/codemeta","maintainers":[{"uuid":"maximilian.pichler@biologie.uni-regensburg.de","login":null,"name":"Maximilian Pichler","email":"maximilian.pichler@biologie.uni-regensburg.de","url":null,"packages_count":2,"html_url":null,"role":null,"created_at":"2022-11-14T17:15:16.424Z","updated_at":"2022-11-14T17:15:16.424Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/maintainers/maximilian.pichler@biologie.uni-regensburg.de/packages"}],"registry":{"name":"cran.r-project.org","url":"https://cran.r-project.org","ecosystem":"cran","default":true,"packages_count":28480,"maintainers_count":15808,"namespaces_count":0,"keywords_count":0,"github":"r-project-org","metadata":{"icon_url":"https://cran.r-project.org/CRANlogo.png"},"icon_url":"https://cran.r-project.org/CRANlogo.png","created_at":"2022-04-06T16:32:25.637Z","updated_at":"2026-04-27T18:20:16.286Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/namespaces"}},{"id":2921789,"name":"sjsdm-py","ecosystem":"pypi","description":"jSDM package","homepage":"https://github.com/TheoreticalEcology/s-jSDM","licenses":"GNU General Public License v3 (GPLv3)","normalized_licenses":["GPL-2.0"],"repository_url":"https://github.com/TheoreticalEcology/s-jSDM","keywords_array":[],"namespace":null,"versions_count":5,"first_release_published_at":"2020-02-17T17:17:26.000Z","latest_release_published_at":"2021-05-26T17:29:34.000Z","latest_release_number":"0.1.1","last_synced_at":"2026-05-25T19:03:48.761Z","created_at":"2022-04-10T12:37:52.131Z","updated_at":"2026-05-25T19:03:48.761Z","registry_url":"https://pypi.org/project/sjsdm-py/","install_command":"pip install sjsdm-py --index-url https://pypi.org/simple","documentation_url":"https://sjsdm-py.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["License :: OSI Approved :: GNU General Public License v3 (GPLv3)","Operating System :: OS Independent","Programming Language :: Python :: 3","Programming Language :: Python :: 3.6","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8"],"normalized_name":"sjsdm-py","project_status":null},"repo_metadata":{"id":37422704,"uuid":"221264554","full_name":"TheoreticalEcology/s-jSDM","owner":"TheoreticalEcology","description":"Scalable joint species distribution modeling","archived":false,"fork":false,"pushed_at":"2026-04-21T11:42:24.000Z","size":53618,"stargazers_count":78,"open_issues_count":54,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-05-15T14:04:42.365Z","etag":null,"topics":["deep-learning","gpu-acceleration","machine-learning","species-distribution-modelling","species-interactions"],"latest_commit_sha":null,"homepage":"https://cran.r-project.org/web/packages/sjSDM/index.html","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheoreticalEcology.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2019-11-12T16:38:43.000Z","updated_at":"2026-05-13T18:13:09.000Z","dependencies_parsed_at":"2023-02-10T09:01:28.682Z","dependency_job_id":"e598acff-e90b-4b44-bc51-a8d04f8a4009","html_url":"https://github.com/TheoreticalEcology/s-jSDM","commit_stats":{"total_commits":464,"total_committers":9,"mean_commits":51.55555555555556,"dds":0.6961206896551724,"last_synced_commit":"b1d9c876761c477ff2e2170dd7f7643b0c43de96"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/sbom","scorecard":{"id":140706,"data":{"date":"2025-08-11","repo":{"name":"github.com/TheoreticalEcology/s-jSDM","commit":"5cdefba3ed1206ee5aaf7ac09ab1e516592dfee7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/19 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":"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":"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":"Maintained","score":2,"reason":"1 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/installation.yaml:1","Warn: no topLevel permission defined: .github/workflows/rcmdcheck.yaml: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":"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":"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":"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":"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/installation.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/installation.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/installation.yaml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/installation.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rcmdcheck.yaml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/TheoreticalEcology/s-jSDM/rcmdcheck.yaml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  11 third-party GitHubAction 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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 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-16T08:02:02.540Z","repository_id":37422704,"created_at":"2025-08-16T08:02:02.541Z","updated_at":"2025-08-16T08:02:02.541Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33143276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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"},"owner_record":{"login":"TheoreticalEcology","name":"Theoretical Ecology","uuid":"22679875","kind":"organization","description":"Repositories of the Theoretical Ecology Group, University of Regensburg","email":null,"website":"http://www.uni-regensburg.de/biologie-vorklinische-medizin/theoretische-oekologie/forschung/index.html","location":"Regensburg, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/22679875?v=4","repositories_count":10,"last_synced_at":"2023-03-05T01:08:20.721Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/TheoreticalEcology","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T03:23:55.397Z","updated_at":"2023-03-05T01:08:20.749Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheoreticalEcology/repositories"},"tags":[{"name":"v1.0.1","sha":"cf0bc0a041d3ac50b4f32a2b855c4c73cbec6188","kind":"commit","published_at":"2022-03-25T08:22:11.000Z","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/v1.0.1","html_url":"https://github.com/TheoreticalEcology/s-jSDM/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"2f2e8fabb79ec76f77cef595621fa9574ecec1f2","kind":"commit","published_at":"2022-01-05T14:59:06.000Z","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/v1.0.0","html_url":"https://github.com/TheoreticalEcology/s-jSDM/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v1.0.0/manifests"},{"name":"v0.0.7.9000","sha":"249a5e3e969f6d1845c573b0ec6877b2fd84cb47","kind":"commit","published_at":"2021-07-08T09:22:28.000Z","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/v0.0.7.9000","html_url":"https://github.com/TheoreticalEcology/s-jSDM/releases/tag/v0.0.7.9000","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM@v0.0.7.9000","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.0.7.9000","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.0.7.9000/manifests"},{"name":"v0.1.0.9000","sha":"58f3f546532871fce1a7af75b37c81a3f0c326a9","kind":"commit","published_at":"2020-08-03T18:06:58.000Z","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/v0.1.0.9000","html_url":"https://github.com/TheoreticalEcology/s-jSDM/releases/tag/v0.1.0.9000","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM@v0.1.0.9000","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.1.0.9000","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.1.0.9000/manifests"},{"name":"v0.0.1.999","sha":"ce97d623a74726e3953fa129350a8445fcabb775","kind":"commit","published_at":"2020-03-31T16:14:03.000Z","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/v0.0.1.999","html_url":"https://github.com/TheoreticalEcology/s-jSDM/releases/tag/v0.0.1.999","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM@v0.0.1.999","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.0.1.999","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.0.1.999/manifests"},{"name":"v0.0.0.9000","sha":"98433007914cd2178731b6efa2fd5461b5039eea","kind":"commit","published_at":"2020-02-21T12:53:32.000Z","download_url":"https://codeload.github.com/TheoreticalEcology/s-jSDM/tar.gz/v0.0.0.9000","html_url":"https://github.com/TheoreticalEcology/s-jSDM/releases/tag/v0.0.0.9000","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/TheoreticalEcology/s-jSDM@v0.0.0.9000","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.0.0.9000","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/tags/v0.0.0.9000/manifests"}]},"repo_metadata_updated_at":"2026-05-19T16:16:31.751Z","dependent_packages_count":0,"downloads":39,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":48.697002694911006,"dependent_repos_count":22.092982263725244,"dependent_packages_count":7.312883868137378,"stargazers_count":8.866518473545568,"forks_count":9.890226108755472,"docker_downloads_count":null,"average":19.371922681814933},"purl":"pkg:pypi/sjsdm-py","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/sjsdm-py","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/sjsdm-py","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/sjsdm-py/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-05-15T14:03:01.838Z","issues_count":124,"pull_requests_count":30,"avg_time_to_close_issue":16806440.549295776,"avg_time_to_close_pull_request":782083.1,"issues_closed_count":71,"pull_requests_closed_count":30,"pull_request_authors_count":2,"issue_authors_count":45,"avg_comments_per_issue":2.814516129032258,"avg_comments_per_pull_request":0.13333333333333333,"merged_pull_requests_count":28,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":14,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":2382766.0,"past_year_avg_time_to_close_pull_request":157.0,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":9,"past_year_avg_comments_per_issue":1.5,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/issues","maintainers":[{"login":"MaximilianPi","count":51,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaximilianPi"},{"login":"florianhartig","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/florianhartig"},{"login":"dougwyu","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dougwyu"},{"login":"chnpenny","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chnpenny"}],"active_maintainers":[{"login":"MaximilianPi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaximilianPi"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sjsdm-py/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sjsdm-py/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sjsdm-py/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sjsdm-py/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sjsdm-py/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sjsdm-py/codemeta","maintainers":[{"uuid":"MaximilianPi","login":"MaximilianPi","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/MaximilianPi/","role":null,"created_at":"2023-02-05T23:18:12.043Z","updated_at":"2023-02-05T23:18:12.043Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/MaximilianPi/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":873150,"maintainers_count":373382,"namespaces_count":0,"keywords_count":280639,"github":"pypi","metadata":{"funded_packages_count":53810},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-05-13T05:09:37.527Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":659869,"full_name":"TheoreticalEcology/s-jSDM","default_branch":"master","total_commits":510,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":85.0,"dds":0.2588235294117647,"past_year_total_commits":16,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":16.0,"past_year_dds":0.0,"last_synced_at":"2026-05-25T19:01:11.805Z","last_synced_commit":"635cb62fef7d5f8ad101e3dc9d143619cbea909d","created_at":"2023-03-09T09:59:16.796Z","updated_at":"2026-05-25T19:01:06.158Z","committers":[{"name":"MaximilianPi","email":"maximilian.pichler@biologie.uni-regensburg.de","login":"MaximilianPi","count":378},{"name":"Maximilian Pichler","email":"Maximilian.Pichler@stud.uni-regensburg.de","login":null,"count":103},{"name":"Florian Hartig","email":"florianhartig","login":"florianhartig","count":26},{"name":"CaiWang0503","email":"48045062+CaiWang0503","login":"CaiWang0503","count":1},{"name":"CaiWang0503","email":"43944519+warriorKT","login":"warriorKT","count":1},{"name":"MaximilianPi","email":"maximilianpichler@MacBook-Pro-von-Maximilian.local","login":null,"count":1}],"past_year_committers":[{"name":"Maximilian Pichler","email":"Maximilian.Pichler@biologie.uni-regensburg.de","login":"MaximilianPi","count":16}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-26T00:00:10.885Z","repositories_count":6241792,"commits_count":883159892,"contributors_count":34919517,"owners_count":1157521,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"TheoreticalEcology/s-jSDM","html_url":"https://github.com/TheoreticalEcology/s-jSDM","last_synced_at":"2026-05-15T14:03:01.838Z","status":"error","issues_count":124,"pull_requests_count":30,"avg_time_to_close_issue":16806440.549295776,"avg_time_to_close_pull_request":782083.1,"issues_closed_count":71,"pull_requests_closed_count":30,"pull_request_authors_count":2,"issue_authors_count":45,"avg_comments_per_issue":2.814516129032258,"avg_comments_per_pull_request":0.13333333333333333,"merged_pull_requests_count":28,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":14,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":2382766.0,"past_year_avg_time_to_close_pull_request":157.0,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":9,"past_year_avg_comments_per_issue":1.5,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"created_at":"2023-05-10T22:16:38.981Z","updated_at":"2026-05-15T14:03:01.839Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheoreticalEcology%2Fs-jSDM/issues","issue_labels_count":{"enhancement":18,"bug":11,"question":5,"documentation":3,"future":2,"installation help":2,"help wanted":2,"CRAN":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":71,"MEMBER":42,"COLLABORATOR":8,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"MEMBER":29,"CONTRIBUTOR":1},"issue_authors":{"MaximilianPi":22,"florianhartig":20,"dougwyu":6,"frmunoz":5,"wevertonbio":4,"sogm":4,"dansmi-hub":3,"YJ781":3,"CaiWang0503":3,"AndrewCSlater":3,"mtva0001":3,"agnes-duhamet":3,"chnpenny":2,"mdayii":2,"kjmtaylor22":2,"Cdevenish":2,"hippalectryon-0":2,"Samyar1400":2,"gtikhonov":2,"mintzj":2,"billurbektas":2,"Zinco-Li":2,"fetafretka":2,"OndrejMottl":2,"jannebor":1,"yang963469904":1,"edstowe":1,"metagenAu":1,"lucaz88":1,"Loic-sanchez":1,"cascadianaturalist":1,"LuziaThea":1,"JulFrey":1,"1circle":1,"tedhchen":1,"dinilu":1,"Sarahbouclette":1,"KaiFeng-HUN":1,"drhammed":1,"Zurapiti":1,"niming2":1,"adrian-v-m":1,"melisandeteng":1,"benjamindeneu":1,"ManuelSpinola":1},"pull_request_authors":{"MaximilianPi":29,"CaiWang0503":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-23T00:00:30.079Z","repositories_count":14677265,"issues_count":34101092,"pull_requests_count":111620223,"authors_count":11271348,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"bug":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":14},"past_year_pull_request_author_associations_count":{"MEMBER":1},"past_year_issue_authors":{"sogm":3,"gtikhonov":2,"hippalectryon-0":2,"OndrejMottl":2,"billurbektas":1,"dinilu":1,"melisandeteng":1,"mintzj":1,"tedhchen":1},"past_year_pull_request_authors":{"MaximilianPi":1},"maintainers":[{"login":"MaximilianPi","count":51,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaximilianPi"},{"login":"florianhartig","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/florianhartig"},{"login":"dougwyu","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dougwyu"},{"login":"chnpenny","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chnpenny"}],"active_maintainers":[{"login":"MaximilianPi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaximilianPi"}]},"events":{"total":{"ForkEvent":1,"IssuesEvent":21,"WatchEvent":4,"IssueCommentEvent":23,"PushEvent":8},"last_year":{"IssuesEvent":12,"WatchEvent":2,"IssueCommentEvent":10,"PushEvent":6}},"keywords":["deep-learning","gpu-acceleration","machine-learning","species-distribution-modelling","species-interactions"],"dependencies":[{"ecosystem":"cran","filepath":"sjSDM/DESCRIPTION","sha":null,"kind":"manifest","created_at":"2022-07-12T13:19:47.539Z","updated_at":"2022-07-12T13:19:47.539Z","repository_link":"https://github.com/TheoreticalEcology/s-jSDM/blob/master/sjSDM/DESCRIPTION","dependencies":[{"id":157326538,"package_name":"R","ecosystem":"cran","requirements":"\u003e= 3.0","direct":true,"kind":"depends","optional":false},{"id":157326539,"package_name":"reticulate","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326540,"package_name":"stats","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326541,"package_name":"mvtnorm","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326542,"package_name":"utils","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326543,"package_name":"rstudioapi","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326544,"package_name":"abind","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326545,"package_name":"graphics","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326546,"package_name":"grDevices","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326547,"package_name":"Metrics","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326548,"package_name":"parallel","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326549,"package_name":"mgcv","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326550,"package_name":"Ternary","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326551,"package_name":"cli","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326552,"package_name":"crayon","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326553,"package_name":"ggplot2","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326554,"package_name":"checkmate","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326555,"package_name":"mathjaxr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326556,"package_name":"ggtern","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":157326557,"package_name":"testthat","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":157326558,"package_name":"knitr","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":157326559,"package_name":"rmarkdown","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false}]},{"ecosystem":"pypi","filepath":"sjSDM/inst/python/setup.py","sha":null,"kind":"manifest","created_at":"2022-07-12T13:19:47.632Z","updated_at":"2022-07-12T13:19:47.632Z","repository_link":"https://github.com/TheoreticalEcology/s-jSDM/blob/master/sjSDM/inst/python/setup.py","dependencies":[{"id":157326611,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/automatic-installation.yaml","sha":null,"kind":"manifest","created_at":"2023-02-10T09:01:28.366Z","updated_at":"2023-02-10T09:01:28.366Z","repository_link":"https://github.com/TheoreticalEcology/s-jSDM/blob/master/.github/workflows/automatic-installation.yaml","dependencies":[{"id":7523694634,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7523694635,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7523694636,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7523694637,"package_name":"r-lib/actions/setup-tinytex","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7523694638,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7523694639,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/check-standard.yaml","sha":null,"kind":"manifest","created_at":"2023-02-10T09:01:28.427Z","updated_at":"2023-02-10T09:01:28.427Z","repository_link":"https://github.com/TheoreticalEcology/s-jSDM/blob/master/.github/workflows/check-standard.yaml","dependencies":[{"id":7523696387,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7523696388,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7523696389,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7523696390,"package_name":"r-lib/actions/setup-tinytex","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7523696391,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7523696392,"package_name":"conda-incubator/setup-miniconda","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7523696393,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]}],"score":12.316468462752539,"created_at":"2026-04-06T08:38:24.385Z","updated_at":"2026-05-31T21:30:27.670Z","avatar_url":"https://github.com/TheoreticalEcology.png","language":"R","category":"Biosphere","sub_category":"Species Distribution Modeling","monthly_downloads":279,"total_dependent_repos":1,"total_dependent_packages":0,"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n```{r setup, include=FALSE}\nknitr::opts_chunk$set(echo = TRUE)\n```\n\n[![Project Status: Active -- The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/sjSDM)](https://cran.r-project.org/package=sjSDM) ![R-CMD-check](https://github.com/TheoreticalEcology/s-jSDM/workflows/R-CMD-check/badge.svg?branch=master) [![Publication](https://img.shields.io/badge/Publication-10.1111/2041-green.svg)](https://www.doi.org/10.1111/2041-210X.13687)\n\n# s-jSDM - Fast and accurate Joint Species Distribution Modeling\n\n## About sjSDM\n\nThe sjSDM package is an R package for estimating joint species distribution models. A jSDM is a GLMM that models a multivariate (i.e. a many-species) response to the environment, space and a covariance term that models conditional (on the other terms) correlations between the outputs (i.e. species). \n\n![image](sjSDM/vignettes/jSDM-structure.png)\n\nA big challenge in jSDM implementation is computational speed. The goal of the sjSDM (which stands for \"scalable joint species distribution models\") is to make jSDM computations fast and scalable. Unlike many other packages, which use a latent-variable approximation to make estimating jSDMs faster, sjSDM fits a full covariance matrix in the likelihood, which is, however, numerically approximated via simulations. The method is described in Pichler \u0026 Hartig (2021) A new joint species distribution model for faster and more accurate inference of species associations from big community data, https://www.doi.org/10.1111/2041-210X.13687. \n\nThe core code of sjSDM is implemented in Python / PyTorch, which is then wrapped into an R package. In principle, you can also use it stand-alone under Python (see instructions below). Note: for both the R and the python package, python \\\u003e= 3.7 and pytorch must be installed (more details below). However, for most users, it will be more convenient to use sjSDM via the sjSDM R package, which also provides a large number of downstream functionalities. \n\nTo get citation info for sjSDM when you use it for your reseach, type  \n\n```{r,eval=FALSE}\ncitation(\"sjSDM\")\n```\n\n## Installing the R package\n\nsjSDM is distributed via [CRAN](https://cran.rstudio.com/web/packages/sjSDM/index.html). For most users, it will be best to install the package from CRAN\n\n```{r,eval=FALSE}\ninstall.packages(\"sjSDM\")\n```\n\nDepencies for the package can be installed before or after installing the package. Detailed explanations of the dependencies are provided in vignette(\"Dependencies\", package = \"sjSDM\"), source code [here](https://github.com/TheoreticalEcology/s-jSDM/blob/master/sjSDM/vignettes/Dependencies.Rmd). Very briefly, the dependencies can be automatically installed from within R:\n\n```{r,eval=FALSE}\nsjSDM::install_sjSDM(version = \"gpu\") # or\nsjSDM::install_sjSDM(version = \"cpu\")\n```\n\nFor advanced users: if you want to install the current (development) version from this repository, run\n\n```{r,eval=FALSE}\ndevtools::install_github(\"https://github.com/TheoreticalEcology/s-jSDM\", subdir = \"sjSDM\", ref = \"master\")\n```\n\ndependencies should be installed as above. If the installation fails, check out the help of ?install_sjSDM, ?installation_help, and vignette(\"Dependencies\", package = \"sjSDM\").\n\n1.  Try install_sjSDM()\n2.  New session, if no 'PyTorch not found' appears it should work, otherwise see ?installation_help\n3.  If do not get the pkg to run, create an issue [issue tracker](https://github.com/TheoreticalEcology/s-jSDM/issues) or write an email to maximilian.pichler at ur.de\n\n## Basic Workflow\n\nLoad the package\n\n```{r, message = F}\nlibrary(sjSDM)\n```\n\nSimulate some community data \n\n```{r}\nset.seed(42)\ncommunity \u003c- simulate_SDM(sites = 100, species = 10, env = 3, se = TRUE)\nEnv \u003c- community$env_weights\nOcc \u003c- community$response\nSP \u003c- matrix(rnorm(200, 0, 0.3), 100, 2) # spatial coordinates (no effect on species occurences)\n```\n\nThis fits the standard SDM with environmental, spatial and covariance terms \n\n```{r, results='hide'}\nmodel \u003c- sjSDM(Y = Occ, env = linear(data = Env, formula = ~X1+X2+X3), spatial = linear(data = SP, formula = ~0+X1:X2), se = TRUE, family=binomial(\"probit\"), sampling = 100L, verbose = FALSE)\n```\n\n```{r}\nsummary(model)\n```\n\n\nPlot the niche estimates, i.e the estimates in the environmental component:\n\n```{r, results='hide'}\nplot(model)\n```\n\nVisualize the species-species association matrix\n\n```{r}\nimage(getCor(model))\n```\n\n\n## Anova / Variation partitioning\n\n### Global ANOVA\n\nAs in other models, it can be interesting to analyze how much variation is explained by which parts of hte model. \n\n![image](sjSDM/vignettes/jSDM-ANOVA.png){{width=70%}}\nFor the Env, Spatial, Covariance terms, this is implemented in \n\n```{r, results='hide'}\nan = anova(model, verbose = FALSE)\n```\n\n\n```{r,fig.height=7, fig.width=6.3}\nsummary(an)\nplot(an)\n```\n\nThe anova shows the relative changes in the R^2^ of the groups and their intersections.\n\n### Internal metacommunity structure\n\nFollowing [Leibold et al., 2022](https://doi.org/10.1111/oik.08618) we can calculate and visualize the internal metacommunity structure (=partitioning of the three components for species and sites). The internal structure is already calculated by the ANOVA and we can visualize it with the plot method:\n\n```{r,fig.height=7, fig.width=8, warning=FALSE}\nresults = internalStructure(an) # or plot(an, internal = TRUE)\n```\n\nThe plot function returns the results for the internal metacommunity structure:\n\n```{r,fig.height=7, fig.width=12}\nplot(results)\n```\n\nWhich can be regressed against covariates to analyse assembly processes:\n\n```{r}\nplotAssemblyEffects(results)\n```\n\n\n## Python Package\n\nIf you want to use sjSDM from python (as said, not encouraged because all help and downstream functions are in R), install via \n\n```{bash,eval=FALSE}\npip install sjSDM_py\n```\n\nPython example\n\n```{python,eval=FALSE}\nimport sjSDM_py as fa\nimport numpy as np\nimport torch\nEnv = np.random.randn(100, 5)\nOcc = np.random.binomial(1, 0.5, [100, 10])\n\nmodel = fa.Model_sjSDM(device=torch.device(\"cpu\"), dtype=torch.float32)\nmodel.add_env(5, 10)\nmodel.build(5, optimizer=fa.optimizer_adamax(0.001),scheduler=False)\nmodel.fit(Env, Occ, batch_size = 20, epochs = 10)\n# print(model.weights)\n# print(model.covariance)\n```\n\nCalculate Importance:\n\n```{python, eval=FALSE}\nBeta = np.transpose(model.env_weights[0])\nSigma = ( model.sigma @ model.sigma.t() + torch.diag(torch.ones([1])) ).data.cpu().numpy()\ncovX = fa.covariance( torch.tensor(Env).t() ).data.cpu().numpy()\n\nfa.importance(beta=Beta, covX=covX, sigma=Sigma)\n```\n","funding_links":[],"readme_doi_urls":["https://www.doi.org/10.1111/2041-210X.13687","https://doi.org/10.1111/oik.08618"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/350824","html_url":"https://ost.ecosyste.ms/projects/350824"}