Created
November 27, 2023 14:05
-
-
Save aganders3/9b35091a0dd8913289e5ce990bc681d7 to your computer and use it in GitHub Desktop.
A script to open an MRC file (generally CryoET data) and host it for viewing with Neuroglancer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# open an MRC file (optionally using mmap) and host it using Neuroglancer as a LocalVolume | |
# usage: python -m mrc_neuroglancer.py --mrcfile <filename> [--mmap] [--bind-address ADDRESS] | |
# | |
# requirements may be installed from PyPI: | |
# neuroglancer | |
# mrcfile | |
import argparse | |
import signal | |
import neuroglancer | |
import neuroglancer.cli | |
import mrcfile | |
def add_mrc_layer(state, fname, *, mmap=False): | |
if mmap: | |
d = mrcfile.mmap(fname) | |
layer_name = "mrc_mmap" | |
else: | |
d = mrcfile.open(fname) | |
layer_name = "mrc" | |
state.layers[layer_name] = neuroglancer.ImageLayer(source=neuroglancer.LocalVolume(d.data)) | |
if __name__ == "__main__": | |
ap = argparse.ArgumentParser() | |
ap.add_argument("--mrcfile", type=str, required=True) | |
ap.add_argument("--mmap", action="store_true") | |
neuroglancer.cli.add_server_arguments(ap) | |
args = ap.parse_args() | |
neuroglancer.cli.handle_server_arguments(args) | |
viewer = neuroglancer.Viewer() | |
print(viewer) | |
with viewer.txn() as s: | |
add_mrc_layer(s, args.mrcfile, mmap=args.mmap) | |
signal.pause() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment