{"id":32566104,"url":"https://github.com/gitter-lab/pathway-parameter-advising","last_synced_at":"2025-10-29T05:00:01.985Z","repository":{"id":40684392,"uuid":"218341943","full_name":"gitter-lab/pathway-parameter-advising","owner":"gitter-lab","description":"Parameter advising for biological pathway creation algorithms","archived":false,"fork":false,"pushed_at":"2022-09-07T22:06:11.000Z","size":2124,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-29T00:15:05.390Z","etag":null,"topics":["graphlet","hyperparameter-tuning","protein-protein-interaction-network"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitter-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-29T17:13:56.000Z","updated_at":"2022-06-27T13:46:54.000Z","dependencies_parsed_at":"2022-09-26T17:31:27.795Z","dependency_job_id":null,"html_url":"https://github.com/gitter-lab/pathway-parameter-advising","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/gitter-lab/pathway-parameter-advising","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Fpathway-parameter-advising","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Fpathway-parameter-advising/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Fpathway-parameter-advising/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Fpathway-parameter-advising/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitter-lab","download_url":"https://codeload.github.com/gitter-lab/pathway-parameter-advising/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Fpathway-parameter-advising/sbom","scorecard":{"id":428453,"data":{"date":"2025-08-11","repo":{"name":"github.com/gitter-lab/pathway-parameter-advising","commit":"fa7aebebe668529b660864bc61f1bbb7ed575d17"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Code-Review","score":1,"reason":"Found 1/7 approved changesets -- score normalized to 1","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":"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":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/test.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":"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":"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":"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"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/test.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/gitter-lab/pathway-parameter-advising/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/gitter-lab/pathway-parameter-advising/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 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:0","Info: FSF or OSI recognized license: MIT 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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 26 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-19T02:46:53.982Z","repository_id":40684392,"created_at":"2025-08-19T02:46:53.982Z","updated_at":"2025-08-19T02:46:53.982Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281563786,"owners_count":26522704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphlet","hyperparameter-tuning","protein-protein-interaction-network"],"created_at":"2025-10-29T04:59:51.043Z","updated_at":"2025-10-29T05:00:01.974Z","avatar_url":"https://github.com/gitter-lab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pathway parameter advising\n[![Test pathway parameter advising](https://github.com/gitter-lab/pathway-parameter-advising/actions/workflows/test.yml/badge.svg)](https://github.com/gitter-lab/pathway-parameter-advising/actions/workflows/test.yml)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3985899.svg)](https://doi.org/10.5281/zenodo.3985899)\n[![PyPI](https://img.shields.io/pypi/v/pathwayParameterAdvising.svg?logo=PyPI)](https://pypi.org/project/pathwayParameterAdvising/)\n\nParameter advising for biological pathway creation algorithms.\n\n## Citation\n\nPathway parameter advising is described in the following publication:\n\n[Automating parameter selection to avoid implausible biological pathway models](https://doi.org/10.1038/s41540-020-00167-1).\nChris S Magnano, Anthony Gitter.\n*npj Systems Biology and Applications*, 7:12, 2021.\n\n## Dependencies\n\nPathway parameter advising was written and tested using Python 3.6 and requires the packages `networkx`, `numpy`, and `requests`.\n\nGraphlet decomposition is performed using the PGD library.\nThe PGD library can be installed from its [GitHub repository](https://github.com/nkahmed/pgd) and complied using `make`.\nThe script `setupPGD.sh` requires git, and has been provided to aid in installing the PGD library.\nHowever, it is not guaranteed to work on all systems and has only been tested on Ubuntu 18.04 and macOS 10.13.\nIn general, these scripts have only been tested in a Linux environment initially.\n\n### Compiling PGD for macOS\nMany macOS systems use clang++ instead of g++ and set g++ as an alias for clang++.\nPGD requires g++ instead of clang++.\nTherefore, macOS users must install g++ and set it as the compiler before running the `setupPGD.sh` script.\n\nThere are multiple options for installing g++.\nWe recommend [Homebrew](https://brew.sh/).\nWith Homebrew:\n\n1. Install gcc with the command `brew install gcc`\n2. Define the CC and CXX environmental variables according to the location of brew install. For example:\n- `export CC=/usr/local/Cellar/gcc/10.1.0/bin/gcc-10`\n- `export CXX=/usr/local/Cellar/gcc/10.1.0/bin/g++-10`\n\n## Installation\nPathway parameter advising can be download from either PyPI or GitHub.\n\nThis package includes example data and scripts to manage reference pathways and aid in performing graphlet decomposition which are not a part of the binary Python package in PyPI.\nTherefore, it is recommended to download the package source.\n\n### PyPI download instructions\nIn order to download all example scripts and data with pathway parameter advising, run `pip` using the following flags:\n\u003e `pip download --no-deps --no-binary :all: pathwayParameterAdvising`\n\nThis will download a `.tar` file into the current directory. \nUntar the resulting archive file: \n\u003e `tar -xf pathwayParameterAdvising-*.tar.gz`\n\nFrom inside the `pathway-parameter-advising-X.X` directory (where X.X is the current version of pathway parameter advising), run\n\u003e `python setup.py install`\n\nto install pathway parameter advising. \n\n### GitHub download instructions\n\nPathway parameter advising can also be downloaded from [its GitHub repository](https://github.com/gitter-lab/pathway-parameter-advising/). \n\nFrom inside the `pathway-parameter-advising` directory, run\n\u003e `python setup.py install`\n\nto install pathway parameter advising. \n\n## Usage\n\n### Using helper scripts \n\nThe pathway parameter advisor creates a ranking of pathways based on their\ntopological distance to a set of reference pathways. \n\nThe recommended way to use pathway parameter advising is through the script `bin/runPPA.sh`. \n\n`runPPA.sh` takes the following positional arguments:\n\u003e  dataDirectory: The directory where the networks are stored as sif or edgelist files in a subdirectory named 'pathways'. See Wnt and Prolactin for examples.\n\u003e\n\u003e  outFile:       The output filename for the final parameter ranking.\n\u003e\n\u003e  pgdDirectory:  (Optional) The directory where pgd is installed. Will default to '../lib/pgd'\n\u003e\n\u003e  delim:         (Optional) The limiter used for edges in the input network files. Assumed to be whitespace.\n\nThe `runPPA.sh` output is sorted from lowest to highest score.\nThis is because the score is a distance from the reference pathways, so the parameter combination with the smallest score is best.\nSee the [IL2 output](tests/reference/il2_ranking.txt) as an example.\n\n### Running Python package directly\n\nPathway parameter advising can also be run directly as a Python script or library, if different options are desired.\n\n`pathwayParameterAdvising/ppa.py` can be run as a command line script, or used as a Python package in which case the main entry point is the method `pathwayParameterAdvising.rankParameters`.\n`ppa.py` takes the following arguments:\n\u003e  -h, --help            show this help message and exit\n\u003e\n\u003e  --genPathwayGraphlets File where each line is a graphlets file of a generated pathway. Required.\n\u003e\n\u003e  --refPathwayGraphlets File where each line is a graphlets file of a reference pathway. Required.\n\u003e\n\u003e  --outFile OUTFILE     File to store output in. Optional, default = \"parameterRanking.txt\".\n\u003e\n\u003e  --minSize MINSIZE     Minimum size a reference pathway must be to be rankings. Optional, default=15.\n\u003e\n\u003e  --outputMax           If set, will return only the top pathway instead of a full ranking. Optional, default = False.\n\u003e\n\u003e  --outputScore         If set, will return scores in addition to pathway rankings. Optional, default = False.\n\u003e\n\u003e  --nameMap NAMEMAP     Either a file mapping generated pathway fileNames to parameter values, \"stripped\" to exclude the directory and extension from the filename, or \"fileName\" to use raw file names. Optional, default = stripped.\n\u003e\n\u003e  --saveGraphlets       If set, will save graphlet distributions as pickled dictionaries.\n\u003e\n\u003e  --verbose             If set, will print intermediate status updates. Optional, default = False.\n\n## Examples\n\n`bin/runPPA.sh` runs pathway parameter advising on any set of sif or edgelist networks.\nThe following commands will run `runPPA.sh` with the included `Wnt` and `Prolactin` datasets from the `bin` directory, where `../lib/pgd` is installation location of the PGD library:\n\n\u003e `bash runPPA.sh ../data/Wnt wnt_ranking.txt ../lib/pgd`\n\u003e\n\u003e `bash runPPA.sh ../data/Prolactin prolactin_ranking.txt ../lib/pgd`\n\n`bin/runNetBoxIL2.sh` runs pathway parameter advising for the precomputed graphlet files for NetBox IL2 pathways using Reactome reference pathways.\nIt has no arguments. \n\nThese scripts must be run from the `bin` directory, and file path arguments are relative to the `bin` directory.\n\n\n## Graphlet creation\nGraphlet decomposition files are created with the [Parallel Graphlet Decomposition library](http://nesreenahmed.com/graphlets/).\nFiles are the piped output from the pgd script: `./pgd -f inputGraphFile \u003e\u003e graphletOutputFile.gOut`.\n\n## Other scripts\n`bin/setupPGD.sh` installs the PGD library into the `lib` directory, which is created if it does not exist.\nPGD is cloned from its [GitHub repository](https://github.com/nkahmed/pgd) and complied using `make`.\nIt can then be run from the base pathway parameter advising directory as `lib/pgd/pgd -f inputGraphFile`.\nNote this script has been included to help install the PGD library, but is not guaranteed to run on all systems.\nIt has been tested on Ubuntu 18.04 and macOS 10.13.\n`setupPGD.sh` does not take any arguments.\n\n`bin/updateReactome.sh` downloads the latest version of all human Reactome pathways from [Pathway Commons](https://www.pathwaycommons.org/) and performs graphlet decomposition on them. \nIt takes the following positional arguments:\n\u003e   pgdDirectory:      The directory where pgd is installed. Will default to '../lib/pgd'\n\u003e\n\u003e   reactomeDirectory: (Optional) The directory where Reactome pathways and graphlets will be stored. If not given will default to '../referencePathways'.\n\n## Pathway reconstruction algorithms\nThe pathway reconstruction algorithms used in the pathway parameter advising manuscript are available from:\n- PathLinker: [PathLinker](https://github.com/Murali-group/PathLinker)\n- NetBox: originally used [`netbox.tar.gz`](http://cbio.mskcc.org/wp-content/uploads/2012/10/netbox.tar.gz), which has since been replaced by [NetBoxR](https://www.bioconductor.org/packages/release/bioc/html/netboxr.html)\n- Prize-Collecting Steiner Forest: [OmicsIntegrator](https://github.com/fraenkel-lab/OmicsIntegrator/) and [msgsteiner](https://staff.polito.it/alfredo.braunstein/code/2010/08/19/msgsteiner.html)\n- Minimum-Cost Flow: [OR-Tools](https://developers.google.com/optimization/install) and [wrapper script](https://github.com/gitter-lab/pathway-parameter-advising/tree/min-cost-flow)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitter-lab%2Fpathway-parameter-advising","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitter-lab%2Fpathway-parameter-advising","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitter-lab%2Fpathway-parameter-advising/lists"}