{"id":18583792,"url":"https://github.com/barrymun/cs4098","last_synced_at":"2026-04-11T02:54:30.868Z","repository":{"id":89821939,"uuid":"80052006","full_name":"barrymun/cs4098","owner":"barrymun","description":null,"archived":false,"fork":false,"pushed_at":"2017-04-09T21:58:21.000Z","size":87291,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-17T16:50:17.623Z","etag":null,"topics":["c","css","dinto","html","javascript","owl","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/barrymun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-01-25T19:57:37.000Z","updated_at":"2019-08-16T09:18:10.000Z","dependencies_parsed_at":"2023-07-12T16:15:26.029Z","dependency_job_id":null,"html_url":"https://github.com/barrymun/cs4098","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barrymun%2Fcs4098","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barrymun%2Fcs4098/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barrymun%2Fcs4098/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barrymun%2Fcs4098/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barrymun","download_url":"https://codeload.github.com/barrymun/cs4098/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471049,"owners_count":22076587,"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":["c","css","dinto","html","javascript","owl","python"],"created_at":"2024-11-07T00:24:43.938Z","updated_at":"2026-04-11T02:54:25.838Z","avatar_url":"https://github.com/barrymun.png","language":"Python","readme":"# Overwatch\n\n## Status: ![build passing](https://raw.githubusercontent.com/barrymun/cs4098/master/static/images/build-passing.png?token=AO6TcMUE6BKKgsIL7hMMzsMszlS9E7ILks5Y8-clwA%3D%3D)\n\n## Group Members:\nAaron Joyce\n\u003cbr/\u003e\nBryan Quirke\n\u003cbr/\u003e\nErik Eviston\n\u003cbr/\u003e\nJessa Pajarito\n\u003cbr/\u003e\nNeil Barry-Murphy\n\n\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\n# Setup Guide\n\n## Using the Flask Application\n\nActivate the virtual environment (Python 2.7 required):\n```bash\nsource venv/bin/activate\n```\nRun the setup script (First time setup following initial clone - required only once):\n```bash\nbash setup.sh\n```\nRestart mongo:\n```bash\nsudo service mongod restart\n```\nRun the flask application:\n```python\npython app.py\n```\n(If The Flask Application Fails)\n\u003cbr/\u003e\nInstall necessary requirements with root permissions and restart mongo:\n```bash\nsudo pip install -r requirements.txt\n\nsudo service mongod restart\n```\nNow, re-start the application:\n```python\npython app.py\n```\nNavigate to the homepage:\n[http://127.0.0.1:5000/](http://127.0.0.1:5000/)\n\n\n## Logging\n\nOpen another terminal in the same directory and execute the following:\n\u003cbr/\u003e\nActivate the virtual environment:\n```bash\nsource venv/bin/activate\n```\n\nOnce the app has been started on the previous terminal: - (PML and DINTO Log-file Generation)\n```bash\ntail -f info.log\n```\n\n\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\n# DDI System Testing Instructions\n\n## In-Depth Testing\n(Testing methods for all new required features outlined below)\n\n### Mock DDI Characterisation Data\n\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `coke_and_pepsi.pml`. Click `Check Validity of Selected File`.\n- Click `Analyse File`.\n- If successful, click `Select Knowledge Base System`.\n- Click `Search DDI Characterization Data`.\n- Select `db_1.csv`. Click `View Interactions`.\n- When complete, click `Finished - Return to Homepage`.\n\n### Identify drugs in PML\n\n- Integrated with previous step.\n\n### Report un-named PML construct \n\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `unnamed_construct.pml`. Click `Check Validity of Selected File`.\n- Error will be explained by system, highlighted in red.\n- The line number, and type of construct causing the issue will be highlighted by the system.\n- The system will not allow progression beyond this point.\n\n### Report PML construct name-clash \n\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `duplicated_construct.pml`. Click `Check Validity of Selected File`.\n- View Results.\n- Error will be explained by system, highlighted in red.\n- The line number, name and type of construct causing the issue will be highlighted by the system.\n- The system will not allow progression beyond this point.\n\n### Identify Parallel DDIs\n\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `iden_parallel_ddi_2.pml`. Click `Check Validity of Selected File`.\n- Refer to `peos/pml/drugfinder/pml-test-files/iden_parallel_ddi_2.pml` in any editor (such as gedit).\n- Two different action constructs refer to two drugs that interact with each other.\n- Return to system.\n- Click `Analyse File`.\n- If successful, click `Select Knowledge Base System`.\n- Click `Search DDI Characterization Data`.\n- Select `db_1.csv`. Click `View Interactions`.\n- When complete, click `Finished - Return to Homepage`.\n\n### PML-TX Save PML to File\n\n- This feature cannot be demonstrated as an isolated article.\n- The following transformations highlight the actions of this feature.\n- In short, all changes made to files that are transformed are saved by the system, a new file is not created.\n\n### PML-TX Reorder Sequence\n\n- Refer to `peos/pml/drugfinder/pml-test-files/reorder_sequence.pml` in any editor (such as gedit).\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `reorder_sequence.pml`. Click `Check Validity of Selected File`.\n- Click `Analyse File`.\n- Click `Select Transformation Type`.\n- Click `Perform Reorder Sequence`.\n- Ensure to select the radio button, and click `Check Validity of Transformation`.\n- Again, refer to `peos/pml/drugfinder/pml-test-files/reorder_sequence.pml`.\n- Click `Reload` or equivalent. View changes.\n- To view side by side changes, find the file of the same name in `peos/pml/drugfinder/duplicate-pml-test-files/`.\n- This file is an original copy of the file that was just transformed.\n- To redo the test, open a new terminal (in the same directory) and execute:\n```bash\ncd peos/pml/drugfinder/pml-test-files\n```\n- From here, revert any changes in git.\n```bash\ngit checkout reorder_sequence.pml\n```\n\n### PML-TX Serialise Branch (Naive)\n\n- Refer to `peos/pml/drugfinder/pml-test-files/pml_tx_serialize_branch_naive.pml` in any editor (such as gedit).\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `pml_tx_serialize_branch_naive.pml`. Click `Check Validity of Selected File`.\n- Click `Analyse File`.\n- Click `Select Transformation Type`.\n- Click `Perform Naive Branch Transformation`.\n- Ensure to select the radio button, and click `Check Validity of Transformation`.\n- Again, refer to `peos/pml/drugfinder/pml-test-files/pml_tx_serialize_branch_naive.pml`.\n- Click `Reload` or equivalent. View changes.\n- To view side by side changes, find the file of the same name in `peos/pml/drugfinder/duplicate-pml-test-files/`.\n- This file is an original copy of the file that was just transformed.\n- To redo the test, open a new terminal (in the same directory) and execute:\n```bash\ncd peos/pml/drugfinder/pml-test-files\n```\n- From here, revert any changes in git.\n```bash\ngit checkout pml_tx_serialize_branch_naive.pml\n```\n\n### PML-TX Serialize Branch (Two-Way)\n\n- Refer to `peos/pml/drugfinder/pml-test-files/pml_tx_serialize_branch_2_way.pml` in any editor (such as gedit).\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `pml_tx_serialize_branch_2_way.pml`. Click `Check Validity of Selected File`.\n- Click `Analyse File`.\n- Click `Select Transformation Type`.\n- Click `Perform Two-Way Branch Transformation`.\n- Ensure to select the radio button, and click `Check Validity of Transformation`.\n- Again, refer to `peos/pml/drugfinder/pml-test-files/pml_tx_serialize_branch_2_way.pml`.\n- Click `Reload` or equivalent. View changes.\n- To view side by side changes, find the file of the same name in `peos/pml/drugfinder/duplicate-pml-test-files/`.\n- This file is an original copy of the file that was just transformed.\n- To redo the test, open a new terminal (in the same directory) and execute:\n```bash\ncd peos/pml/drugfinder/pml-test-files\n```\n- From here, revert any changes in git.\n```bash\ngit checkout pml_tx_serialize_branch_2_way.pml\n```\n\n### PML-TX Remove Selections (NOT WORKING)\n\n- Refer to `peos/pml/drugfinder/pml-test-files/remove_selection.pml` in any editor (such as gedit).\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `remove_selection.pml`. Click `Check Validity of Selected File`.\n- Click `Analyse File`.\n- Click `Select Transformation Type`.\n- Click `Perform Remove Selections Transformation`.\n- Ensure to select the radio button, and click `Check Validity of Transformation`.\n- Again, refer to `peos/pml/drugfinder/pml-test-files/remove_selection.pml`.\n- Click `Reload` or equivalent. View changes.\n- To view side by side changes, find the file of the same name in `peos/pml/drugfinder/duplicate-pml-test-files/`.\n- This file is an original copy of the file that was just transformed.\n- To redo the test, open a new terminal (in the same directory) and execute:\n```bash\ncd peos/pml/drugfinder/pml-test-files\n```\n- From here, revert any changes in git.\n```bash\ngit checkout remove_selection.pml\n```\n\n### PML-TX Unroll Iteration\n\n- Refer to `peos/pml/drugfinder/pml-test-files/unroll_iteration.pml` in any editor (such as gedit).\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `unroll_iteration.pml`. Click `Check Validity of Selected File`.\n- Click `Analyse File`.\n- Click `Select Transformation Type`.\n- Click `Perform Unroll Iteration Transformation`.\n- Ensure to select the radio button, and click `Check Validity of Transformation`.\n- Again, refer to `peos/pml/drugfinder/pml-test-files/unroll_iteration.pml`.\n- Click `Reload` or equivalent. View changes.\n- To view side by side changes, find the file of the same name in `peos/pml/drugfinder/duplicate-pml-test-files/`.\n- This file is an original copy of the file that was just transformed.\n- To redo the test, open a new terminal (in the same directory) and execute:\n```bash\ncd peos/pml/drugfinder/pml-test-files\n```\n- From here, revert any changes in git.\n```bash\ngit checkout unroll_iteration.pml\n```\n\n### PML-TX Parallelise Sequence\n\n- Refer to `peos/pml/drugfinder/pml-test-files/sequence_parallelisation.pml` in any editor (such as gedit).\n- Navigate to the homepage.\n- Select `Begin Analysis`.\n- Select `sequence_parallelisation.pml`. Click `Check Validity of Selected File`.\n- Click `Analyse File`.\n- Click `Select Transformation Type`.\n- Click `Perform Parallelize Sequence Transformation`.\n- Ensure to select the radio button, and click `Check Validity of Transformation`.\n- Again, refer to `peos/pml/drugfinder/pml-test-files/sequence_parallelisation.pml` in your editor.\n- Click `Reload` or equivalent. View changes.\n- To view side by side changes, find the file of the same name in `peos/pml/drugfinder/duplicate-pml-test-files/`.\n- This file is an original copy of the file that was just transformed.\n- To redo the test, open a new terminal (in the same directory) and execute:\n```bash\ncd peos/pml/drugfinder/pml-test-files\n```\n- From here, revert any changes in git.\n```bash\ngit checkout sequence_parallelisation.pml\n```\n\n\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\n## Deactivating the Virtual Environment\n\nWhen finished with analysis of the system, execute:\n```bash\ndeactivate\n```\nThis will disable the virtual environment.\n\n\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\n# DINTO system (No longer part of the testing branch)\n\n# In-Depth Testing\nPlease note that all explanations are accompanied by images.\n\u003cbr/\u003e\nSee the `documentation/testing/testing-process` section of this repo for more information.\n\n## Successful Tests\n\n- Navigate to the homepage (process described above).\n- Select \"Begin Analysis\".\n- Select a pml file (`depression.pml` or `irritable_bowel_syndrome.pml`). - (PML file selection)\n- `depression.pml` describes only one drug, and will list all interactions of that drug.\n- `irritable_bowel_syndrome.pml` describes multiple (2) drugs, and will list the interactions between these 2 drugs. - (PML File Loading)\n- When a file has been selected, click \"Check Validity of Selected File\" to continue.\n- The next page displayed is the results of a pml file check. - (Running PML Analysis)\n- The result will be either valid or invalid. An invalid result will not allow for progression.\n- If result is valid, click \"Analyse File\" to extract the drug information. - (On-Screen PML Reporting)\n- You will now be presented with a list containing drug information realting to the title of the pml. (ie - depression will yield a prescription of fluoxetine)\n- Click \"Search DINTO for Interactions\" to continue.\n- Next, select the DINTO knowledge base. For the purposes of this test, the only KB is \"test_selection.owl\". - (Select specific OWL Ontology)\n- Select the file, and click \"Load Knowledge Base\" to continue. - (Load Selected Ontology)\n- A list of drug-drug interactions will now be displayed on screen. - (On-Screen DINTO Reporting)\n- Click the available links to view drug references for single-instance drug interactions.\n- Select \"Finished\" when analysis is complete. You will be redirected to the homepage.\n\n## Tests To Handle Incorrect Input\n\n- Navigate to the homepage (process described above).\n- Select \"Begin Analysis\".\n- Select a pml file (`pml_format_error.pml`, `pml_format_correct_analysis_error.pml` or `pml_format_correct_analysis_correct_no_drug_links.pml`).\n- `pml_format_error.pml` has a syntax error in the file. The system will highlight this.\n- `pml_format_correct_analysis_error.pml` describes a pml file that syntactically correct, but the analysis fails as no drug mentions are found. The system will also highlight this.\n- `pml_format_correct_analysis_correct_no_drug_links.pml` describes a test that has a syntactically correct pml file, yields drug or drug names from the analysis, but no links exist in DINTO for these referenced drugs. This test result will again be highlighted by the system.\n- The following instructions are the same as above, but various descriptive error messages will be encountered.\n- When a file has been selected, click \"Check Validity of Selected File\" to continue.\n- The next page displayed is the results of a pml file check.\n- The result will be either valid or invalid. An invalid result will not allow for progression. - (PML Error and Warning highlights)\n- If result is valid, click \"Analyse File\" to extract the drug information.\n- You will now be presented with a list containing drug information relating to the title of the pml. (ie - depression will yield a prescription of fluoxetine)\n- Click \"Search DINTO for Interactions\" to continue.\n- Next, select the DINTO knowledge base. For the purposes of this test, the only KB is \"test_selection.owl\".\n- Select the file, and click \"Load Knowledge Base\" to continue.\n- If errors exist from any previous section, the relevant DINTO (or PML if previous) errors will be highlighted by the system. - (DINTO Error and Warning highlights)\n- Select \"Finished\" when analysis is complete. You will be redirected to the homepage.\n\n\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\n# Additional System Analysis\n\n## Using the Mongo Database\n\nInstallation for Ubuntu 16.04 will be handled by the setup script.\n\u003cbr/\u003e\nOpen a new terminal and execute the following:\n\u003cbr/\u003e\u003cbr/\u003e\nLog In to the Mongo shell:\n```bash\nmongo\n```\nSwitch to the project database:\n```mongo\nuse app\n```\nList all currently available collections:\n\u003cbr/\u003e\n(Should be empty prior to launching the flask app)\n```mongo\ndb.getCollectionNames()\n```\nList all pml files in the project, for example:\n```mongo\ndb.dist.files.find()\n```\nList all pml files that you have selected as a user:\n```mongo\ndb.dist.selected.find()\n```\nList all pml files that have been analysed:\n```mongo\ndb.dist.analysis.find()\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarrymun%2Fcs4098","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarrymun%2Fcs4098","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarrymun%2Fcs4098/lists"}