Last Updated: April 1, 2021
KGrid Activator Version Used is: 1.3.6
Runtime Used: "V8" (JavaScript runtime called V8)
The Knowledge Objects in this repository collection are for the CNS-TAP Version 1.0 web application developed at the University of Michigan Medical School.
The purpose of the CNS-TAP web application development project is to develop a manageable, extensible knowledge base to support the use of CNS-TAP in research and clinical trials in neuro-oncology.
This project requires two different Knoweldge Objects (KOs) that, when uploaded into CNS-TAP, enable computation of drug-specific and patient-specific scores for a variety of chemotherapy agents (i.e., drugs or medications). These scores indicate the likely usefulness of various chemotherapy drugs for patients with brain tumors.
All KOs have the following hierarchical structure of folders and files:
genericKnowledgeObject
|--metadata.json
|--service.yaml
|--deployment.yaml
|--src
|--payload_file_1
.
.
.
|-payload_file_n
Here is a picture of the file structure:
Every KO has: a metadata.json file with descriptive information including the version of the KO a service.yaml file describing an API or "service" supported by the KO a deployment.yaml file specifying how to run the code in the KO
Every KO also has one or more payload files. The payload files contain structured data or software code that machines can use. Generally, Payloads, whether in one or multiple files, contain biomedical knowledge that has been established through prior research.
There are only TWO KOs needed to run the CNS-TAP web application. They are described next.
The KO named "intrinsicDrugTable" is a special KO that outputs a table containing all of the “intrinsic” drug information for all drugs. This object is what holds all the intrinsic information about the drug that is not patient-specific. This includes the drug name, pathway, its score for in vitro data, its score for in vivo data, its score for safety, its score for CNS data, its score for brain penetration, and its score for FDA approval. Example shown below:
Dasatinib = {\
"**drug_name**":"Dasatinib", #drug name\
"**pathway**":"PDGFR", #drug pathway\
"tumor_in_vitro":4, #drug fact\
"tumor_in_vivo":6, #drug fact\
"phase_one_**safety_data**":6, #drug fact\
"cns_data_**with_**response":5, #drug fact\
"brain_penetration":10, #drug fact\
"fda_approv**al**":10, #drug fact\
"**total_points**":41, #total points\
},
Pazopanib_PDGFR = {
"drug_name":"Pazopanib_PDGFR",
"pathway":"PDGFR",
"tumor_in_vitro":4,
"tumor_in_vivo":6,
"phase_one_safety_data":6,
"cns_data_with_response":5,
"brain_penetration":5,
"fda_approval":10,
"total_points":36,
},
The KO named Tumor Patient Calculator is the second KO that contains the weighting for the three patient specific categories which are clonality, varient tier, and relevant clinical trial. These weightage values are what the app will multiply to the inputted values for these three columns in order to get the final CNS-TAP patient specific score. Example shown below:
var weights={
clonalityweight:5,
tierscoreweight:3,
trialweight:20,
}
From time to time, it is necessary to update the drug agent related content of the CNS-TAP application. This drug agent related content can be updated WITHOUT having to change the code of the CNS-TAP app.
To update this content, the following process can be followed.
The process will require downloading KOs from this GitHub repository, changing the content of those KOs, updating the version(s) of the KOs that are changed, packaging the KOs using special software, pushing the updated KOs back to GitHub, and then, finally, releasing the updated KOs in GitHub.
The process involves editing the content of one or both of the two KOs used by the CNS-TAP app. As described above, the two KOs are called, intrinsicDrugTable and tumorPatientCalculator.
Here are the steps to follow to download, edit, update version(s), package, upload, and release these KOs:
DOWNLOADING KOs from GitHub
-
From the command line of your local machine, clone repository into your local machine using this command:
git clone https://github.com/kgrid-objects/cnstap-objects.git -
To find one or both the Knowledge Objects needing to be changed, look in the collection folder.
EDITING KOs
- Update the contents of the Knowledge Object in any text editor of your choice, e.g., Atom (www.atom.io)
Next, three examples are given of making changes. The first two examples show changes made to the instrinsicDrugTable Knowledge Object. The final example shows changes made to the tumorPatientCalculator Knowledge Object. These changes are the anticipated types of changes that can be made without necessitating changes to the CNS-TAP app.
Here is an example of adding to the list of drug items in the "index.js" file within the SRC folder of the KO. Particular emphasis should be placed on the "editable" section because it is not directly a part of the table. The rule of thumb is that the "editable" score should be 1 if that given drug is the first drug in its respective pathway. Otherwise, the "editable" score should be 0. For example, if you are adding a new drug to the tool that is in a new pathway, this new entry will now be the FIRST and only drug in the new pathway so it will need an "editable" score of 1. However, if you are adding a new drug to a pre-existing pathway that already has several drugs in it, simply add the new drug to the bottom of the list of drugs within that pathway and give the new drug an "editable" score of 0.
Before
Sunitinib = {
"pathways": "PDGFR", "drugagents": "Sunitinib", "vitro": 2, "vivo": 6, "safety": 6, "cns": 5, "bbb": 0, "fda": 10, "subt": 29, "icln": 0, "itier": 0, "itrl":0, "cln": 0, "tier": 0, "trl": 0, "total": 29, "editable": 0,
},
Newly Added Content
,
Immune_Checkpoint_Inhibitors = {
"pathways": "PD-1", "drugagents": "Immune Checkpoint Inhibitors", "vitro": 4, "vivo": 6, "safety": 6, "cns": 10, "bbb": 0, "fda": 10, "subt": 36, "icln": 0, "itier": 0, "itrl":0, "cln": 0, "tier": 0, "trl": 0, "total": 36, "editable": 1,
}
After
Sunitinib = {
"pathways": "PDGFR", "drugagents": "Sunitinib", "vitro": 2, "vivo": 6, "safety": 6, "cns": 5, "bbb": 0, "fda": 10, "subt": 29, "icln": 0, "itier": 0, "itrl":0, "cln": 0, "tier": 0, "trl": 0, "total": 29, "editable": 0,
},
Immune_Checkpoint_Inhibitors = {
"pathways": "PD-1", "drugagents": "Immune Checkpoint Inhibitors", "vitro": 4, "vivo": 6, "safety": 6, "cns": 10, "bbb": 0, "fda": 10, "subt": 36, "icln": 0, "itier": 0, "itrl":0, "cln": 0, "tier": 0, "trl": 0, "total": 36, "editable": 1,
}
Before:
Sunitinib = {
"pathways": "PDGFR", "drugagents": "Sunitinib", "vitro": 3, "vivo": 6, "safety": 6, "cns": 5, "bbb": 0, "fda": 10, "subt": 30, "icln": 0, "itier": 0, "itrl":0, "cln": 0, "tier": 0, "trl": 0, "total": 30, "editable": 0,
},
After changing the entry for "vitro" from 3 to 2:
Sunitinib = {
"pathways": "PDGFR", "drugagents": "Sunitinib", "vitro": 2, "vivo": 6, "safety": 6, "cns": 5, "bbb": 0, "fda": 10, "subt": 29, "icln": 0, "itier": 0, "itrl":0, "cln": 0, "tier": 0, "trl": 0, "total": 29, "editable": 0,
},
Before:
var weights={
clonalityweight:8,
tierscoreweight:3,
trialweight:20,
}
After:
var weights={
clonalityweight:5,
tierscoreweight:3,
trialweight:20,
}
UPDATING KO VERSION(S)
After making changes in the src code for either of the knowledge objects, you will need to take the following steps to ensure that this code is correctly pushed and deployed onto the web. The first step ensures that the version of the code is updated everytime a new change is made:
- Update version number within the @id, identifier, and version sections of the metadata.json file
Here is a picture of the metadata.json file which is where you can update version numbers:
Once you're done updating the versioning numbers, you're all set with regards to making changes to the actual KO content.
PACKAGING
Now, make sure to save the file and then open up the command line and follow the following steps:
-
Save and then go to the command line (Apple Mac Terminal) in the collection folder
-
Run
kgrid package-allNote: Kgrid CLI is needed to run this command. If it is not installed, then run this:
npm i @kgrid/cli -g -
Then run
kgrid create-manifest
UPLOAD CHANGED AND RE-PACKAGED KOs TO GITHUB
Now that you have run this command, you will then need to make sure that the changes you made on your local machine are pushed to github so that they can be deployed. Follow the next few steps to do this:
-
Push KO file changes to github
-
Copy 3 files (manifest.json and the 2 zip files that have the name of each of the 2 objects) into github release section and upload by replacing the existing 3 files with the new 3 files
RELEASE UPDATED KOs ON GITHUB
Here are pictures of the github release section on github and the name of the 3 files that need to be uploaded into the new release:
The github release section can be found on the right side of the repository below the section as depicted below
Then click on 'edit release' and replace the 3 files with the 3 new files as depicted below
- Finally, click 'update release' at the bottom and you are done. The changes should be reflected in the deployed app shortly



