-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.html
430 lines (369 loc) · 21.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Knowledge Integration for Breast Cancer Characterization</title>
<!-- Bootstrap core CSS -->
<link href="bootstrap/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom fonts for this template -->
<link href="https://fonts.googleapis.com/css?family=Saira+Extra+Condensed:100,200,300,400,500,600,700,800,900"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i"
rel="stylesheet">
<link href="bootstrap/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="bootstrap/vendor/devicons/css/devicons.min.css" rel="stylesheet">
<link href="bootstrap/vendor/simple-line-icons/css/simple-line-icons.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="bootstrap/css/style.min.css" rel="stylesheet">
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="bootstrap/img/favicon.ico"/>
</head>
<body id="page-top">
<nav class="navbar navbar-expand-lg navbar-dark bg-primary fixed-top" id="sideNav">
<a class="navbar-brand js-scroll-trigger" href="#page-top">
<span class="d-block d-lg-none"></span>
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#about">About</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#resources">Resources</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#demo">Demo</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#setup">Setup Instructions</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#publications">Publications</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#contact">Contact</a>
</li>
</ul>
</div>
</nav>
<div class="container-fluid p-0">
<section class="resume-section p-3 p-lg-5 d-flex d-column" id="about">
<div class="my-auto">
<h1 class="mb-2">Knowledge Integration for
Breast Cancer Characterization<sup>*</sup><br/>
</h1>
<div class="mb-2"><sup>*</sup>This work is partially supported by IBM Research through the AI Horizons Network. </div>
<br/>
<!-- <div class="subheading mb-5">Oshani Seneviratne, Sabbir Rashid, Shruthi Chari, Jim McCusker, Kristin
Bennett, James Hendler and Deborah McGuinness<br/>
<b><a href="https://tw.rpi.edu/"> Tetherless World Constellation</a>, <a href="http://rpi.edu/">Rensselaer Polytechnic Institute</a></b>
</div> -->
<!-- <h3>Abstract</h3> -->
<p class="mb-5">
<blockquote>
With the rapid advancements in cancer research, the information that is useful for characterizing
disease, staging tumors, and creating treatment and survivorship plans has been changing at a pace that
creates challenges when practicing oncologists and physicians try to remain current. One example of this
involves increasing usage of biomarkers when characterizing the pathologic prognostic stage of a breast
tumor. We present our semantic technology approach to support cancer characterization and demonstrate it
in our end-to-end prototype system that collects the newest breast cancer staging criteria from
authoritative oncology manuals to construct an ontology for breast cancer. Using a tool we developed
that utilizes this ontology, physicians can quickly stage a new patient to support identifying risks,
treatment options, and monitoring plans based on authoritative and best practice guidelines. Physicians
can also re-stage an existing patient, allowing them to find patients whose stage has changed in a given
patient cohort. As new guidelines emerge, using our proposed mechanism, which is grounded by semantic
technologies for ingesting new data from staging manuals, we have created an enriched cancer staging
ontology that integrates relevant data from several sources with very little human intervention.
</blockquote>
</p>
</div>
</section>
<section class="resume-section p-3 p-lg-5 d-flex flex-column" id="resources">
<div class="my-auto">
<h2 class="mb-5">Resources</h2>
<div class="subheading mb-3">Ontologies</div>
<div class="list-group">
<a href="http://bioportal.bioontology.org/ontologies/CST" class="list-group-item">Cancer
Staging Terms <i class="fa fa-arrow-circle-right"></i> <small>http://bioportal.bioontology.org/ontologies/CST</small></a>
<a href="http://bioportal.bioontology.org/ontologies/BCS7" class="list-group-item">Breast Cancer
Staging Ontology for the AJCC 7<sup>th</sup> Edition <i class="fa fa-arrow-circle-right"></i> <small>http://bioportal.bioontology.org/ontologies/BCS7</small></a>
<a href="http://bioportal.bioontology.org/ontologies/BCS8" class="list-group-item">Breast Cancer
Staging Ontology for the AJCC 8<sup>th</sup> Edition <i class="fa fa-arrow-circle-right"></i> <small>http://bioportal.bioontology.org/ontologies/BCS8</small></a>
</div>
<br/><br/>
<div class="subheading mb-3">Source Code</div>
<a href="./breast-cancer-staging/ajcc_r8_annotated_guideline_extractor" class="list-group-item">AJCC
Guideline Extractor</a>
<a href="./breast-cancer-staging/create_owl_axioms.py" class="list-group-item">OWL Axiom Generator</a>
<a href="./heals2vis/heals2vis/inferencer.py" class="list-group-item">Whyis Inference Agent</a>
<a href="./breast-cancer-staging/inference_rules.txt" class="list-group-item">Custom Inference Rules</a>
<a href="./heals2vis" class="list-group-item">Visualization</a>
<br/><br/>
<div class="subheading mb-3">Semantic Annotations</div>
<div class="list-group list-group-item"> SEER
<a href="./RPI-HEALS-Semantic-Data-Dictionaries/SEER/seerDM.csv" class="list-group-item">Dictionary
Mappings</a>
<a href="./RPI-HEALS-Semantic-Data-Dictionaries/SEER/seerCB.csv" class="list-group-item">Code
Book</a>
</div>
<div class="list-group list-group-item"> CIViC
<a href="./RPI-HEALS-Semantic-Data-Dictionaries/CIVIC/civicDM.csv" class="list-group-item">Dictionary
Mappings</a>
<a href="./RPI-HEALS-Semantic-Data-Dictionaries/CIVIC/civicCB.csv" class="list-group-item">Code
Book</a>
</div>
<br/>
<i>
For the conversion to RDF using these files, please refer to the <a
href="https://github.com/tetherless-world/SemanticDataDictionary">Semantic Data Dictionary
specification</a>.
</i>
<br/><br/>
<div class="subheading mb-3">Data</div>
<a href="./heals2vis/data/seer-out.txt" class="list-group-item">SEER Patient Nanopubs</a>
<a href="./heals2vis/data/civic-out.txt" class="list-group-item">CIViC Drug Nanopubs</a>
</div>
</section>
<section class="resume-section p-3 p-lg-5 d-flex flex-column" id="demo">
<div class="my-auto">
<h2 class="mb-5">Demo</h2>
<div align="center" class="embed-responsive embed-responsive-16by9">
<video controls>
<source src="CancerCharacterizationDemo.mp4" type="video/mp4" class="embed-responsive-item">
</video>
</div>
</div>
</section>
<section class="resume-section p-3 p-lg-5 d-flex flex-column" id="setup">
<div class="my-auto">
<h2 class="mb-5">Setup</h2>
<!--<div align="center" class='embed-responsive' style='padding-bottom:150%'>-->
<!--<object id="pdf" width="100%" type="application/pdf"-->
<!--data="./Documentation/VisualisationREADME.pdf">-->
<!--<span>PDF plugin is not available.</span>-->
<!--</object>-->
<!--</div>-->
<h3 class="mx-auto">VirtualBox Install Method: Bringing up a Whyis VM</h3>
<div>
<p>In order to host our application on the <a href="https://github.com/tetherless-world/whyis/">Whyis
framework</a>, we need to bring up a machine with Whyis
installed. You could
install Whyis on your host machine (if on an Ubuntu machine); but the preferred method is to do so
by bringing up a VM.
In order to bring up a VM, you need to have a <a href="https://www.virtualbox.org/">Virtualbox
platform</a> installed.
</p>
<p>On installing the VM container, we can now proceed to installing Whyis. For the installation you
need to create a <b>whyis-vm</b>
directory within the home directory of your system.
If on a Mac/Ubuntu Machine, to do that you could:<br/>
<code>
mkdir whyis-vm<br/>
cd whyis-vm<br/>
</code>
</p>
<p>Once we are within the whyis-vm directory(this will serve as a mounted folder between our host
machine and VM), we need
to download the Vagrantfile and install script to launch a Whyis machine. They can be downloaded
by following the below
commands.<br/>
<code>
curl -skL https://github.com/tetherless-world/whyis/blob/release/Vagrantfile >
Vagrantfile<br/>
curl -skL https://github.com/tetherless-world/whyis/blob/release/install.sh >
install.sh<br/>
</code>
</p>
<p>To launch a machine:<br/>
<code>
vagrant up<br/>
</code>
</p>
<p>
Once the machine is launched, we can connect to the machine, and activate the virtual
environment venv.<br/>
<code>
vagrant ssh<br/>
sudo su - whyis<br/>
cd /apps/whyis<br/>
source venv/bin/activate<br/>
</code>
</p>
<p>Once these steps are done, we can start the Whyis server by running:<br/>
<code>python manage.py runserver -h 0.0.0.0</code></p>
<p>The Whyis landing page can be accessed at:<br/>
<code>http:192.168.33.36:5000</code></p>
<p>Let’s go ahead and register now, using the below URL:<br/>
<code>http:192.168.33.36:5000/register</code></p>
<p>For further information on installation, please see:
<a href="http://tetherless-world.github.io/whyis/install">http://tetherless-world.github.io/whyis/install</a>
</p>
</div>
<h3 class="mx-auto">Alternative method to install Whyis on a Linux box</h3>
<div>
<p>In order to host our application on the <a href="https://github.com/tetherless-world/whyis/">Whyis
framework</a>, we need to bring up a machine with Whyis
installed. You could
install Whyis on your host machine (if on an Ubuntu machine).
</p>
<p>Once we have a Ubuntu box, we can now proceed to installing Whyis. For the installation you
need to create a <b>whyis-vm</b>
directory within the home directory of your system.
If on a Mac/Ubuntu Machine, to do that you could:<br/>
<code>
mkdir whyis-vm<br/>
cd whyis-vm<br/>
</code>
</p>
<p>Once we are within the whyis-vm directory(this will serve as a mounted folder between our host
machine and VM), we need
to download the install script to launch a Whyis machine. They can be downloaded
by following the below
commands.<br/>
<code>
curl -skL https://github.com/tetherless-world/whyis/blob/release/install.sh >
install.sh<br/>
</code>
</p>
<p>
Once the install script is downloaded, we can install Whyis, and activate the virtual
environment venv.<br/>
<code>
sh install.sh<br/>
sudo su - whyis<br/>
cd /apps/whyis<br/>
source venv/bin/activate<br/>
</code>
</p>
<p>Once these steps are done, we can start the Whyis server by running:<br/>
<code>python manage.py runserver -h 0.0.0.0</code></p>
<p>The Whyis landing page can be accessed at:<br/>
<code>http:0.0.0.0:5000</code></p>
<p>Let’s go ahead and register now, using the below URL:<br/>
<code>http:0.0.0.0:5000/register</code></p>
<p>For further information on installation, please see:
<a href="http://tetherless-world.github.io/whyis/install">http://tetherless-world.github.io/whyis/install</a>
</p>
<p>
Please note if you use the native box method of installation, the URL that needs to be accessed is:
<a href="http://0.0.0.0:5000">0.0.0.0:5000</a>
</p>
</div>
<h3 class="mx-auto"> Installing the heals2vis application</h3>
<div>
<p>
Now that we have a working Whyis instance, we can install the heals2vis application: It can be
downloaded by performing<br/>
<code>
cd /apps<br/>
git clone https://github.com/cancer-staging-ontology/cancer-staging-ontology.github.io
</code>
</p>
<p>
Once we have downloaded the repository, we need to install the application.
We only need the heals2vis directory from the above repository, we can move the heals2vis directory
up a
directory.<br/>
<code>sudo mv cancer-staging-ontology.github.io/heals2vis .<br/>
sudo chown -R whyis:whyis heals2vis/</code>
</p>
<p>Become whyis user again, to be able install the heals2vis app<br/>
<code>sudo su - whyis<br/>
cp heals2vis/autonomic.py whyis/</code></p>
<>Change directory to the heals2vis directory, and run the below command:<br/>
<code>cd heals2vis && pip install -e .</code></p>
<p>Exit the whyis user mode to restart services. Now we need to restart our webserver and queueing
scheduler in order for the above installation to take effect.<br/>
<code>
sudo service apache2 restart<br/>
sudo service celeryd restart<br/>
</code>
<p>Now we can restart the server, by changing directory back to <code>/apps/whyis</code> and switch to
whyis user mode.<br/>
<code>sudo su - whyis<br/>
cd /apps/whyis<br/>
python manage.py runserver -h 0.0.0.0<br/>
</code></p>
<p>We should be able to see a heals2vis landing page when we try <a href="http://192.168.33.36:5000">192.168.33.36:5000</a>.
</p>
<p>Alternative URL (for Ubuntu installation) We should be able to see a heals2vis landing page when we try <a href="http://0.0.0.0:5000">0.0.0.0:5000</a>.
</p>
</div>
<h3 class="mx-auto">Loading the data into Whyis’s Blazegraph instance</h3>
<div>
<p>We need to load in the SEER patient records, the CIViC drug dataset and the Cancer Staging Ontology
to be able to load the Whyis physicianView and derive knowledge by inferencing.
The below commands need to be run to load knowledge into the Blazegraph instance.</p>
<p>
Considering we are at the point, we stopped at last; we just need to stop the server by using a kill
command <kbd>Ctrl+C</kbd>; to be able to proceed with the data load<br/>
<code>python manage.py load -i /apps/heals2vis/data/viz.ttl -f turtle<br/>
python manage.py load -i /apps/heals2vis/data/cancer_staging_terms.owl.ttl -f turtle<br/>
python manage.py load -i /apps/heals2vis/data/civic-out.txt -f trig<br/>
python manage.py load -i /apps/heals2vis/data/seer-out-sample.txt -f trig<br/>
</code>
</p>
<p>
Now that the data is loaded we need to pre-run the inferencer on these records, it can be run by the
below command: <br/>
<code>python manage.py test_agent -a heals2vis.inferencer.Infer</code>
</p>
</div>
<h3 class="mx-auto">Accessing the view</h3>
<div>
<p>
Once these steps are done, we can restart the Whyis server by running:<br/>
<code>python manage.py runserver -h 0.0.0.0</code>
</p>
<p>
Now that we have the heals2vis application installed and the data loaded in: We can explore the
interactive physician view at: <a href="http://192.168.33.36:5000/physicianView">http://192.168.33.36:5000/physicianView</a>.
Make sure to click this URL twice, it gives an error on the first hit due to a known bug.
</p>
<p>
Alternative URL ( Ubuntu method) We can explore the
interactive physician view at: <a href="http:/0.0.0.0:5000/physicianView">http://0.0.0.0:5000/physicianView</a>.
Make sure to click this URL twice, it gives an error on the first hit due to a known bug.
</p>
</div>
</div>
</section>
<section class="resume-section p-3 p-lg-5 d-flex d-column" id="publications">
<div class="my-auto">
<h1 class="mb-2">Publications</h1>
<article class="mb-5">
<content>
<ul>
<li><strong>Knowledge Integration for Disease Characterization: A Breast Cancer Example</strong>, International Semantic Web Conference 2018 Resource Track Paper (<a href="https://arxiv.org/abs/1807.07991">pre-print</a>)
</li>
<li><strong>Ontology-enabled Breast Cancer Characterization</strong>, International Semantic Web Conference 2018 Demo Paper. (<a href="https://arxiv.org/submit/2380596/view">pre-print</a>)
</li>
<li><strong>Knowledge Representation and Reasoning for Breast Cancer</strong>, American Medical Informatics Association 2018 Knowledge Representation and Semantics Working Group Pre-Symposium Extended Abstract (submitted)</li>
</ul>
</content>
</article>
</div>
</section>
<section class="resume-section p-3 p-lg-5 d-flex flex-column" id="contact">
<div class="my-auto">
<h2 class="mb-5">Contact</h2>
<p>If you have any questions about this work, please contact <a href="mailto:cancer.staging.ontology@gmail.com">Cancer Staging Ontology Developers</a>.</p>
</div>
</section>
</div>
<!-- Bootstrap core JavaScript -->
<script src="bootstrap/vendor/jquery/jquery.min.js"></script>
<script src="bootstrap/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Plugin JavaScript -->
<script src="bootstrap/vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Custom scripts for this template -->
<script src="bootstrap/js/template.min.js"></script>
</body>
</html>