diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fbc38f7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +FROM python:3 +MAINTAINER Will Tackett + +# 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 diff --git a/imgs/asym_ratio_equation.png b/imgs/asym_ratio_equation.png new file mode 100644 index 0000000..094f02f Binary files /dev/null and b/imgs/asym_ratio_equation.png differ diff --git a/imgs/mean_signal.png b/imgs/mean_signal.png new file mode 100644 index 0000000..59c387a Binary files /dev/null and b/imgs/mean_signal.png differ diff --git a/imgs/std_dev.png b/imgs/std_dev.png new file mode 100644 index 0000000..b7c9409 Binary files /dev/null and b/imgs/std_dev.png differ diff --git a/imgs/svg.png b/imgs/svg.png new file mode 100644 index 0000000..465cd65 Binary files /dev/null and b/imgs/svg.png differ diff --git a/imgs/tsnr_equation.png b/imgs/tsnr_equation.png new file mode 100644 index 0000000..1df9bec Binary files /dev/null and b/imgs/tsnr_equation.png differ diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..368c809 --- /dev/null +++ b/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 ", + "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" + } +} diff --git a/masks/ffg_left_bin.nii.gz b/masks/ffg_left_bin.nii.gz new file mode 100644 index 0000000..e91892d Binary files /dev/null and b/masks/ffg_left_bin.nii.gz differ diff --git a/masks/ffg_right_bin.nii.gz b/masks/ffg_right_bin.nii.gz new file mode 100644 index 0000000..6ff8efc Binary files /dev/null and b/masks/ffg_right_bin.nii.gz differ diff --git a/masks/hem_left.nii.gz b/masks/hem_left.nii.gz new file mode 100644 index 0000000..d261bbc Binary files /dev/null and b/masks/hem_left.nii.gz differ diff --git a/masks/hem_right.nii.gz b/masks/hem_right.nii.gz new file mode 100644 index 0000000..188c0e9 Binary files /dev/null and b/masks/hem_right.nii.gz differ diff --git a/masks/hippocampus_left_bin.nii.gz b/masks/hippocampus_left_bin.nii.gz new file mode 100644 index 0000000..d000a26 Binary files /dev/null and b/masks/hippocampus_left_bin.nii.gz differ diff --git a/masks/hippocampus_right_bin.nii.gz b/masks/hippocampus_right_bin.nii.gz new file mode 100644 index 0000000..97f3279 Binary files /dev/null and b/masks/hippocampus_right_bin.nii.gz differ diff --git a/masks/hpf_bin.nii.gz b/masks/hpf_bin.nii.gz new file mode 100644 index 0000000..f3a85a9 Binary files /dev/null and b/masks/hpf_bin.nii.gz differ diff --git a/masks/hpf_left_bin.nii.gz b/masks/hpf_left_bin.nii.gz new file mode 100644 index 0000000..3c87572 Binary files /dev/null and b/masks/hpf_left_bin.nii.gz differ diff --git a/masks/hpf_right_bin.nii.gz b/masks/hpf_right_bin.nii.gz new file mode 100644 index 0000000..59480e1 Binary files /dev/null and b/masks/hpf_right_bin.nii.gz differ diff --git a/masks/itg_left.nii.gz b/masks/itg_left.nii.gz new file mode 100644 index 0000000..a863ab6 Binary files /dev/null and b/masks/itg_left.nii.gz differ diff --git a/masks/itg_right.nii.gz b/masks/itg_right.nii.gz new file mode 100644 index 0000000..5819c99 Binary files /dev/null and b/masks/itg_right.nii.gz differ diff --git a/masks/lba.nii.gz b/masks/lba.nii.gz new file mode 100644 index 0000000..c33d0fa Binary files /dev/null and b/masks/lba.nii.gz differ diff --git a/masks/mtg_left.nii.gz b/masks/mtg_left.nii.gz new file mode 100644 index 0000000..f83d815 Binary files /dev/null and b/masks/mtg_left.nii.gz differ diff --git a/masks/mtg_right.nii.gz b/masks/mtg_right.nii.gz new file mode 100644 index 0000000..deccad7 Binary files /dev/null and b/masks/mtg_right.nii.gz differ diff --git a/masks/phg_left_bin.nii.gz b/masks/phg_left_bin.nii.gz new file mode 100644 index 0000000..8679493 Binary files /dev/null and b/masks/phg_left_bin.nii.gz differ diff --git a/masks/phg_right_bin.nii.gz b/masks/phg_right_bin.nii.gz new file mode 100644 index 0000000..b023e6c Binary files /dev/null and b/masks/phg_right_bin.nii.gz differ diff --git a/masks/rba.nii.gz b/masks/rba.nii.gz new file mode 100644 index 0000000..cd15f2d Binary files /dev/null and b/masks/rba.nii.gz differ diff --git a/masks/sfg_left.nii.gz b/masks/sfg_left.nii.gz new file mode 100644 index 0000000..09f8391 Binary files /dev/null and b/masks/sfg_left.nii.gz differ diff --git a/masks/sfg_right.nii.gz b/masks/sfg_right.nii.gz new file mode 100644 index 0000000..7f7c614 Binary files /dev/null and b/masks/sfg_right.nii.gz differ diff --git a/masks/stg_left.nii.gz b/masks/stg_left.nii.gz new file mode 100644 index 0000000..8485b26 Binary files /dev/null and b/masks/stg_left.nii.gz differ diff --git a/masks/stg_post_left.nii.gz b/masks/stg_post_left.nii.gz new file mode 100644 index 0000000..53437df Binary files /dev/null and b/masks/stg_post_left.nii.gz differ diff --git a/masks/stg_post_right.nii.gz b/masks/stg_post_right.nii.gz new file mode 100644 index 0000000..63e364d Binary files /dev/null and b/masks/stg_post_right.nii.gz differ diff --git a/masks/stg_right.nii.gz b/masks/stg_right.nii.gz new file mode 100644 index 0000000..8c28728 Binary files /dev/null and b/masks/stg_right.nii.gz differ diff --git a/report_v2.html b/report_v2.html new file mode 100644 index 0000000..21aa735 --- /dev/null +++ b/report_v2.html @@ -0,0 +1,140 @@ + + + + + + + + + + + +
+

Summary

+
    +
  • Subject ID: sub-P69
  • +
  • Structural images: 1 T1-weighted
  • +
  • Functional series: ''' + str(len(layout.get_tasks())) + '''
  • +
      +
    • Task: ''' + layout.get_tasks()[0] + '''
    • +
    • Task: ''' + layout.get_tasks()[1] + '''
    • +
    • Task: ''' + layout.get_tasks()[2] + '''
    • +
    • Task: ''' + layout.get_tasks()[3] + '''
    • +
    • Task: ''' + layout.get_tasks()[4] + '''
    • +
    • Task: ''' + layout.get_tasks()[5] + '''
    • +
    +
  • Resampling targets: MNI152NLin2009cAsym, T1w
  • +
+

Reference table

+ ''' + legend + ''' +
+ +
+
+

Object Naming

+

Glass brain

+
+ + +
+ +

Statistical Map Viewer

+ +

Statistics

+ +
+
+ ''' + tables['object_table'] + ''' +
+
+ + +
+
+ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..075ba02 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +matplotlib +nibabel +nilearn +nipype +numpy +pandas +bids diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..9953860 --- /dev/null +++ b/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; + }