nidmviewer package

Subpackages

Submodules

nidmviewer.browser module

browser.py: part of nidmviewer package Functions to visualize in browser

Copyright (c) 2014-2018, Vanessa Sochat All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nidmviewer.browser.get_svg_html(mpl_figures)[source]
nidmviewer.browser.internal_view(html_snippet, tmp_file)[source]
nidmviewer.browser.run_webserver(port=8088, html_page='index.html')[source]
nidmviewer.browser.view(html_snippet, copy_list, port)[source]
nidmviewer.browser.write_file(html_snippet, tmp_file)[source]

nidmviewer.convert module

convert Functions to convert/parse output from nidm sparql queries

Copyright (c) 2014-2018, Vanessa Sochat All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nidmviewer.convert.getjson(nidm_file, format='n3')[source]
nidmviewer.convert.parse_coordinates(coordinates)[source]

convert a list of xyz strings in format ‘[x,y,z]’ to separate variables This is what we get from the sparql query Parameters ========== coordinates: list

a list of xyz coordinate strings, each a list in a string ‘[x,y,z]’

coordinate_df: pandas dataframe columns are x,y,z

nidmviewer.convert.prettyjson(nidm_file, format='n3')[source]

nidmviewer.scripts module

script.py: part of nidmviewer package Functions to visualize in browser

Copyright (c) 2014-2018, Vanessa Sochat All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nidmviewer.scripts.main()[source]

nidmviewer.sparql module

sparql.py: part of the nidmviewer package Sparql queries

Copyright (c) 2014-2018, Vanessa Sochat All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nidmviewer.sparql.do_query(ttl_file, query, rdf_format='turtle', serialize_format='csv', output_df=True)[source]
nidmviewer.sparql.get_coordinates(ttl_file)[source]
nidmviewer.sparql.get_coordinates_and_maps(ttl_file)[source]

nidmviewer.templates module

templates.py: part of the nidmviewer package Functions to work with html templates

Copyright (c) 2014-2018, Vanessa Sochat All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nidmviewer.templates.add_javascript_function(function_code, template)[source]
nidmviewer.templates.add_string(tag, substitution, template)[source]
nidmviewer.templates.get_image(image_name)[source]
nidmviewer.templates.get_template(html_name)[source]
nidmviewer.templates.read_template(html_name)[source]
nidmviewer.templates.remove_resources(html_snippet, script_names)[source]
nidmviewer.templates.save_template(html_snippet, output_file)[source]

nidmviewer.utils module

utils.py: part of the nidmviewer package Functions to work with html templates

Copyright (c) 2014-2018, Vanessa Sochat All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nidmviewer.utils.download_file(src, dest)[source]
nidmviewer.utils.get_extension(path)[source]
nidmviewer.utils.get_images(peaks, location_key)[source]

get_images returns unique images for a location key from a peaks table

nidmviewer.utils.get_name(path)[source]
nidmviewer.utils.get_package_dir()[source]
nidmviewer.utils.get_random_name(length=6, chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')[source]
nidmviewer.utils.get_standard_brain(load=True)[source]
nidmviewer.utils.is_empty(nii_file)[source]
nidmviewer.utils.make_dir(directory)[source]
nidmviewer.utils.make_png_paths(nifti_files)[source]
nidmviewer.utils.make_tmp_folder(*args, **kwds)[source]
nidmviewer.utils.read_file_lines(file_name)[source]
nidmviewer.utils.strip_url(url, encode=True)[source]
nidmviewer.utils.unwrap_list_unique(list_of_lists)[source]
nidmviewer.utils.unzip(source, dest_dir)[source]

nidmviewer.viewer module

viewer.py: part of the nidmviewer package

Copyright (c) 2014-2018, Vanessa Sochat All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nidmviewer.viewer.check_inputs(ttl_files)[source]

check_input. will return a list of ttl files, more advanced functionality can be added if needed (validation, etc) Parameters ========== ttl_files: string or list

full paths to ttl files
list of ttl files
nidmviewer.viewer.generate(ttl_files, base_image=None, retrieve=False, view_in_browser=False, columns_to_remove=None, template_choice='index', port=None, remove_scripts=None, button_text='BRAIN', check_empty=False)[source]

will generate a nidmviewer to run locally or to embed into webserver Parameters ========== ttl_files: str or list

one or more turtle files to add to the viewer. Images in the files should be available at the specified URL.
retrieve: boolean
If set to False, the images are assumed to be on the same server, and will be served with the given URL. If retrieve is set to True, the images will be retrieved first and stored in a temporary directory.
base_image: str
The base image to use for the viewer. Not specifying a base_image will yield a black background.
view_in_browser: boolean
open a temporary web browser (to run locally). If True, images will be copied to a temp folder. If False, image_paths must be relative to web server. File names should be unique.
columns_to_remove: additional columns to remove. If none, default columns of “coordinate_id”
“statmap_type” and “exc_set” will be removed.
port: int
port to serve nidmviewer, if view_in_browser==True
remove_scripts: list
one or more script or button tags to remove from the template. Options include JQUERY BOOTSTRAPJS BOOTSTRAPCSS PAPAYACSS PAPAYAJS NIDMSELECTBUTTON
button_text: str
Text string for the button to select a brain image. Default is “BRAIN”
check_empty: boolean - check for empty images or not. Will result in error if nidm paths
are URLS.
nidmviewer.viewer.generate_temp(peaks, location_key)[source]

generate a lookup of temporary files Parameters ========== peaks: dict

data structure from get_coordinates_and_peaks
location_key: str
key in peaks data structure for file paths
peaks: dict
(key is ttl file, equivalent to peaks, but old location_key path is replaced with path to temporary directory
copy_list: dict
keys are current paths, values are temporary file names corresponding to fullpath in new_nifti_files[ttl_file] dictionary. This is used to copy images into the temporary directory with the correct names.
nidmviewer.viewer.get_column_names(peaks)[source]
nidmviewer.viewer.parse_nidm(ttl_files)[source]

Extract brainmaps and coordinates from ttl files Parameters: ========== ttl_files: list

list of full paths to ttl files
peaks: dict
dict of pandas data frames, one for each ttl_file, with columns coordinate, z, peak_name, pvalue_uncorrected
maps: dict
dict of pandas data frames, one for each ttl_file, with columns filename and location for all brain maps specified in ttl.
nidmviewer.viewer.remove_columns(columns, columns_to_remove)[source]
nidmviewer.viewer.retrieve_nifti(peaks, retrieve, location_key)[source]

Download the image to a temporary folder if the user needs to retrieve it. Otherwise, return file Parameters ========== peaks: dict

dictionary (key, is ttl_file, and value, is dictionary of {filename:fullpath} for all brainmaps extracted from the ttl files
retrieve: boolean
if True, will download brainmaps to temporary folder first. If false, encodes path in utf-8 for rendering in javascript
location_key: str
key to look up file name in peaks dictionary
nidmviewer.viewer.to_dictionary(df, orient='records', strip_columns=False, strings=False)[source]

to_dictionary: Convert a pandas dataframe into the string of a json/dict to embed into page Parameters ========== df: pandas data frame

data frame to convert
orient: str
orientation to convert with (default is “records”)
strip_columns: boolean
if true, will return df.to_dict(orient=orient).values() default is False
strings: boolean
True will convert all columns to strings.

Module contents