{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## A simple overlap calculator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* define a voxel length\n", "* define a volume\n", "* define a density (cable/length per voxel) in the volume\n", "* calculate the overlap of two densities" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def uniform(distance_to_foci):\n", " return np.ones(distance_to_foci.shape)\n", "\n", "def get_gaussian(length_scale):\n", " def gaussian(distance_to_foci):\n", " return np.exp(-distance_to_foci**2/length_scale)\n", " return gaussian\n", "\n", "class NeuralVolume:\n", " def __init__(self,x,y,z, voxel_size):\n", " self.x = x\n", " self.y = y\n", " self.z = z\n", " \n", " self.axes = tuple([np.arange(0,ax, voxel_size) for ax in [x,y,z]])\n", " self.mesh = np.meshgrid(*self.axes)\n", " \n", " self.mesh_shape = self.mesh[0].shape\n", " self.number_of_voxels = np.prod(self.mesh_shape)\n", " \n", " def get_coordinates(self):\n", " X, Y, Z = self.mesh\n", " number_of_elements = self.number_of_voxels\n", " return np.vstack((X.reshape((number_of_elements,)), Y.reshape((number_of_elements,)), Z.reshape((number_of_elements,))))\n", " \n", " \n", "class Ellipsoid:\n", " def __init__(self, center, r_long, r_small, long_axis):\n", " self.center = center\n", " self.r_long = r_long\n", " self.r_small = r_small\n", " self.long_axis = long_axis/np.sqrt(np.sum(long_axis*long_axis))\n", " \n", " distance_between_foci = 4*np.sqrt(r_long**2 - r_small**2)\n", " self.focus_1 = self.center - self.long_axis*distance_between_foci/2.0\n", " self.focus_2 = self.center + self.long_axis*distance_between_foci/2.0\n", " self.distance_to_foci = 2* r_long + distance_between_foci/2.0\n", " \n", " def get_density(self, volume, density=uniform):\n", " coordinates = volume.get_coordinates()\n", " distance_to_focus_1 = np.linalg.norm(coordinates - np.repeat(np.expand_dims(self.focus_1,axis=1), volume.number_of_voxels, axis=1), axis=0) \n", " distance_to_focus_2 = np.linalg.norm(coordinates - np.repeat(np.expand_dims(self.focus_2,axis=1), volume.number_of_voxels, axis=1), axis=0)\n", " distance_to_foci = distance_to_focus_1+distance_to_focus_2\n", "\n", " density = np.where(distance_to_foci0.0)\n", "\n", " x_density = X[scatter_points]\n", " y_density = Y[scatter_points]\n", " z_density = Z[scatter_points]\n", " \n", " ax.scatter(x_density, y_density, z_density, alpha=0.5)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [], "source": [ "voxel_size = 2\n", "v_x = 100\n", "v_y = 100\n", "v_z = 50\n", "\n", "V = NeuralVolume(v_x, v_y, v_z, voxel_size)" ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "collapsed": true }, "outputs": [], "source": [ "axon_long_axis = np.array([0,0,1])\n", "axon_long_axis = long_axis/ np.linalg.norm(long_axis)\n", "axon_center=np.array([50, 50, 25])\n", "axon_r_long = 20\n", "axon_r_small = 3\n", "\n", "dendrite_long_axis = np.array([1,1,0])\n", "dendrite_long_axis = dendrite_long_axis/ np.linalg.norm(dendrite_long_axis)\n", "dendrite_center=np.array([45, 45, 25])\n", "dendrite_r_long = 8 \n", "dendrite_r_small= 4" ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "collapsed": false }, "outputs": [], "source": [ "axon = Ellipsoid(axon_center, axon_r_long, axon_r_small, axon_long_axis)\n", "dendrite = Ellipsoid(dendrite_center, dendrite_r_long, dendrite_r_small, dendrite_long_axis)\n", "shapes = [axon, dendrite]" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "collapsed": false }, "outputs": [], "source": [ "densities = [shape.get_density(V) for shape in shapes]" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "visualize_shapes(V, densities)" ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def overlap(density_1, density_2):\n", " return np.sum(density_1*density_2)" ] }, { "cell_type": "code", "execution_count": 159, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.2079385345810176" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "overlap(densities[0], densities[1])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "" ] } ], "metadata": { "kernelspec": { "display_name": "Python (Cooperativity)", "language": "python", "name": "cooperativity" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2.0 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 }