Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
@janelia-flyem/neuroglancer
Advanced tools
Neuroglancer is a WebGL-based viewer for volumetric data. It is capable of displaying arbitrary (non axis-aligned) cross-sectional views of volumetric data, as well as 3-D meshes and line-segment based models (skeletons).
This is not an official Google product.
A live demo is hosted at https://neuroglancer-demo.appspot.com. (The prior link opens the viewer without any preloaded dataset.) Use the viewer links below to open the viewer preloaded with an example dataset.
The four-pane view consists of 3 orthogonal cross-sectional views as well as a 3-D view (with independent orientation) that displays 3-D models (if available) for the selected objects. All four views maintain the same center position. The orientation of the 3 cross-sectional views can also be adjusted, although they maintain a fixed orientation relative to each other. (Try holding the shift key and either dragging with the left mouse button or pressing an arrow key.)
FlyEM Hemibrain (8x8x8 cubic nanometer resolution). Open viewer
FAFB-FFN1 Full Adult Fly Brain Automated Segmentation (4x4x40 cubic nanometer resolution). Open viewer
Kasthuri et al., 2014. Mouse somatosensory cortex (6x6x30 cubic nanometer resolution). Open viewer.
This dataset was copied from https://neurodata.io/data/kasthuri15/ and is made available under the Open Data Common Attribution License. Paper: Kasthuri, Narayanan, et al. "Saturated reconstruction of a volume of neocortex." Cell 162.3 (2015): 648-661.
Janelia FlyEM FIB-25. 7-column Drosophila medulla (8x8x8 cubic nanometer resolution). Open viewer.
This dataset was copied from https://www.janelia.org/project-team/flyem/data-and-software-release, and is made available under the Open Data Common Attribution License. Paper: Takemura, Shin-ya et al. "Synaptic Circuits and Their Variations within Different Columns in the Visual System of Drosophila." Proceedings of the National Academy of Sciences of the United States of America 112.44 (2015): 13711-13716.
Neuroglancer itself is purely a client-side program, but it depends on data being accessible via HTTP in a suitable format. It is designed to easily support many different data sources, and there is existing support for the following data APIs/formats:
For the complete set of bindings, see
src/neuroglancer/ui/default_input_event_bindings.ts,
or within Neuroglancer, press h
or click on the button labeled ?
in the upper right corner.
Click on a layer name to toggle its visibility.
Double-click on a layer name to edit its properties.
Hover over a segmentation layer name to see the current list of objects shown and to access the opacity sliders.
Hover over an image layer name to access the opacity slider and the text editor for modifying the rendering code.
Neuroglancer doesn't appear to load properly.
Neuroglancer requires WebGL (2.0) and the EXT_color_buffer_float
extension.
To troubleshoot, check the developer console, which is accessed by the keyboard shortcut control-shift-i
in Firefox and Chrome. If there is a message regarding failure to initialize WebGL, you can take the following steps:
Chrome
Check chrome://gpu
to see if your GPU is blacklisted. There may be a flag you can enable to make it work.
Firefox
Check about:support
. There may be webgl-related properties in about:config
that you can change to make it work. Possible settings:
webgl.disable-fail-if-major-performance-caveat = true
webgl.force-enabled = true
webgl.msaa-force = true
Failure to access a data source.
As a security measure, browsers will in many prevent a webpage from accessing the true error code associated with a failed HTTP request. It is therefore often necessary to check the developer tools to see the true cause of any HTTP request error.
There are several likely causes:
Cross-origin resource sharing (CORS)
Neuroglancer relies on cross-origin requests to retrieve data from third-party servers. As a security measure, if an appropriate Access-Control-Allow-Origin
response header is not sent by the server, browsers prevent webpages from accessing any information about the response from a cross-origin request. In order to make the data accessible to Neuroglancer, you may need to change the cross-origin request sharing (CORS) configuration of the HTTP server.
Accessing an http://
resource from a Neuroglancer client hosted at an https://
URL
As a security measure, recent versions of Chrome and Firefox prohibit webpages hosted at https://
URLs from issuing requests to http://
URLs. As a workaround, you can use a Neuroglancer client hosted at a http://
URL, e.g. the demo client running at http://neuroglancer-demo.appspot.com, or one running on localhost. Alternatively, you can start Chrome with the --disable-web-security
flag, but that should be done only with extreme caution. (Make sure to use a separate profile, and do not access any untrusted webpages when running with that flag enabled.)
In order to maintain a responsive UI and data display even during rapid navigation, work is split between the main UI thread (referred to as the "frontend") and a separate WebWorker thread (referred to as the "backend"). This introduces some complexity due to the fact that current browsers:
The "frontend" UI thread handles user actions and rendering, while the "backend" WebWorker thread handle all queuing, downloading, and preprocessing of data needed for rendering.
node.js is required to build the viewer.
https://github.com/creationix/nvm
Install a recent version of Node.js if you haven't already done so:
nvm install stable
Install the dependencies required by this project:
(From within this directory)
npm i
Also re-run this any time the dependencies listed in package.json may have changed, such as after checking out a different revision or pulling changes.
To run a local server for development purposes:
npm run dev-server
This will start a server on http://localhost:8080.
To run the unit test suite on Chrome:
npm test
To run only tests in files matching a given glob pattern:
npm test -- --pattern='<pattern>'
For example,
npm test -- --pattern='src/neuroglancer/util/uint64*'
See package.json for other commands available.
See examples/dependent-project.
There is a Google Group/mailing list for discussion related to Neuroglancer: https://groups.google.com/forum/#!forum/neuroglancer.
Want to contribute? Great! First, read CONTRIBUTING.md.
Cross-browser Testing Platform and Open Source <3 Provided by Sauce Labs
Copyright 2016 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
FAQs
Visualization tool for 3-D volumetric data.
The npm package @janelia-flyem/neuroglancer receives a total of 3 weekly downloads. As such, @janelia-flyem/neuroglancer popularity was classified as not popular.
We found that @janelia-flyem/neuroglancer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.