Skip to content

Commit

Permalink
Added Dockerfile, images, masks, report_v2.html, requirements.txt, st…
Browse files Browse the repository at this point in the history
…yles.css
  • Loading branch information
willtack committed Aug 13, 2019
1 parent 297d898 commit f09aad8
Show file tree
Hide file tree
Showing 33 changed files with 270 additions and 0 deletions.
39 changes: 39 additions & 0 deletions Dockerfile
@@ -0,0 +1,39 @@
FROM python:3
MAINTAINER Will Tackett <william.tackett@pennmedicine.upenn.edu>

# Make directory for flywheel spec (v0)
ENV FLYWHEEL /flywheel/v0
RUN mkdir -p ${FLYWHEEL}
RUN mkdir -p imgs
RUN mkdir -p masks
RUN mkdir -p bids_dataset
COPY manifest.json ${FLYWHEEL}/manifest.json

# Set the entrypoint
ENTRYPOINT ["/flywheel/v0/run.py"]

RUN apt-get -y update
RUN apt-get install -y zip

RUN pip install flywheel-sdk \
&& pip install nipype \
&& pip install nilearn \
&& pip install nibabel \
&& pip install matplotlib \
&& pip install bids \
&& pip install numpy \
&& pip install sklearn

# Copy over python scripts
COPY report.py /flywheel/v0/report.py
COPY run.py /flywheel/v0/run.py
COPY imgs/ /imgs/
COPY masks/ /masks/
COPY bids_dataset/ /bids_dataset/
RUN chmod +x ${FLYWHEEL}/*

# ENV preservation for Flywheel Engine
# RUN env -u HOSTNAME -u PWD | \
# awk -F = '{ print "export " $1 "=\"" $2 "\"" }' > ${FLYWHEEL}/docker-#env.sh

WORKDIR /flywheel/v0
Binary file added imgs/asym_ratio_equation.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/mean_signal.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/std_dev.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/svg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imgs/tsnr_equation.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions manifest.json
@@ -0,0 +1,21 @@
{
"name": "presurgical_report",
"label": "Presurgical Report Generator",
"description": "Generates a report from an fmri scan of an epilepsy patient",
"author": "Will Tackett",
"maintainer": "Will Tackett <william.tackett@pennmedicine.upenn.edu>",
"source": "none",
"url": "none",
"version": "3.1.1",
"license": "BSD-3-Clause",
"inputs": {
"fmriprepDir": {
"description": "Full path to directory containing fmriprep results",
"base": "file",
},
"config": {},
"command": "./report.py",
"author": "Will Tackett",
"maintainer": "Will Tackett"
}
}
Binary file added masks/ffg_left_bin.nii.gz
Binary file not shown.
Binary file added masks/ffg_right_bin.nii.gz
Binary file not shown.
Binary file added masks/hem_left.nii.gz
Binary file not shown.
Binary file added masks/hem_right.nii.gz
Binary file not shown.
Binary file added masks/hippocampus_left_bin.nii.gz
Binary file not shown.
Binary file added masks/hippocampus_right_bin.nii.gz
Binary file not shown.
Binary file added masks/hpf_bin.nii.gz
Binary file not shown.
Binary file added masks/hpf_left_bin.nii.gz
Binary file not shown.
Binary file added masks/hpf_right_bin.nii.gz
Binary file not shown.
Binary file added masks/itg_left.nii.gz
Binary file not shown.
Binary file added masks/itg_right.nii.gz
Binary file not shown.
Binary file added masks/lba.nii.gz
Binary file not shown.
Binary file added masks/mtg_left.nii.gz
Binary file not shown.
Binary file added masks/mtg_right.nii.gz
Binary file not shown.
Binary file added masks/phg_left_bin.nii.gz
Binary file not shown.
Binary file added masks/phg_right_bin.nii.gz
Binary file not shown.
Binary file added masks/rba.nii.gz
Binary file not shown.
Binary file added masks/sfg_left.nii.gz
Binary file not shown.
Binary file added masks/sfg_right.nii.gz
Binary file not shown.
Binary file added masks/stg_left.nii.gz
Binary file not shown.
Binary file added masks/stg_post_left.nii.gz
Binary file not shown.
Binary file added masks/stg_post_right.nii.gz
Binary file not shown.
Binary file added masks/stg_right.nii.gz
Binary file not shown.
140 changes: 140 additions & 0 deletions report_v2.html
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type"
content="text/html; charset=utf-8" /> <meta name="generator" content="Docutils 0.12:
http://docutils.sourceforge.net/" /> <title></title> <script
src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script> <script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script> <link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<style type="text/css"> .sub-report-title {} .run-title {}

h1 { padding-top: 35px; }
h2 { padding-top: 20px; }
h3 { padding-top: 15px; }

.elem-desc {}
.elem-filename {}

div.elem-image {
width: 100%;
page-break-before:always;
}

div.table {
display: inline-block;
width: 60%;
height: 150%;
margin-left: 5%;
vertical-align: middle;
}

div.barplot {
display: inline-block;
width: 55%;
height: 100%;
margin-left: -25%;
vertical-align: middle;
}

table.table-bordered > thead > tr > th{
border:1px solid black;
}

table.table-bordered > tbody > tr > td{
border:1px solid black;
}

table.table-bordered > tbody > tr > th{
border:1px solid black;
}

.elem-image object.svg-reportlet {
width: 100%;
padding-bottom: 5px;
}

body {
padding: 65px 10px 10px;
}

.boiler-html {
font-family: "Bitstream Charter", "Georgia", Times;
margin: 20px 25px;
padding: 10px;
background-color: #F8F9FA;
}

div#boilerplate pre {
margin: 20px 25px;
padding: 10px;
background-color: #F8F9FA;
}

</style>


</head>
<body>

<nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light">
<div class="collapse navbar-collapse">
<ul class="navbar-nav">
<li class="nav-item"><a class="nav-link" href="#ses-01_task-object_run-01">Object Naming</a></li>
<li class="nav-item"><a class="nav-link" href="#ses-01_task-rhyme_run-01">Rhyme Matching</a></li>
<li class="nav-item"><a class="nav-link" href="#ses-01_task-scenemem_run-01">Scene Memory</a></li>
<li class="nav-item"><a class="nav-link" href="#ses-01_task-sentence_run-01">Sentence Completion</a></li>
<li class="nav-item"><a class="nav-link" href="#ses-01_task-wordgen_run-01">Wordgen</a></li>
</ul>
</div>
</nav>



<div id="Summary" style="top-padding: -20px">
<h1 class="sub-report-title">Summary</h1>
<ul class="elem-desc">
<li>Subject ID: sub-P69</li>
<li>Structural images: 1 T1-weighted </li>
<li>Functional series: ''' + str(len(layout.get_tasks())) + '''</li>
<ul class="elem-desc">
<li>Task: ''' + layout.get_tasks()[0] + '''</li>
<li>Task: ''' + layout.get_tasks()[1] + '''</li>
<li>Task: ''' + layout.get_tasks()[2] + '''</li>
<li>Task: ''' + layout.get_tasks()[3] + '''</li>
<li>Task: ''' + layout.get_tasks()[4] + '''</li>
<li>Task: ''' + layout.get_tasks()[5] + '''</li>
</ul>
<li>Resampling targets: MNI152NLin2009cAsym, T1w </li>
</ul>
<h3> Reference table </h3>
''' + legend + '''
</div>

<div id="Functional">
<div id="ses-01_task-object_run-01" style="margin-top: 50px">
<h1 class="run-title">Object Naming</h1>
<h3 class="elem-title">Glass brain</h3>
<div class="elem-image">
<object class="svg-reportlet" type="image/svg+xml" data="''' + gb['object_gb'] + '''">
</object>
</div>

<h3 style="margin-top: 20px"><a href=''' + viewers['object_viewer'] + '''>Statistical Map Viewer</a></h3>

<h3 style="margin-top: 20px"> Statistics </h3>

<div style="border: 1px solid black;">
<div class="table">
''' + tables['object_table'] + '''
</div>
<div class="barplot">
<object data="''' + bars['object_bar'] + '''">
</object>
</div>
</div>
</body>
7 changes: 7 additions & 0 deletions requirements.txt
@@ -0,0 +1,7 @@
matplotlib
nibabel
nilearn
nipype
numpy
pandas
bids
63 changes: 63 additions & 0 deletions styles.css
@@ -0,0 +1,63 @@
.sub-report-title {} .run-title {}

h1 { padding-top: 35px; }
h2 { padding-top: 20px; }
h3 { padding-top: 15px; }

.elem-desc {}
.elem-filename {}

div.elem-image {
width: 100%;
page-break-before:always;
}

div.table {
display: inline-block;
width: 60%;
height: 150%;
margin-left: 5%;
vertical-align: middle;
}

div.barplot {
display: inline-block;
width: 55%;
height: 100%;
margin-left: -25%;
vertical-align: middle;
}

table.table-bordered > thead > tr > th{
border:1px solid black;
}

table.table-bordered > tbody > tr > td{
border:1px solid black;
}

table.table-bordered > tbody > tr > th{
border:1px solid black;
}

.elem-image object.svg-reportlet {
width: 100%;
padding-bottom: 5px;
}

body {
padding: 65px 10px 10px;
}

.boiler-html {
font-family: "Bitstream Charter", "Georgia", Times;
margin: 20px 25px;
padding: 10px;
background-color: #F8F9FA;
}

div#boilerplate pre {
margin: 20px 25px;
padding: 10px;
background-color: #F8F9FA;
}

0 comments on commit f09aad8

Please sign in to comment.