@datagrok/hit-triage 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/package-test.js +1 -1
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/files/Hit Design/campaigns/DMT1-1/campaign.json +69 -1
- package/files/Hit Design/campaigns/DMT2-1/campaign.json +84 -1
- package/files/PeptiHit/campaigns/PHD-1/campaign.json +1 -0
- package/files/PeptiHit/campaigns/PHD-1/enriched_table.csv +10 -0
- package/files/PeptiHit/campaigns/PHD-2/campaign.json +1 -0
- package/files/PeptiHit/campaigns/PHD-2/enriched_table.csv +82 -0
- package/files/PeptiHit/templates/Peptide hits Demo.json +1 -0
- package/images/icons/pepti-hit-icon.png +0 -0
- package/package.json +4 -4
- package/src/app/accordeons/layout-input.ts +2 -2
- package/src/app/accordeons/new-hit-design-campaign-accordeon.ts +12 -2
- package/src/app/accordeons/new-hit-design-template-accordeon.ts +12 -11
- package/src/app/accordeons/new-template-accordeon.ts +6 -9
- package/src/app/base-view.ts +2 -2
- package/src/app/consts.ts +1 -1
- package/src/app/dialogs/functions-dialog.ts +3 -3
- package/src/app/hit-app-base.ts +6 -3
- package/src/app/hit-design-app.ts +194 -213
- package/src/app/hit-design-views/info-view.ts +39 -33
- package/src/app/hit-design-views/tiles-view.ts +6 -0
- package/src/app/hit-triage-app.ts +1 -1
- package/src/app/pepti-hit-app.ts +221 -0
- package/src/app/pepti-hits-views/info-view.ts +49 -0
- package/src/app/types.ts +5 -1
- package/src/package.ts +47 -22
|
@@ -18,5 +18,73 @@
|
|
|
18
18
|
},
|
|
19
19
|
"rowCount": 8,
|
|
20
20
|
"filteredRowCount": 8,
|
|
21
|
-
"
|
|
21
|
+
"savePath": "System.AppData/HitTriage/Hit Design/campaigns/DMT1-1/enriched_table.csv",
|
|
22
|
+
"columnTypes": {
|
|
23
|
+
"Molecule": "string",
|
|
24
|
+
"Stage": "string",
|
|
25
|
+
"V-iD": "string",
|
|
26
|
+
"MolWt": "double",
|
|
27
|
+
"Stereo centers": "int",
|
|
28
|
+
"Mutagenicity": "string",
|
|
29
|
+
"Tumorigenicity": "string",
|
|
30
|
+
"CHEMBL molregno": "int",
|
|
31
|
+
"~Molecule.Pattern": "byte_array",
|
|
32
|
+
"~Molecule.canonicalSmiles": "string"
|
|
33
|
+
},
|
|
34
|
+
"version": 1,
|
|
35
|
+
"authorUserId": "7a6a9f30-25d0-11ef-c943-0b65a97fa481",
|
|
36
|
+
"permissions": {
|
|
37
|
+
"view": ["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"],
|
|
38
|
+
"edit": ["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"]
|
|
39
|
+
},
|
|
40
|
+
"layout": "{\"containerType\":\"horizontal\",\"state\":{\"width\":1223,\"height\":889},\"children\":[{\"containerType\":\"vertical\",\"state\":{\"width\":207,\"height\":889},\"children\":[{\"containerType\":\"panel\",\"state\":{\"width\":207,\"height\":589,\"element\":{\"id\":\"27131d00-4ce0-11ef-9a76-7376886b6923\",\"type\":\"Filters\",\"look\":{\"#type\":\"FiltersLook\",\"filters\":[{\"type\":\"Chem:substructureFilter\",\"column\":\"Molecule\",\"active\":true,\"columnName\":\"Molecule\",\"molBlock\":\"\\n RDKit 2D\\n\\n 0 0 0 0 0 0 0 0 0 0999 V2000\\nM END\\n\",\"searchType\":\"Contains\",\"simCutOff\":0.8,\"fp\":\"Morgan\",\"boolInput\":null},{\"type\":\"categorical\",\"column\":\"Mutagenicity\",\"active\":true,\"boolInput\":null},{\"type\":\"categorical\",\"column\":\"Tumorigenicity\",\"active\":true,\"boolInput\":null},{\"type\":\"categorical\",\"column\":\"Stage\",\"active\":true,\"boolInput\":null},{\"type\":\"categorical\",\"column\":\"V-iD\",\"active\":true,\"boolInput\":null},{\"type\":\"histogram\",\"column\":\"MolWt\",\"active\":true,\"filterOutMissingValues\":false,\"showMissingValuesOnly\":false,\"showHistogram\":true,\"showSlider\":true,\"showMinMax\":false,\"boolInput\":null},{\"type\":\"histogram\",\"column\":\"MolWt\",\"active\":true,\"filterOutMissingValues\":false,\"showMissingValuesOnly\":false,\"showHistogram\":true,\"showSlider\":true,\"showMinMax\":false,\"boolInput\":null}]},\"title\":\"Filters\"}},\"children\":[]},{\"containerType\":\"panel\",\"state\":{\"width\":207,\"height\":299,\"element\":{\"id\":\"27131d00-4ce0-11ef-ec85-ad160b08bb80\",\"type\":\"Bar chart\",\"look\":{\"#type\":\"BarChartLook\",\"valueColumnName\":\"MolWt\",\"valueAggrType\":\"count\",\"barSortType\":\"by value\",\"barSortOrder\":\"desc\",\"splitColumnName\":\"Molecule\"},\"title\":\"Bar chart\"}},\"children\":[]}]},{\"containerType\":\"vertical\",\"state\":{\"width\":1015,\"height\":889},\"children\":[{\"containerType\":\"fill\",\"state\":{\"width\":1015,\"height\":440,\"documentManager\":true},\"children\":[{\"containerType\":\"panel\",\"state\":{\"width\":1015,\"height\":440,\"element\":{\"id\":\"27136b20-4ce0-11ef-cb98-cd1d78d0d258\",\"type\":\"Grid\",\"look\":{\"#type\":\"GridLook\",\"showAddNewRowIcon\":true,\"addNewRowOnLastRowEdit\":true,\"rowHeight\":100,\"topLevelDefaultMenu\":true,\"allowColumnMenu\":true,\"columns\":[{\"width\":20,\"backgroundColor\":4294440951,\"customName\":\"\",\"cellType\":\"row header\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":200,\"columnName\":\"Molecule\",\"cellType\":\"Molecule\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":140,\"columnName\":\"Stage\",\"colorCodingType\":\"Categorical\",\"colorCodingCategorical\":{},\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":72,\"columnName\":\"V-iD\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":96,\"columnName\":\"MolWt\",\"customFormat\":\"0.0000000\",\"cellType\":\"number\",\"format\":\"0.0000000\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":111,\"columnName\":\"Stereo centers\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":101,\"columnName\":\"Mutagenicity\",\"colorCodingType\":\"Categorical\",\"colorCodingCategorical\":{},\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":113,\"columnName\":\"Tumorigenicity\",\"colorCodingType\":\"Categorical\",\"colorCodingCategorical\":{},\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":136,\"columnName\":\"CHEMBL molregno\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"columnName\":\"~Molecule.Pattern\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"columnName\":\"~Molecule.canonicalSmiles\",\"headerCellStyle\":{\"textWrap\":\"words\"}}]},\"title\":\"Molecules\",\"default\":true}},\"children\":[]}]},{\"containerType\":\"horizontal\",\"state\":{\"width\":1015,\"height\":448},\"children\":[{\"containerType\":\"panel\",\"state\":{\"width\":334,\"height\":448,\"element\":{\"id\":\"27136b20-4ce0-11ef-bacc-2786973237cb\",\"type\":\"Bar chart\",\"look\":{\"#type\":\"BarChartLook\",\"valueColumnName\":\"MolWt\",\"valueAggrType\":\"count\",\"barSortType\":\"by value\",\"barSortOrder\":\"desc\",\"splitColumnName\":\"Mutagenicity\"},\"title\":\"Bar chart\"}},\"children\":[]},{\"containerType\":\"panel\",\"state\":{\"width\":335,\"height\":448,\"element\":{\"id\":\"27136b20-4ce0-11ef-dcc4-7d8f969313b9\",\"type\":\"Bar chart\",\"look\":{\"#type\":\"BarChartLook\",\"valueColumnName\":\"MolWt\",\"valueAggrType\":\"count\",\"barSortType\":\"by value\",\"barSortOrder\":\"desc\",\"splitColumnName\":\"Tumorigenicity\"},\"title\":\"Bar chart\"}},\"children\":[]},{\"containerType\":\"panel\",\"state\":{\"width\":344,\"height\":448,\"element\":{\"id\":\"27136b20-4ce0-11ef-abdd-6b5e095b1e2c\",\"type\":\"Bar chart\",\"look\":{\"#type\":\"BarChartLook\",\"valueColumnName\":\"MolWt\",\"valueAggrType\":\"count\",\"barSortType\":\"by value\",\"barSortOrder\":\"desc\",\"splitColumnName\":\"Stage\"},\"title\":\"Bar chart\"}},\"children\":[]}]}]}],\"floating\":[],\"tableId\":\"234fac60-4ce0-11ef-84ed-1d98d738d676\",\"tableName\":\"DMT1-1\"}",
|
|
41
|
+
"template": {
|
|
42
|
+
"name": "Demo Template 1",
|
|
43
|
+
"key": "DMT1",
|
|
44
|
+
"campaignFields": [
|
|
45
|
+
{ "name": "Chemist", "type": "String", "required": true },
|
|
46
|
+
{ "name": "Supervisor", "type": "String", "required": true },
|
|
47
|
+
{ "name": "Target molecules", "type": "Number", "required": true },
|
|
48
|
+
{ "name": "Deadline", "type": "Date", "required": true }
|
|
49
|
+
],
|
|
50
|
+
"stages": [
|
|
51
|
+
"Consideration",
|
|
52
|
+
"Processing",
|
|
53
|
+
"Synthesis",
|
|
54
|
+
"Testing",
|
|
55
|
+
"Ready for production"
|
|
56
|
+
],
|
|
57
|
+
"compute": {
|
|
58
|
+
"descriptors": { "enabled": true, "args": ["MolWt"] },
|
|
59
|
+
"functions": [
|
|
60
|
+
{
|
|
61
|
+
"name": "addChemPropertiesColumns",
|
|
62
|
+
"package": "Chem",
|
|
63
|
+
"args": {
|
|
64
|
+
"MW": false,
|
|
65
|
+
"HBA": false,
|
|
66
|
+
"HBD": false,
|
|
67
|
+
"logP": false,
|
|
68
|
+
"logS": false,
|
|
69
|
+
"PSA": false,
|
|
70
|
+
"rotatableBonds": false,
|
|
71
|
+
"stereoCenters": true,
|
|
72
|
+
"moleculeCharge": false
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "addChemRisksColumns",
|
|
77
|
+
"package": "Chem",
|
|
78
|
+
"args": {
|
|
79
|
+
"mutagenicity": true,
|
|
80
|
+
"tumorigenicity": true,
|
|
81
|
+
"irritatingEffects": false,
|
|
82
|
+
"reproductiveEffects": false
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{ "name": "chemblMolregno", "package": "Chembl", "args": {} }
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"submit": { "fName": "demoFileSubmit1", "package": "HitTriage" }
|
|
89
|
+
}
|
|
22
90
|
}
|
|
@@ -1 +1,84 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"name": "DMT2-1",
|
|
3
|
+
"templateName": "Demo Template 2",
|
|
4
|
+
"status": "In Progress",
|
|
5
|
+
"createDate": "2023/11/11",
|
|
6
|
+
"campaignFields": { "Target protein": "Argonaut", "Target MW": 100 },
|
|
7
|
+
"columnSemTypes": {
|
|
8
|
+
"Molecule": "Molecule",
|
|
9
|
+
"Stage": null,
|
|
10
|
+
"V-iD": null,
|
|
11
|
+
"MolWt": null,
|
|
12
|
+
"HeavyAtomMolWt": null,
|
|
13
|
+
"NumValenceElectrons": null,
|
|
14
|
+
"MaxPartialCharge": null,
|
|
15
|
+
"fr_Ar_OH": null,
|
|
16
|
+
"fr_COO": null,
|
|
17
|
+
"fr_COO2": null,
|
|
18
|
+
"fr_C_O": null,
|
|
19
|
+
"fr_C_O_noCOO": null,
|
|
20
|
+
"fr_C_S": null,
|
|
21
|
+
"fr_HOCCN": null,
|
|
22
|
+
"fr_Imine": null,
|
|
23
|
+
"fr_NH2": null
|
|
24
|
+
},
|
|
25
|
+
"rowCount": 6,
|
|
26
|
+
"filteredRowCount": 6,
|
|
27
|
+
"savePath": "System.AppData/HitTriage/Hit Design/campaigns/DMT2-1/enriched_table.csv",
|
|
28
|
+
"columnTypes": {
|
|
29
|
+
"Molecule": "string",
|
|
30
|
+
"Stage": "string",
|
|
31
|
+
"V-iD": "string",
|
|
32
|
+
"MolWt": "double",
|
|
33
|
+
"HeavyAtomMolWt": "double",
|
|
34
|
+
"NumValenceElectrons": "int",
|
|
35
|
+
"MaxPartialCharge": "double",
|
|
36
|
+
"fr_Ar_OH": "int",
|
|
37
|
+
"fr_COO": "int",
|
|
38
|
+
"fr_COO2": "int",
|
|
39
|
+
"fr_C_O": "int",
|
|
40
|
+
"fr_C_O_noCOO": "int",
|
|
41
|
+
"fr_C_S": "int",
|
|
42
|
+
"fr_HOCCN": "int",
|
|
43
|
+
"fr_Imine": "int",
|
|
44
|
+
"fr_NH2": "int"
|
|
45
|
+
},
|
|
46
|
+
"version": 1,
|
|
47
|
+
"authorUserId": "7a6a9f30-25d0-11ef-c943-0b65a97fa481",
|
|
48
|
+
"permissions": {
|
|
49
|
+
"view": ["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"],
|
|
50
|
+
"edit": ["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"]
|
|
51
|
+
},
|
|
52
|
+
"layout": "{\"containerType\":\"fill\",\"state\":{\"width\":1223,\"height\":889,\"documentManager\":true},\"children\":[{\"containerType\":\"panel\",\"state\":{\"width\":1223,\"height\":889,\"element\":{\"id\":\"30197250-4ce0-11ef-8764-99dce94d2cc4\",\"type\":\"Grid\",\"look\":{\"#type\":\"GridLook\",\"showAddNewRowIcon\":true,\"addNewRowOnLastRowEdit\":true,\"rowHeight\":100,\"topLevelDefaultMenu\":true,\"allowColumnMenu\":true,\"columns\":[{\"width\":20,\"backgroundColor\":4294440951,\"customName\":\"\",\"cellType\":\"row header\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":200,\"columnName\":\"Molecule\",\"cellType\":\"Molecule\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":64,\"columnName\":\"Stage\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":72,\"columnName\":\"V-iD\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":155,\"columnName\":\"MolWt\",\"cellType\":\"number\",\"format\":\"0.000000000000000\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":155,\"columnName\":\"HeavyAtomMolWt\",\"cellType\":\"number\",\"format\":\"0.000000000000000\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":154,\"columnName\":\"NumValenceElectrons\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":151,\"columnName\":\"MaxPartialCharge\",\"cellType\":\"number\",\"format\":\"0.0000000000000000\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":78,\"columnName\":\"fr_Ar_OH\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":67,\"columnName\":\"fr_COO\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":74,\"columnName\":\"fr_COO2\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":63,\"columnName\":\"fr_C_O\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":110,\"columnName\":\"fr_C_O_noCOO\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":63,\"columnName\":\"fr_C_S\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":85,\"columnName\":\"fr_HOCCN\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":73,\"columnName\":\"fr_Imine\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":66,\"columnName\":\"fr_NH2\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}}]},\"title\":\"DMT2-1\",\"default\":true}},\"children\":[]}],\"floating\":[],\"tableId\":\"2ce8f2e0-4ce0-11ef-b980-c51c8afcfbb3\",\"tableName\":\"DMT2-1\"}",
|
|
53
|
+
"template": {
|
|
54
|
+
"name": "Demo Template 2",
|
|
55
|
+
"key": "DMT2",
|
|
56
|
+
"campaignFields": [
|
|
57
|
+
{ "name": "Target protein", "type": "String", "required": true },
|
|
58
|
+
{ "name": "Target MW", "type": "Number", "required": true }
|
|
59
|
+
],
|
|
60
|
+
"stages": ["Stage 1", "Stage 2", "Stage 3", "Stage 4"],
|
|
61
|
+
"compute": {
|
|
62
|
+
"descriptors": {
|
|
63
|
+
"enabled": true,
|
|
64
|
+
"args": [
|
|
65
|
+
"MolWt",
|
|
66
|
+
"HeavyAtomMolWt",
|
|
67
|
+
"NumValenceElectrons",
|
|
68
|
+
"MaxPartialCharge",
|
|
69
|
+
"fr_Ar_OH",
|
|
70
|
+
"fr_COO",
|
|
71
|
+
"fr_COO2",
|
|
72
|
+
"fr_C_O",
|
|
73
|
+
"fr_C_O_noCOO",
|
|
74
|
+
"fr_C_S",
|
|
75
|
+
"fr_HOCCN",
|
|
76
|
+
"fr_Imine",
|
|
77
|
+
"fr_NH2"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"functions": []
|
|
81
|
+
},
|
|
82
|
+
"submit": { "fName": "demoFileSubmit", "package": "HitTriage" }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"PHD-1","templateName":"Peptide hits Demo","status":"In Progress","createDate":"2024/9/4","campaignFields":{"Chemist":"Davit"},"columnSemTypes":{"Helm":"Macromolecule","Molecule":"Molecule","Stage":null,"V-iD":null,"MolWt":null,"HeavyAtomMolWt":null,"FractionCSP3":null,"BMS (Molecule)":null,"PAINS (Molecule)":null,"SureChEMBL (Molecule)":null,"MLSMR (Molecule)":null},"rowCount":9,"filteredRowCount":9,"savePath":"System.AppData/HitTriage/PeptiHit/campaigns/PHD-1/enriched_table.csv","columnTypes":{"Helm":"string","Molecule":"string","Stage":"string","V-iD":"string","MolWt":"double","HeavyAtomMolWt":"double","FractionCSP3":"double","BMS (Molecule)":"bool","PAINS (Molecule)":"bool","SureChEMBL (Molecule)":"bool","MLSMR (Molecule)":"bool"},"tilesViewerFormSketch":"{\"#type\":\"SketchState\",\"elementStates\":[{\"left\":171,\"top\":164,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"HeavyAtomMolWt\",\"format\":null}},{\"left\":171,\"top\":284,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"MLSMR (Molecule)\",\"format\":null}},{\"left\":171,\"top\":140,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"MolWt\",\"format\":null}},{\"left\":11,\"top\":68,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"Molecule\",\"input-value\":\"Molecule\"}},{\"left\":11,\"top\":212,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"BMS (Molecule)\",\"input-value\":\"BMS (Molecule)\"}},{\"left\":11,\"top\":260,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"SureChEMBL (Molecule)\",\"input-value\":\"SureChEMBL (Molecule)\"}},{\"left\":11,\"top\":284,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"MLSMR (Molecule)\",\"input-value\":\"MLSMR (Molecule)\"}},{\"left\":171,\"top\":212,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"BMS (Molecule)\",\"format\":null}},{\"left\":11,\"top\":236,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"PAINS (Molecule)\",\"input-value\":\"PAINS (Molecule)\"}},{\"left\":170,\"top\":44,\"width\":100,\"height\":70,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"Molecule\",\"format\":null}},{\"left\":171,\"top\":236,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"PAINS (Molecule)\",\"format\":null}},{\"left\":11,\"top\":164,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"HeavyAtomMolWt\",\"input-value\":\"HeavyAtomMolWt\"}},{\"left\":11,\"top\":140,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"MolWt\",\"input-value\":\"MolWt\"}},{\"left\":11,\"top\":188,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"FractionCSP3\",\"input-value\":\"FractionCSP3\"}},{\"left\":170,\"top\":118,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"Stage\",\"format\":null}},{\"left\":171,\"top\":188,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"FractionCSP3\",\"format\":null}},{\"left\":171,\"top\":260,\"width\":100,\"height\":20,\"type\":\"field\",\"viewerSettings\":{\"table\":\"Table\",\"column\":\"SureChEMBL (Molecule)\",\"format\":null}},{\"left\":10,\"top\":118,\"width\":140,\"height\":20,\"type\":\"html\",\"viewerSettings\":{\"markup\":\"<input type=\\\"text\\\" class=\\\"d4-sketch-column-name ui-input-editor\\\">\",\"table\":\"Table\",\"column\":\"Stage\",\"input-value\":\"Stage\"}}]}","version":22,"authorUserId":"7a6a9f30-25d0-11ef-c943-0b65a97fa481","permissions":{"view":["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"],"edit":["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"]},"layout":"{\"containerType\":\"horizontal\",\"state\":{\"width\":1870,\"height\":889},\"children\":[{\"containerType\":\"vertical\",\"state\":{\"width\":1245,\"height\":889},\"children\":[{\"containerType\":\"fill\",\"state\":{\"width\":1245,\"height\":632,\"documentManager\":true},\"children\":[{\"containerType\":\"panel\",\"state\":{\"width\":1245,\"height\":632,\"element\":{\"id\":\"2575b740-4ce0-11ef-b71b-cd73d6e06cfa\",\"type\":\"Grid\",\"look\":{\"#type\":\"GridLook\",\"showAddNewRowIcon\":true,\"addNewRowOnLastRowEdit\":true,\"rowHeight\":100,\"topLevelDefaultMenu\":true,\"allowColumnMenu\":true,\"columns\":[{\"width\":20,\"backgroundColor\":4294440951,\"customName\":\"\",\"cellType\":\"row header\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":263,\"columnName\":\"Helm\",\"cellType\":\"helm\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":200,\"columnName\":\"Molecule\",\"cellType\":\"Molecule\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":123,\"columnName\":\"Stage\",\"colorCodingType\":\"Categorical\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":72,\"columnName\":\"V-iD\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":63,\"columnName\":\"MolWt\",\"customFormat\":\"0.00000000000000\",\"cellType\":\"number\",\"format\":\"0.00000000000000\",\"colorCodingType\":\"Linear\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":131,\"columnName\":\"HeavyAtomMolWt\",\"customFormat\":\"0.00000000000000\",\"cellType\":\"number\",\"format\":\"0.00000000000000\",\"colorCodingType\":\"Linear\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":105,\"columnName\":\"FractionCSP3\",\"customFormat\":\"0.0000000000000000\",\"cellType\":\"number\",\"format\":\"0.0000000000000000\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":119,\"columnName\":\"BMS (Molecule)\",\"cellType\":\"bool\",\"colorCodingType\":\"Categorical\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":128,\"columnName\":\"PAINS (Molecule)\",\"cellType\":\"bool\",\"colorCodingType\":\"Categorical\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":168,\"columnName\":\"SureChEMBL (Molecule)\",\"cellType\":\"bool\",\"colorCodingType\":\"Categorical\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"isColorCoded\":true,\"width\":137,\"columnName\":\"MLSMR (Molecule)\",\"cellType\":\"bool\",\"colorCodingType\":\"Categorical\",\"headerCellStyle\":{\"textWrap\":\"words\"}}]},\"title\":\"Table\",\"default\":true}},\"children\":[]}]},{\"containerType\":\"panel\",\"state\":{\"width\":1245,\"height\":256,\"element\":{\"id\":\"2575de50-4ce0-11ef-c020-f7348d841704\",\"type\":\"Histogram\",\"look\":{\"#type\":\"HistogramLook\",\"valueColumnName\":\"MolWt\",\"showXAxis\":true,\"showYAxis\":true,\"binWidthRatio\":0.9,\"marginLeft\":5,\"marginRight\":5},\"title\":\"Histogram\"}},\"children\":[]}]},{\"containerType\":\"vertical\",\"state\":{\"width\":624,\"height\":889},\"children\":[{\"containerType\":\"panel\",\"state\":{\"width\":624,\"height\":204,\"element\":{\"id\":\"25762c70-4ce0-11ef-d41f-93bce25564eb\",\"type\":\"Bar chart\",\"look\":{\"#type\":\"BarChartLook\",\"valueColumnName\":\"MolWt\",\"valueAggrType\":\"avg\",\"barSortType\":\"by value\",\"barSortOrder\":\"desc\",\"splitColumnName\":\"BMS (Molecule)\"},\"title\":\"Bar chart\"}},\"children\":[]},{\"containerType\":\"panel\",\"state\":{\"width\":624,\"height\":169,\"element\":{\"id\":\"25765380-4ce0-11ef-be5a-2b4106ad6a73\",\"type\":\"Bar chart\",\"look\":{\"#type\":\"BarChartLook\",\"valueColumnName\":\"MolWt\",\"valueAggrType\":\"avg\",\"barSortType\":\"by value\",\"barSortOrder\":\"desc\",\"splitColumnName\":\"PAINS (Molecule)\"},\"title\":\"Bar chart\"}},\"children\":[]},{\"containerType\":\"panel\",\"state\":{\"width\":624,\"height\":378,\"element\":{\"id\":\"25767a90-4ce0-11ef-a55e-1f46e608ed7e\",\"type\":\"Pie chart\",\"look\":{\"#type\":\"PieChartLook\",\"categoryColumnName\":\"V-iD\",\"categoryFunction\":\"\",\"segmentAngleColumnName\":\"MolWt\",\"segmentAngleAggrType\":\"max\"},\"title\":\"Pie chart\"}},\"children\":[]},{\"containerType\":\"panel\",\"state\":{\"width\":624,\"height\":135,\"element\":{\"id\":\"25767a90-4ce0-11ef-aa2e-75fa924f73f9\",\"type\":\"Statistics\",\"look\":{\"#type\":\"StatsViewerLook\",\"columnNames\":[\"MolWt\",\"HeavyAtomMolWt\"]},\"title\":\"Statistics\"}},\"children\":[]}]}],\"floating\":[],\"tableId\":\"fc953d00-4ce0-11ef-acf8-f3488c2850be\",\"tableName\":\"Table\"}","template":{"name":"Peptide hits Demo","key":"PHD","campaignFields":[{"name":"Chemist","type":"String","required":true}],"stages":["Design","Consideration","Synthesis","Testing"],"compute":{"descriptors":{"enabled":true,"args":["MolWt","HeavyAtomMolWt","FractionCSP3"]},"functions":[{"name":"structuralAlertsTopMenu","package":"Chem","args":{"pains":true,"bms":true,"sureChembl":true,"mlsmr":true,"dandee":false,"inpharmatica":false,"lint":false,"glaxo":false}}],"scripts":[],"queries":[]}}}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Helm,Molecule,Stage,V-iD,MolWt,HeavyAtomMolWt,FractionCSP3,BMS (Molecule),PAINS (Molecule),SureChEMBL (Molecule),MLSMR (Molecule)
|
|
2
|
+
PEPTIDE1{C.A.A}$$$$V2.0,C[C@H](NC(=O)[C@H](C)NC(=O)[C@@H](N)CS)C(=O)O,Design,V000001,263.31900024414063,246.18299865722656,0.6666666865348816,false,false,true,true
|
|
3
|
+
"PEPTIDE1{C.C.C.[Cya]}$PEPTIDE1,PEPTIDE1,4:R2-1:R1$$$V2.0",O=C1N[C@@H](CS)C(=O)N[C@@H](CS(=O)(=O)O)C(=O)N[C@@H](CS)C(=O)N[C@H]1CS,Consideration,V000002,460.58099365234375,440.42098999023438,0.6666666865348816,true,false,true,true
|
|
4
|
+
PEPTIDE1{[2Nal].C.C.C}$$$$V2.0,N[C@@H](Cc1ccc2ccccc2c1)C(=O)N[C@@H](CS)C(=O)N[C@@H](CS)C(=O)N[C@@H](CS)C(=O)O,Synthesis,V000003,524.69000244140625,496.46600341796875,0.3636363744735718,true,false,true,true
|
|
5
|
+
"PEPTIDE1{C.A.A.[dC]}$PEPTIDE1,PEPTIDE1,4:R2-1:R1$$$V2.0",C[C@@H]1NC(=O)[C@H](C)NC(=O)[C@H](CS)NC(=O)[C@@H](CS)NC1=O,Testing,V000004,348.45001220703125,328.29000854492188,0.6666666865348816,false,false,true,true
|
|
6
|
+
"PEPTIDE1{[meG]}|PEPTIDE2{[D-Phe_4Cl].[meG].D.[D-gGlu]}$PEPTIDE1,PEPTIDE2,1:R2-3:R3$$$V2.0",CNCC(=O)C(=O)C[C@H](NC(=O)CN(C)C(=O)[C@H](N)Cc1ccc(Cl)cc1)C(=O)N[C@H](CCC(=O)O)C(=O)O,Consideration,V000005,569.99902343750000,537.74298095703125,0.4583333432674408,true,true,false,true
|
|
7
|
+
"PEPTIDE1{[meG]}|PEPTIDE2{[D-Phe_4Cl].[meG].D.[D-gGlu]}$PEPTIDE1,PEPTIDE2,1:R2-3:R3|PEPTIDE2,PEPTIDE1,1:R1-1:R1$$$V2.0",CN1CC(=O)C(=O)C[C@@H](C(=O)N[C@H](CCC(=O)O)C(=O)O)NC(=O)CN(C)C(=O)[C@@H](Cc2ccc(Cl)cc2)N1,Synthesis,V000006,567.98297119140625,537.74298095703125,0.4583333432674408,true,true,false,true
|
|
8
|
+
"PEPTIDE1{[D-Trp_For]}|PEPTIDE2{[D-Hyp].[D-Nle].[D-Trp_For]}|PEPTIDE3{[D-Orn].[D-Trp_For].[meQ].[Met_O].G.[D-gGlu]}$PEPTIDE2,PEPTIDE3,3:R2-6:R2|PEPTIDE3,PEPTIDE2,1:R1-1:R1|PEPTIDE1,PEPTIDE3,1:R2-6:R3$$$V2.0",CCCC[C@H]1NC(=O)[C@H]2C[C@H](O)CN2N[C@H](CCCN)C(=O)N[C@H](Cc2cn(C=O)c3ccccc23)C(=O)N(C)[C@@H](CCC(N)=O)C(=O)N[C@@H](CC[S+](C)[O-])C(=O)NCC(=O)N[C@@H](C(=O)C(=O)[C@H](N)Cc2cn(C=O)c3ccccc23)CCC(=O)C(=O)[C@@H](Cc2cn(C=O)c3ccccc23)NC1=O,Testing,V000007,1442.62097167968750,1354.92504882812500,0.4428571462631226,true,true,true,true
|
|
9
|
+
"PEPTIDE1{[Gla]}|PEPTIDE2{[D-Trp_For]}|PEPTIDE3{[D-Hyp].[D-Nle].[D-Trp_For]}|PEPTIDE4{[D-Orn].[D-Trp_For].[meQ].[Met_O].G.[D-gGlu]}$PEPTIDE3,PEPTIDE4,3:R2-6:R2|PEPTIDE4,PEPTIDE3,1:R1-1:R1|PEPTIDE2,PEPTIDE4,1:R2-6:R3|PEPTIDE1,PEPTIDE4,1:R2-1:R3$$$V2.0",CCCC[C@H]1NC(=O)[C@H]2C[C@H](O)CN2N[C@H](CCCNC(=O)C(C[C@H](N)C=O)C(=O)O)C(=O)N[C@H](Cc2cn(C=O)c3ccccc23)C(=O)N(C)[C@@H](CCC(N)=O)C(=O)N[C@@H](CC[S+](C)[O-])C(=O)NCC(=O)N[C@@H](C(=O)C(=O)[C@H](N)Cc2cn(C=O)c3ccccc23)CCC(=O)C(=O)[C@@H](Cc2cn(C=O)c3ccccc23)NC1=O,Design,V000008,1599.74597167968750,1504.99401855468750,0.4473684132099152,true,true,true,true
|
|
10
|
+
"PEPTIDE1{[Pyr]}|PEPTIDE2{[Pyr]}|PEPTIDE3{[Pyr]}|PEPTIDE4{C.C.C.[Cya]}$PEPTIDE4,PEPTIDE4,4:R2-1:R1|PEPTIDE4,PEPTIDE3,3:R3-1:R1|PEPTIDE4,PEPTIDE1,1:R3-1:R1|PEPTIDE2,PEPTIDE4,1:R2-2:R3$$$V2.0",O=C1CC[C@@H](C(=O)SC[C@@H]2NC(=O)[C@H](CSN3C(=O)CC[C@H]3C(=O)O)NC(=O)[C@H](CS(=O)(=O)O)NC(=O)[C@H](CSN3C(=O)CC[C@H]3C(=O)O)NC2=O)N1,Testing,V000009,825.87902832031250,790.59899902343750,0.6296296119689940,true,false,true,true
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"PHD-2","templateName":"Peptide hits Demo","status":"In Progress","createDate":"2024/9/4","campaignFields":{"Chemist":"Someone"},"columnSemTypes":{"Helm":"Macromolecule","Molecule":"Molecule","Stage":null,"V-iD":null},"rowCount":1,"filteredRowCount":1,"savePath":"System.AppData/HitTriage/PeptiHit/campaigns/PHD-2/enriched_table.csv","columnTypes":{"Helm":"string","Molecule":"string","Stage":"string","V-iD":"string","MolWt":"double","HeavyAtomMolWt":"double","FractionCSP3":"double"},"version":2,"authorUserId":"7a6a9f30-25d0-11ef-c943-0b65a97fa481","permissions":{"view":["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"],"edit":["a4b45840-9a50-11e6-9cc9-8546b8bf62e6"]},"layout":"{\"containerType\":\"fill\",\"state\":{\"width\":701,\"height\":889,\"documentManager\":true},\"children\":[{\"containerType\":\"panel\",\"state\":{\"width\":701,\"height\":889,\"element\":{\"id\":\"41404730-4ce0-11ef-a35c-937ec35463b4\",\"type\":\"Grid\",\"look\":{\"#type\":\"GridLook\",\"showAddNewRowIcon\":true,\"addNewRowOnLastRowEdit\":true,\"rowHeight\":100,\"topLevelDefaultMenu\":true,\"allowColumnMenu\":true,\"columns\":[{\"width\":20,\"backgroundColor\":4294440951,\"customName\":\"\",\"cellType\":\"row header\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":400,\"columnName\":\"Helm\",\"cellType\":\"helm\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":200,\"columnName\":\"Molecule\",\"cellType\":\"Molecule\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":60,\"columnName\":\"Stage\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":72,\"columnName\":\"V-iD\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":63,\"columnName\":\"MolWt\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":131,\"columnName\":\"HeavyAtomMolWt\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}},{\"width\":105,\"columnName\":\"FractionCSP3\",\"cellType\":\"number\",\"headerCellStyle\":{\"textWrap\":\"words\"}}]},\"title\":\"Table\",\"default\":true}},\"children\":[]}],\"floating\":[],\"tableId\":\"34c341b0-4ce0-11ef-9215-3b488e649d82\",\"tableName\":\"Table\"}","template":{"name":"Peptide hits Demo","key":"PHD","campaignFields":[{"name":"Chemist","type":"String","required":true}],"stages":["Design","Consideration","Synthesis","Testing"],"compute":{"descriptors":{"enabled":true,"args":["MolWt","HeavyAtomMolWt","FractionCSP3"]},"functions":[],"scripts":[],"queries":[]}}}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
Helm,Molecule,Stage,V-iD,MolWt,HeavyAtomMolWt,FractionCSP3
|
|
2
|
+
PEPTIDE1{[Cys_Me].[D-1Nal].[Cys_SEt]}$$$$V2.0,"
|
|
3
|
+
Actelion Java MolfileCreator 2.0
|
|
4
|
+
|
|
5
|
+
0 0 0 0 0 0 0 V3000
|
|
6
|
+
M V30 BEGIN CTAB
|
|
7
|
+
M V30 COUNTS 32 33 0 0 0
|
|
8
|
+
M V30 BEGIN ATOM
|
|
9
|
+
M V30 1 C -3.0446 -6.3515 0 0
|
|
10
|
+
M V30 2 S -1.7455 -5.6015 0 0
|
|
11
|
+
M V30 3 C -1.7455 -4.1015 0 0
|
|
12
|
+
M V30 4 C -0.4465 -3.3515 0 0 CFG=2
|
|
13
|
+
M V30 5 N 0.8524 -4.1015 0 0
|
|
14
|
+
M V30 6 C -0.4465 -1.8515 0 0
|
|
15
|
+
M V30 7 O -1.7455 -1.1015 0 0
|
|
16
|
+
M V30 8 N 0.8524 -1.1015 0 0
|
|
17
|
+
M V30 9 C 0.8524 0.3984 0 0 CFG=2
|
|
18
|
+
M V30 10 C 2.1515 1.1484 0 0
|
|
19
|
+
M V30 11 C 3.4505 0.3984 0 0
|
|
20
|
+
M V30 12 C 3.4505 -1.1015 0 0
|
|
21
|
+
M V30 13 C 4.7496 -1.8515 0 0
|
|
22
|
+
M V30 14 C 6.0486 -1.1015 0 0
|
|
23
|
+
M V30 15 C 6.0486 0.3984 0 0
|
|
24
|
+
M V30 16 C 7.3476 1.1484 0 0
|
|
25
|
+
M V30 17 C 7.3476 2.6484 0 0
|
|
26
|
+
M V30 18 C 6.0486 3.3984 0 0
|
|
27
|
+
M V30 19 C 4.7496 2.6484 0 0
|
|
28
|
+
M V30 20 C 4.7496 1.1484 0 0
|
|
29
|
+
M V30 21 C -0.4465 1.1484 0 0
|
|
30
|
+
M V30 22 O -0.4465 2.6484 0 0
|
|
31
|
+
M V30 23 C -9.5398 0.3984 0 0
|
|
32
|
+
M V30 24 C -8.2407 1.1484 0 0
|
|
33
|
+
M V30 25 S -6.9417 0.3984 0 0
|
|
34
|
+
M V30 26 S -5.6426 1.1484 0 0
|
|
35
|
+
M V30 27 C -4.3436 0.3984 0 0
|
|
36
|
+
M V30 28 C -3.0446 1.1484 0 0 CFG=2
|
|
37
|
+
M V30 29 N -1.7455 0.3984 0 0
|
|
38
|
+
M V30 30 C -3.0446 2.6484 0 0
|
|
39
|
+
M V30 31 O -4.3436 3.3984 0 0
|
|
40
|
+
M V30 32 O -1.7455 3.3984 0 0
|
|
41
|
+
M V30 END ATOM
|
|
42
|
+
M V30 BEGIN BOND
|
|
43
|
+
M V30 1 1 1 2
|
|
44
|
+
M V30 2 1 2 3
|
|
45
|
+
M V30 3 1 4 3
|
|
46
|
+
M V30 4 1 4 5 CFG=1
|
|
47
|
+
M V30 5 1 4 6
|
|
48
|
+
M V30 6 1 6 8
|
|
49
|
+
M V30 7 2 6 7
|
|
50
|
+
M V30 8 1 9 8
|
|
51
|
+
M V30 9 1 9 10 CFG=1
|
|
52
|
+
M V30 10 1 10 11
|
|
53
|
+
M V30 11 2 11 12
|
|
54
|
+
M V30 12 1 12 13
|
|
55
|
+
M V30 13 2 13 14
|
|
56
|
+
M V30 14 1 14 15
|
|
57
|
+
M V30 15 2 15 16
|
|
58
|
+
M V30 16 1 16 17
|
|
59
|
+
M V30 17 2 17 18
|
|
60
|
+
M V30 18 1 18 19
|
|
61
|
+
M V30 19 2 19 20
|
|
62
|
+
M V30 20 1 11 20
|
|
63
|
+
M V30 21 1 15 20
|
|
64
|
+
M V30 22 1 9 21
|
|
65
|
+
M V30 23 1 21 29
|
|
66
|
+
M V30 24 2 21 22
|
|
67
|
+
M V30 25 1 23 24
|
|
68
|
+
M V30 26 1 24 25
|
|
69
|
+
M V30 27 1 25 26
|
|
70
|
+
M V30 28 1 26 27
|
|
71
|
+
M V30 29 1 28 27 CFG=1
|
|
72
|
+
M V30 30 1 28 29
|
|
73
|
+
M V30 31 1 28 30
|
|
74
|
+
M V30 32 1 30 31
|
|
75
|
+
M V30 33 2 30 32
|
|
76
|
+
M V30 END BOND
|
|
77
|
+
M V30 BEGIN COLLECTION
|
|
78
|
+
M V30 MDLV30/STEABS ATOMS=(3 4 9 28)
|
|
79
|
+
M V30 END COLLECTION
|
|
80
|
+
M V30 END CTAB
|
|
81
|
+
M END
|
|
82
|
+
",Design,V000001,495.6919860839844,466.4599914550781,0.40909090638160706
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"Peptide hits Demo","key":"PHD","campaignFields":[{"name":"Chemist","type":"String","required":true}],"stages":["Design","Consideration","Synthesis","Testing"],"compute":{"descriptors":{"enabled":true,"args":["MolWt","HeavyAtomMolWt","FractionCSP3"]},"functions":[],"scripts":[],"queries":[]}}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datagrok/hit-triage",
|
|
3
3
|
"friendlyName": "HitTriage",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Davit Rizhinashvili",
|
|
7
7
|
"email": "drizhinashvili@datagrok.ai"
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
"directory": "packages/HitTriage"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@datagrok-libraries/compute-utils": "^1.
|
|
20
|
-
"@datagrok-libraries/utils": "^4.
|
|
19
|
+
"@datagrok-libraries/compute-utils": "^1.39.0",
|
|
20
|
+
"@datagrok-libraries/utils": "^4.3.0",
|
|
21
21
|
"cash-dom": "latest",
|
|
22
22
|
"css-loader": "^6.5.1",
|
|
23
|
-
"datagrok-api": "^1.
|
|
23
|
+
"datagrok-api": "^1.21.1",
|
|
24
24
|
"source-map-loader": "^4.0.1",
|
|
25
25
|
"style-loader": "^3.3.1",
|
|
26
26
|
"ts-loader": "latest",
|
|
@@ -9,8 +9,8 @@ export function getLayoutInput() {
|
|
|
9
9
|
let layoutViewState: string | null = null;
|
|
10
10
|
let error: string | null = null;
|
|
11
11
|
dataFileInput.addValidator((_) => error);
|
|
12
|
-
dataFileInput.onChanged(async () => {
|
|
13
|
-
const f: DG.FileInfo =
|
|
12
|
+
dataFileInput.onChanged.subscribe(async (value) => {
|
|
13
|
+
const f: DG.FileInfo = value;
|
|
14
14
|
if (f) {
|
|
15
15
|
try {
|
|
16
16
|
const contentString = await f.readAsString();
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
1
2
|
import * as DG from 'datagrok-api/dg';
|
|
2
3
|
import * as ui from 'datagrok-api/ui';
|
|
3
4
|
import * as grok from 'datagrok-api/grok';
|
|
4
5
|
import {CampaignFieldTypes, HitDesignTemplate} from '../types';
|
|
5
|
-
import {HitDesignMolColName, TileCategoriesColName, ViDColName, i18n} from '../consts';
|
|
6
|
+
import {HitDesignMolColName, PeptiHitHelmColName, TileCategoriesColName, ViDColName, i18n} from '../consts';
|
|
6
7
|
import '../../../css/hit-triage.css';
|
|
7
8
|
import {getNewVid} from '../utils/calculate-single-cell';
|
|
8
9
|
|
|
@@ -17,8 +18,17 @@ type HitDesignCampaignAccordeon = {
|
|
|
17
18
|
cancelPromise: Promise<void>
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
export function newHitDesignCampaignAccordeon(template: HitDesignTemplate): HitDesignCampaignAccordeon {
|
|
21
|
+
export function newHitDesignCampaignAccordeon(template: HitDesignTemplate, peptiHit = false): HitDesignCampaignAccordeon {
|
|
21
22
|
const df = DG.DataFrame.create(1);
|
|
23
|
+
if (peptiHit) {
|
|
24
|
+
const pepCol = df.columns.addNew(PeptiHitHelmColName, DG.TYPE.STRING);
|
|
25
|
+
pepCol.semType = DG.SEMTYPE.MACROMOLECULE;
|
|
26
|
+
pepCol.meta.units = 'helm';
|
|
27
|
+
pepCol.setTag('units', 'helm');
|
|
28
|
+
pepCol.setTag('cell.renderer', 'helm');
|
|
29
|
+
pepCol.setTag('.alphabetIsMultichar', 'true');
|
|
30
|
+
}
|
|
31
|
+
|
|
22
32
|
const molCol = df.columns.addNew(HitDesignMolColName, DG.TYPE.STRING);
|
|
23
33
|
molCol.semType = DG.SEMTYPE.MOLECULE;
|
|
24
34
|
molCol.meta.units = DG.UNITS.Molecule.SMILES;
|
|
@@ -4,7 +4,7 @@ import * as grok from 'datagrok-api/grok';
|
|
|
4
4
|
import {_package} from '../../package';
|
|
5
5
|
import * as C from '../consts';
|
|
6
6
|
import '../../../css/hit-triage.css';
|
|
7
|
-
import {
|
|
7
|
+
import {IComputeDialogResult, INewTemplateResult, PeptiHitTemplate} from '../types';
|
|
8
8
|
import {chemFunctionsDialog} from '../dialogs/functions-dialog';
|
|
9
9
|
import {getCampaignFieldEditors} from './new-template-accordeon';
|
|
10
10
|
import {ItemType, ItemsGrid} from '@datagrok-libraries/utils/src/items-grid';
|
|
@@ -12,8 +12,8 @@ import {HitAppBase} from '../hit-app-base';
|
|
|
12
12
|
import {getLayoutInput} from './layout-input';
|
|
13
13
|
|
|
14
14
|
export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
15
|
-
preset?:
|
|
16
|
-
const availableTemplates = (await _package.files.list(
|
|
15
|
+
preset?: PeptiHitTemplate): Promise<INewTemplateResult<PeptiHitTemplate>> {
|
|
16
|
+
const availableTemplates = (await _package.files.list(`${app.appName}/templates`));
|
|
17
17
|
let hasNameError = false;
|
|
18
18
|
let hasKeyError = false;
|
|
19
19
|
// Remove .json from end
|
|
@@ -22,7 +22,7 @@ export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
|
22
22
|
|
|
23
23
|
for (const file of availableTemplates) {
|
|
24
24
|
try {
|
|
25
|
-
const t:
|
|
25
|
+
const t: PeptiHitTemplate = JSON.parse(await _package.files.readAsText(file));
|
|
26
26
|
availableTemplateKeys.push(t.key);
|
|
27
27
|
} catch (e) {
|
|
28
28
|
console.error(e);
|
|
@@ -33,7 +33,8 @@ export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
|
33
33
|
availableSubmitFunctions.forEach((func) => {
|
|
34
34
|
submitFunctionsMap[func.friendlyName ?? func.name] = func;
|
|
35
35
|
});
|
|
36
|
-
const submitFunctionInput = ui.input.choice('Submit function',
|
|
36
|
+
const submitFunctionInput = ui.input.choice('Submit function',
|
|
37
|
+
{value: null, items: [null, ...Object.keys(submitFunctionsMap)]});
|
|
37
38
|
submitFunctionInput.nullable = true;
|
|
38
39
|
submitFunctionInput.value = preset?.submit?.fName ?? null;
|
|
39
40
|
submitFunctionInput.setTooltip('Select function to be called upon submitting');
|
|
@@ -97,7 +98,7 @@ export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
|
97
98
|
},
|
|
98
99
|
functions: preset?.compute?.functions ?? [],
|
|
99
100
|
},
|
|
100
|
-
} as unknown as
|
|
101
|
+
} as unknown as PeptiHitTemplate;
|
|
101
102
|
const funcInput = await chemFunctionsDialog(app, (res) => {funcDialogRes = res;}, () => null,
|
|
102
103
|
dummyTemplate, false);
|
|
103
104
|
funcInput.root.classList.add('hit-triage-new-template-functions-input');
|
|
@@ -131,7 +132,7 @@ export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
|
131
132
|
const cancelButton = ui.button(C.i18n.cancel, () => resolve());
|
|
132
133
|
buttonsContainerDiv.appendChild(cancelButton);
|
|
133
134
|
});
|
|
134
|
-
const promise = new Promise<
|
|
135
|
+
const promise = new Promise<PeptiHitTemplate>((resolve) => {
|
|
135
136
|
async function onOkProxy() {
|
|
136
137
|
onTemplateNameChanged();
|
|
137
138
|
onTemplateKeyChange();
|
|
@@ -146,7 +147,7 @@ export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
|
146
147
|
}
|
|
147
148
|
|
|
148
149
|
const submitFunction = submitFunctionInput.value ? submitFunctionsMap[submitFunctionInput.value] : undefined;
|
|
149
|
-
const out:
|
|
150
|
+
const out: PeptiHitTemplate = {
|
|
150
151
|
name: templateNameInput.value,
|
|
151
152
|
key: templateKeyInput.value,
|
|
152
153
|
campaignFields: fieldsEditor.getFields(),
|
|
@@ -188,7 +189,7 @@ export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
|
188
189
|
},
|
|
189
190
|
...(submitFunction ? {submit: {fName: submitFunction.name, package: submitFunction.package.name}} : {}),
|
|
190
191
|
};
|
|
191
|
-
saveHitDesignTemplate(out);
|
|
192
|
+
saveHitDesignTemplate(out, app.appName);
|
|
192
193
|
grok.shell.info('Template created successfully');
|
|
193
194
|
resolve(out);
|
|
194
195
|
}
|
|
@@ -199,8 +200,8 @@ export async function newHitDesignTemplateAccordeon(app: HitAppBase<any>,
|
|
|
199
200
|
return {root: form, template: promise, cancelPromise};
|
|
200
201
|
}
|
|
201
202
|
|
|
202
|
-
|
|
203
|
-
_package.files.writeAsText(
|
|
203
|
+
function saveHitDesignTemplate(template: PeptiHitTemplate, appName: string) {
|
|
204
|
+
_package.files.writeAsText(`${appName}/templates/${template.name}.json`, JSON.stringify(template));
|
|
204
205
|
}
|
|
205
206
|
|
|
206
207
|
|
|
@@ -38,8 +38,8 @@ export async function createTemplateAccordeon(app: HitAppBase<any>,
|
|
|
38
38
|
|
|
39
39
|
const keyErrorDiv = ui.divText('Template key is empty or already exists', {classes: 'hit-triage-error-div'});
|
|
40
40
|
|
|
41
|
-
const templateNameInput = ui.input.string('Name', {value: '', onValueChanged: () => {
|
|
42
|
-
if (
|
|
41
|
+
const templateNameInput = ui.input.string('Name', {value: '', onValueChanged: (value) => {
|
|
42
|
+
if (value === '' || availableTemplates.includes(value)) {
|
|
43
43
|
templateNameInput.root.style.borderBottom = '1px solid red';
|
|
44
44
|
errorDiv.style.opacity = '100%';
|
|
45
45
|
} else {
|
|
@@ -47,8 +47,8 @@ export async function createTemplateAccordeon(app: HitAppBase<any>,
|
|
|
47
47
|
errorDiv.style.opacity = '0%';
|
|
48
48
|
}
|
|
49
49
|
}});
|
|
50
|
-
const templateKeyInput = ui.input.string('Key', {value: '', onValueChanged: () => {
|
|
51
|
-
if (
|
|
50
|
+
const templateKeyInput = ui.input.string('Key', {value: '', onValueChanged: (value) => {
|
|
51
|
+
if (value === '' || availableTemplateKeys.includes(value)) {
|
|
52
52
|
templateKeyInput.root.style.borderBottom = '1px solid red';
|
|
53
53
|
keyErrorDiv.style.opacity = '100%';
|
|
54
54
|
} else {
|
|
@@ -89,11 +89,8 @@ export async function createTemplateAccordeon(app: HitAppBase<any>,
|
|
|
89
89
|
const dataSourceFunctionInput = ui.input.choice(
|
|
90
90
|
C.i18n.dataSourceFunction, {value: combinedSourceNames[0], items: combinedSourceNames});
|
|
91
91
|
const ingestTypeInput = ui.input.choice<IngestType>('Ingest using', {value: 'Query', items: ['Query', 'File'],
|
|
92
|
-
onValueChanged: () => {
|
|
93
|
-
|
|
94
|
-
dataSourceFunctionInput.root.style.display = 'none';
|
|
95
|
-
else
|
|
96
|
-
dataSourceFunctionInput.root.style.display = 'block';
|
|
92
|
+
onValueChanged: (value) => {
|
|
93
|
+
dataSourceFunctionInput.root.style.display = value === 'Query' ? 'block' : 'none';
|
|
97
94
|
}});
|
|
98
95
|
|
|
99
96
|
const fieldsEditor = getCampaignFieldEditors();
|
package/src/app/base-view.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
|
-
import {AppName, HitDesignTemplate, HitTriageTemplate} from './types';
|
|
2
|
+
import {AppName, HitDesignTemplate, HitTriageTemplate, PeptiHitTemplate} from './types';
|
|
3
3
|
import {HitDesignApp} from './hit-design-app';
|
|
4
4
|
import {HitTriageApp} from './hit-triage-app';
|
|
5
5
|
import {_package} from '../package';
|
|
6
6
|
|
|
7
|
-
export class HitBaseView<Ttemplate extends HitDesignTemplate | HitTriageTemplate,
|
|
7
|
+
export class HitBaseView<Ttemplate extends HitDesignTemplate | HitTriageTemplate | PeptiHitTemplate,
|
|
8
8
|
Tapp extends HitDesignApp | HitTriageApp> extends DG.ViewBase {
|
|
9
9
|
app: Tapp;
|
|
10
10
|
protected deletedCampaigns: string[] = [];
|
package/src/app/consts.ts
CHANGED
|
@@ -8,7 +8,7 @@ export const HitTriageSubmitTag = 'HitTriageSubmitFunction';
|
|
|
8
8
|
export const HitSelectionColName = 'Selected hits';
|
|
9
9
|
export const TileCategoriesColName = 'Stage';
|
|
10
10
|
export const HitDesignMolColName = 'Molecule';
|
|
11
|
-
export const
|
|
11
|
+
export const PeptiHitHelmColName = 'Helm';
|
|
12
12
|
export const ViDColName = 'V-iD';
|
|
13
13
|
export const ViDColFormat = 'V######';
|
|
14
14
|
export const HTcampaignName = 'HTcampaignName';
|
|
@@ -127,9 +127,9 @@ export async function chemFunctionsDialog(app: HitAppBase<any>,
|
|
|
127
127
|
// add checkboxes to each hader
|
|
128
128
|
tc.panes.forEach((pane)=> {
|
|
129
129
|
const functionCheck =
|
|
130
|
-
ui.input.bool('', {value: calculatedFunctions[funcNamesMap[pane.name]], onValueChanged: (
|
|
131
|
-
calculatedFunctions[funcNamesMap[pane.name]] = !!
|
|
132
|
-
if (!
|
|
130
|
+
ui.input.bool('', {value: calculatedFunctions[funcNamesMap[pane.name]], onValueChanged: (value) => {
|
|
131
|
+
calculatedFunctions[funcNamesMap[pane.name]] = !!value;
|
|
132
|
+
if (!value)
|
|
133
133
|
$(pane.content).find('input').attr('disabled', 'true');
|
|
134
134
|
else
|
|
135
135
|
$(pane.content).find('input').removeAttr('disabled');
|
package/src/app/hit-app-base.ts
CHANGED
|
@@ -2,19 +2,22 @@ import * as grok from 'datagrok-api/grok';
|
|
|
2
2
|
import * as ui from 'datagrok-api/ui';
|
|
3
3
|
import * as DG from 'datagrok-api/dg';
|
|
4
4
|
import {_package} from '../package';
|
|
5
|
-
import {ComputeFunctions, HitDesignCampaign, HitTriageCampaign} from './types';
|
|
5
|
+
import {AppName, ComputeFunctions, HitDesignCampaign, HitTriageCampaign} from './types';
|
|
6
6
|
import {funcTypeNames, HitTriageComputeFunctionTag} from './consts';
|
|
7
7
|
import {checkEditPermissions} from './utils';
|
|
8
8
|
|
|
9
|
-
export class HitAppBase<T> {
|
|
9
|
+
export abstract class HitAppBase<T> {
|
|
10
10
|
public dataFrame?: DG.DataFrame;
|
|
11
11
|
public template?: T;
|
|
12
12
|
public baseUrl!: string;
|
|
13
13
|
public computeFunctions: Promise<ComputeFunctions>;
|
|
14
14
|
protected isJoining = false;
|
|
15
15
|
protected hasEditPermission = false;
|
|
16
|
+
private _appName: AppName;
|
|
17
|
+
public get appName(): AppName {return this._appName;}
|
|
16
18
|
// public layouts: Promise<DG.ViewLayout[]>;
|
|
17
|
-
constructor(public parentCall: DG.FuncCall) {
|
|
19
|
+
constructor(public parentCall: DG.FuncCall, appN: AppName) {
|
|
20
|
+
this._appName = appN;
|
|
18
21
|
this.resetBaseUrl();
|
|
19
22
|
this.computeFunctions = new Promise<ComputeFunctions>(async (resolve) => {
|
|
20
23
|
const funcs = DG.Func.find({tags: [HitTriageComputeFunctionTag]});
|