Neuron — это среда моделирования для моделирования отдельных нейронов и сетей нейронов . Она была первоначально разработана Майклом Хайнсом, Джоном В. Муром и Тедом Карневалем в Йельском университете и Университете Дьюка .
Neuron моделирует отдельные нейроны с помощью секций, которые автоматически подразделяются на отдельные отсеки, вместо того, чтобы требовать от пользователя ручного создания отсеков. Основной язык сценариев — hoc , но также доступен интерфейс Python . Программы могут быть написаны интерактивно в оболочке или загружены из файла. Neuron поддерживает распараллеливание через протокол MPI .
Neuron способен обрабатывать модели диффузии-реакции и интегрировать функции диффузии в модели синапсов и клеточных сетей. [2] Распараллеливание возможно с помощью внутренних многопоточных процедур для использования на многоядерных компьютерах. [3] Свойства мембранных каналов нейрона моделируются с помощью скомпилированных механизмов, написанных с использованием языка NMODL, или скомпилированных процедур, работающих с внутренними структурами данных, которые настраиваются с помощью Channel Builder.
Наряду с аналогичной программной платформой GENESIS , Neuron является основой для обучения вычислительной нейронауке на многих курсах и в лабораториях по всему миру.
Neuron имеет графический пользовательский интерфейс (GUI) для использования людьми с минимальным опытом программирования. GUI оснащен конструктором для одно- и многосекционных ячеек, сетей, сетевых ячеек, каналов и линейных электрических цепей. Одно- и многосекционные ячейки отличаются тем, что многосекционные ячейки имеют несколько «секций», каждая из которых имеет потенциально различные параметры для измерений и кинетики. Учебные пособия доступны на веб-сайте Neuron, в том числе для получения базовых моделей из конструкторов ячеек, каналов и сетей. [ необходима цитата ] С помощью этих конструкторов пользователь может сформировать основу всех симуляций и моделей.
Cell Builder позволяет пользователю создавать и изменять структуры клеток в виде фигурок. Эти секции формируют основу функционально различных областей нейрона. [4]
Пользователь может определить функционально различные группы секций. Секции, ответвляющиеся друг от друга, могут быть обозначены как «дендриты», в то время как другая, отдельная секция, которая выступает из той же центральной, может быть обозначена как «аксон». Пользователь может определить параметры, вдоль которых определенные значения являются переменными как функция по секции. Например, длина пути вдоль подмножества может быть определена как домен, функции вдоль которого затем могут быть определены позже. [5] [6]
Пользователь может выбрать либо отдельные секции, либо группы и задать точные параметры длины, диаметра, площади и длины для этой группы или секции. Любое из этих значений может быть установлено как функция длины или какого-либо другого параметра соответствующей секции. Пользователь может задать количество функциональных сегментов в секции, что является стратегией пространственного разрешения. Чем больше количество сегментов, тем точнее Neuron может обрабатывать функцию в секции. Сегменты — это точки, с которыми могут быть связаны менеджеры точечных процессов. [7]
Пользователи могут определять кинетические и электрофизиологические функции как по подмножествам, так и по секциям. Neuron оснащен вероятностной моделью кинетики аксона гигантского кальмара модели Ходжкина-Хаксли [8] , а также функцией для моделирования кинетики пассивного канала утечки . Обе эти функции и описываемые ими особенности могут быть добавлены к мембране сконструированной клетки. Значения скорости утечки, проводимости натрия и проводимости калия могут быть установлены для моделирования этой кинетики, которая может быть установлена как функции в параметризованной области. Каналы становятся доступными для внедрения в клеточную мембрану.
Пользователь может генерировать как модели каналов, управляемых напряжением , так и лигандами . Channel Builder поддерживает локальные точечные каналы, обычно используемые для отдельных больших каналов, функция которых должна быть смоделирована, и общие каналы, плотность которых по всей ячейке может быть определена. Можно определить максимальную проводимость, потенциал реверсии, чувствительность к лигандам, ионную проницаемость, а также точную динамику переходных состояний с использованием переменных активации и инактивации, включая дифференциальную проводимость. [9]
Neuron позволяет создавать смешанные модели, заполненные как искусственными клетками, так и нейронами. Искусственные клетки по сути функционируют как точечные процессы, внедренные в сеть. Искусственным клеткам требуется только точечный процесс с определенными параметрами. Пользователь может создавать структуру и динамику ячеек сети. Пользователь может создавать синапсы, используя смоделированные точечные процессы синапса в качестве архетипов. Параметры этих точечных процессов можно изменять для имитации как тормозных, так и возбуждающих реакций. Синапсы можно размещать на определенных сегментах сконструированной клетки, где, опять же, они будут вести себя как точечные процессы, за исключением того, что они чувствительны к активности пресинаптического элемента. Ячейками можно управлять. Пользователь создает базовую сетку ячеек сети, принимая ранее завершенные ячейки сети в качестве архетипов. Связи можно определять между исходными клетками и целевыми синапсами на других клетках. Ячейка, содержащая целевой синапс, становится постсинаптическим элементом, тогда как исходные клетки функционируют как пресинаптические элементы. Можно добавлять веса для определения силы активации синапса пресинаптической клеткой. Можно активировать опцию построения графика, чтобы открыть график скачков во времени для отдельных нейронов.
Neuron оснащен множеством инструментов моделирования. В частности, он включает в себя несколько «точечных процессов», которые являются простыми функциями в определенном сегменте клетки. Точечные процессы включают моделирование напряжения , заплаты , одиночного электрода и токовых зажимов, а также несколько моделируемых синапсов. Точечные процессы синапса отличаются своей способностью моделировать интенсивности стимуляции, которые нелинейно изменяются во времени. Они могут быть размещены на любом сегменте любого раздела построенной клетки, отдельной или сетевой, и их точные значения, включая амплитуду и продолжительность стимуляции, время задержки активации в прогоне и параметры затухания времени (для синапсов), могут быть определены из модуля менеджера точечных процессов. При внедрении в сеть в качестве синапсов параметры точечных процессов определяются в конструкторе синапсов для конкретной ячейки сети. [10] Графики, описывающие оси напряжения, проводимости и тока с течением времени, могут использоваться для описания изменений электрического состояния в месте расположения любого сегмента на клетке. Neuron позволяет создавать графики изменений как в отдельных точках с течением времени, так и по всему разделу с течением времени. [11] [12] Длительность выполнения можно задать. Все точечные процессы, включая те, которые обозначают клетки или синапсы искусственных нейронов, и все графики отражают длительность.
Этот пример создает простую клетку с однокамерной сомой и многокамерным аксоном . Динамика клеточной мембраны смоделирована с использованием кинетики аксона кальмара Ходжкина-Хаксли . Симулятор стимулирует клетку и работает в течение 50 мс.
//создаем два участка, тело нейрона и очень длинный аксон создаем сому , аксон soma { //длина установлена на 100 микрометров L = 100 //диаметр установлен на 100 микрометров diam = 100 //вставить механизм, имитирующий стандартные каналы Ходжкина-Хаксли кальмара insert hh //вставить механизм, имитирующий пассивные свойства мембраны insert pas } axon { L = 5000 diam = 10 insert hh insert pas //аксон должен быть смоделирован с использованием 10 отсеков. По умолчанию используется один отсек nseg = 10 } //соединяем проксимальный конец аксона с дистальным концом сомы соединяем аксон ( 0 ), сому ( 1 ) //объявить и вставить токовый зажим в середину сомы objref stim soma stim = new IClamp ( 0.5 ) //определить некоторые параметры стимула: задержку, длительность (оба в мс) и амплитуду (в нА) stim . del = 10 stim . dur = 5 stim . amp = 10 //загрузить файл библиотеки NEURON по умолчанию, который определяет процедуру запуска load_file ( "stdrun.hoc" ) //установить симуляцию на выполнение в течение 50 мс tstop = 50 //запустить симуляцию run ()
Можно построить график, показывающий следы напряжения, начиная с сомы и дистального конца аксона. Потенциал действия на конце аксона появляется немного позже, чем он появляется в соме в точке стимуляции. График представляет собой зависимость мембранного напряжения от времени.