{"id":29224573,"url":"https://github.com/sing-group/pp-mcc-ppi-ml","last_synced_at":"2025-07-03T06:07:24.375Z","repository":{"id":269942140,"uuid":"872372066","full_name":"sing-group/pp-mcc-ppi-ml","owner":"sing-group","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-29T10:25:59.000Z","size":21319,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-29T11:28:47.569Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sing-group.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2024-10-14T10:21:25.000Z","updated_at":"2025-01-29T10:26:03.000Z","dependencies_parsed_at":"2024-12-27T10:40:58.259Z","dependency_job_id":null,"html_url":"https://github.com/sing-group/pp-mcc-ppi-ml","commit_stats":null,"previous_names":["sing-group/pp-mcc-ppi-ml"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sing-group/pp-mcc-ppi-ml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fpp-mcc-ppi-ml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fpp-mcc-ppi-ml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fpp-mcc-ppi-ml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fpp-mcc-ppi-ml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sing-group","download_url":"https://codeload.github.com/sing-group/pp-mcc-ppi-ml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fpp-mcc-ppi-ml/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263271501,"owners_count":23440396,"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","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":[],"created_at":"2025-07-03T06:07:23.580Z","updated_at":"2025-07-03T06:07:24.357Z","avatar_url":"https://github.com/sing-group.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Overview\nThis project runs machine learning experiments for protein analysis using classical models and advanced configurations.\n\n# Configuration Parameters\nThe configuration file allows customization of various aspects of the experiment:\n\n- **random_state**: Controls the random seed.\n- **test_size**: Defines the test set size. Use `0.0` to skip the initial train/test split.\n- **n_jobs**: Number of processors to use (1 for a single processor, -1 for all processors).\n- **use_GPU**: Enables GPU usage if available.\n- **nested_cv_outer_splits / nested_cv_inner_splits**: Sets the number of splits for nested cross-validation.\n- **make_protein_level_splits**: Specifies if splits should be made at the protein level.\n- **per_fold**: If `True`, computes metrics for each fold separately and then averages them.\n- **print_debug_messages**: Enables detailed debugging messages.\n\n\nThere are two example configuration files that are used to obtain the article results, `experiment_random_split.py` and `experiment_unseen_protein_split.py`.\n\n## Available Models\nYou can select classic machine learning models via the `models_to_exec` parameter:\n\n- `KNN`: k-nearest neighbors\n- `LR`: logistic regression classifier\n- `RF`: random forest classifier\n\n\n## Embedding Combinations\nTo handle different embedding representations, the following combinations are offered via `embeddings_combinators`:\n\n- **ConcatEmbeddings**: Concatenates embeddings.\n- **AddEmbeddings**: Sums the values of embeddings.\n- **MultiplyEmbeddings**: Multiplies the values of embeddings.\n\n# Example Usage\n1. **Set up the experiment**: Create a configuration file with the parameter settings in the root directory of the project. Here are two possible examples, `experiment_random_split` and `experiment_unseen_protein_split`.\n2. **Run the experiment**: Use the following command to run the analysis with the selected machine learning model and, optionally, a name for the experiment log:\n\n   ```bash\n   python analysis.py experiment_unseen_protein_split [experiment_name]\n    ```\n\n    The first argument is the name of the file with the selected configuration, and the second argument, optional, is an additional name for the experiment logs folder\n\n\n    If you do not want that python uses buffered output, which is useful when you want to see stdout logs as soon as they are produced, especially when the stdout is written to a file (e.g. nohup), where large buffers are used that may retain the output for a while, run python with \"-u\" option (unbuffered). For example:\n\n    ```bash\n    python -u analysis.py experiment_unseen_protein_split unseen_protein_split\n    ```\n\n\n# Creating the virtual environment\n\n## Python virtual environment\n\n```\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n```\n\n## Conda\n\n```\nconda create -n rapids-24.02 -c rapidsai -c conda-forge -c nvidia cuml=24.02 python=3.10 cuda-version=11.8\n```\n\n\n### Running with GPU\nTo run on GPU, activate the Conda environment and ensure that the `use_GPU = True` setting is enabled in the configuration file.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsing-group%2Fpp-mcc-ppi-ml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsing-group%2Fpp-mcc-ppi-ml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsing-group%2Fpp-mcc-ppi-ml/lists"}