<jupyter_start><jupyter_text>IntroductionThe **N**euro**d**ata's **Reg**istration module or **ndreg** is a set of python functions which can be used to align pairs of images.  The module depends on* SimpleITK - A simplified version of the Insight ToolKit an image segmentation and registration library* numpy - A python numerical module simmilar to MATLAB* matplotlib - A plotting and visuiazation module for numpy* ndio - NeuroData's Input/Output module for accessing images and annotations stored in the NeuroData infrastructure  InstallationSee [README](../README.md) for platform specific installation instructions  InfranstructureImage volumes from a modern microscope can be over a terabyte in size, far too large to be stored on a personal computer.  Thus in our infrastructure are stored on server cluster known as [ndstore](http://docs.neurodata.io/ndstore/). Accessing image data of this size poses many challenges.  Thus ndstore organizes images in spatial database in such a way to minimize read and write times during random access of image cutouts.  In ndstore each image dataset is encapsulated in a *project* which can consist of one or more channels.  Each project has a *token* which is used to access the image data.  A more detailed handling of ndstore's data model can be found [here](http://docs.neurodata.io/ndstore/sphinx/datamodel.html). Given a project token and a channel, images can be downloaded directly from the web to a personal computer using ndstore's RESTful API. In python, the API can be called using the  NeuroData's Input/Output, *ndio* module.  *ndio* functions save image data in [numpy arrays](http://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html) for easy manipulation. Although *numpy* is a powerful numerics library it's image processing capibilites are limited.  Thus ndreg depends on *SimpleITK* for image processing.  A detailed tutorial on the installation and usage of SimpleITK can be found [here](http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/00_Setup.html).  SimpleITK images can be converted to and from numpy arrays using the *SimpleITK.GetArrayFromImage* and *SimpleITK.GetImageFromArray* Namespace conventionsIn the following tutorials we use the following naming conventions for modules<jupyter_code>import numpy as np
import SimpleITK as sitk
import matplotlib.pyplot as plt<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.05843071786310518, 'fraction_numerical': 0.0008347245409015025, 'mean_word_length': 5.2421875, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '146383', 'license': 'Apache-2.0', 'n_tokens_mistral': 630, 'n_tokens_neox': 600, 'n_words': 307, 'path': 'doc/introduction.ipynb', 'repo_name': 'kkutten1/ndregOld', 'size': '2396'}