В теории вероятностей , то Гиллеспи алгоритм (или изредка алгоритм Дуб-Gillespie ) генерирует статистически правильную траекторию (возможное решение) продукта в виде стохастической системы уравнений , для которых скорость реакции известна. Он был создан Джозефом Л. Дубом и другими (около 1945 г.), представлен Дэном Гиллеспи в 1976 г. и популяризирован в 1977 г. в статье, где он использует его для эффективного и точного моделирования химических или биохимических систем реакций с использованием ограниченной вычислительной мощности (см. стохастическое моделирование ) [ необходима ссылка ]. Поскольку компьютеры стали быстрее, этот алгоритм использовался для моделирования все более сложных систем. Алгоритм особенно полезен для моделирования реакций внутри клеток, где количество реагентов невелико и отслеживание положения и поведения отдельных молекул возможно с вычислительной точки зрения. Математически это вариант динамического метода Монте-Карло, аналогичный кинетическим методам Монте-Карло . Он широко используется в вычислительной системной биологии . [ необходима цитата ]
История
Процесс, который привел к созданию алгоритма, включает несколько важных шагов. В 1931 году Андрей Колмогоров ввел дифференциальные уравнения, соответствующие эволюции во времени случайных скачкообразных процессов, которые сегодня известны как уравнения Колмогорова (процесс скачков Маркова) (упрощенная версия в естествознании известна как основное уравнение ). В 1940 году Уильям Феллер нашел условия, при которых уравнения Колмогорова допускали (собственные) вероятности в качестве решений. В своей теореме I (работа 1940 г.) он устанавливает, что время до следующего скачка было экспоненциально распределено, и вероятность следующего события пропорциональна скорости. Таким образом, он установил связь уравнений Колмогорова со случайными процессами . Позже Дуб (1942, 1945) расширил решения Феллера за пределы случая чисто скачкообразных процессов. Этот метод был реализован на компьютерах Дэвидом Джорджем Кендаллом (1950) с использованием компьютера Manchester Mark 1 и позже использован Морисом С. Бартлеттом (1953) в его исследованиях вспышек эпидемий. Гиллеспи (1977) получает алгоритм другим способом, используя физический аргумент.
Идея алгоритма
Традиционные непрерывные и детерминированные уравнения скорости биохимии не позволяют точно предсказать клеточные реакции, поскольку они полагаются на массовые реакции, которые требуют взаимодействия миллионов молекул. Обычно они моделируются как набор связанных обыкновенных дифференциальных уравнений. Напротив, алгоритм Гиллеспи позволяет дискретное и стохастическое моделирование системы с небольшим количеством реагентов, поскольку каждая реакция моделируется явно. Траектория, соответствующая единственному моделированию Гиллеспи, представляет собой точную выборку из функции массы вероятности, которая является решением основного уравнения .
Физическая основа алгоритма - столкновение молекул внутри реакционного сосуда. Предполагается, что столкновения часты, но столкновения с правильной ориентацией и энергией нечасты. Следовательно, все реакции в рамках концепции Гиллеспи должны включать не более двух молекул. Предполагается, что реакции с участием трех молекул крайне редки и моделируются как последовательность бинарных реакций. Также предполагается, что реакционная среда хорошо перемешана.
Алгоритм
В недавнем обзоре (Gillespie, 2007) представлены три различных, но эквивалентных формулировки; прямые методы, методы первой реакции и методы первого семейства, причем первые два являются частными случаями второго. Формулировка методов прямой и первой реакции сосредоточена на выполнении обычных шагов обращения Монте-Карло на так называемой «фундаментальной предпосылке стохастической химической кинетики», которая математически является функцией
- ,
где каждый из термины - это функции склонности элементарной реакции, аргументом которой является , считается вектор видов. В параметр - время до следующей реакции (или время пребывания), а время конечно текущее. Перефразируя Гиллеспи, это выражение читается как «вероятность, заданная, что следующая реакция системы произойдет в бесконечно малом интервале времени , и будет иметь стехиометрию, соответствующую -я реакция ". Эта формулировка дает возможность использовать методы прямой и первой реакции, подразумевая является экспоненциально распределенной случайной величиной, и является "статистически независимой целочисленной случайной величиной с точечными вероятностями. ".
Таким образом, метод генерации Монте-Карло состоит в том, чтобы просто нарисовать два псевдослучайных числа, а также на , и вычислить
- ,
а также
- наименьшее целое число, удовлетворяющее .
Используя этот метод генерации для времени пребывания и следующей реакции, алгоритм прямого метода сформулирован Гиллеспи как
1. Установите время и состояние системы 2. С системой в состоянии вовремя , оценить все и их сумма 3. Выполните следующую реакцию, заменив а также 4. Запись по желанию. Вернитесь к шагу 1 или завершите симуляцию.
Это семейство алгоритмов требует больших вычислительных ресурсов, поэтому существует множество модификаций и адаптаций, в том числе метод следующей реакции (Гибсон и Брук), тау-скачок , а также гибридные методы, в которых большое количество реагентов моделируется с детерминированным поведением. Адаптированные методы, как правило, ставят под угрозу точность теории, лежащей в основе алгоритма, поскольку он связан с основным уравнением, но предлагают разумные реализации для значительно улучшенных временных масштабов. Вычислительная стоимость точных версий алгоритма определяется классом связи реакционной сети. В слабосвязанных сетях количество реакций, на которые влияет любая другая реакция, ограничено небольшой константой. В сильно связанных сетях запуск одной реакции в принципе может повлиять на все другие реакции. Была разработана точная версия алгоритма с постоянным масштабированием для слабосвязанных сетей, позволяющая эффективно моделировать системы с очень большим количеством каналов реакции (Slepoy Thompson Plimpton 2008). Обобщенный алгоритм Гиллеспи, который учитывает немарковские свойства случайных биохимических событий с задержкой, был разработан Bratsun et al. 2005 и независимо Barrio et al. 2006, а также (Cai 2007). Подробности см. В цитируемых ниже статьях.
Составы с частичной предрасположенностью, независимо разработанные Рамасвами и соавт. (2009, 2010) и Indurkhya and Beal (2010) доступны для построения семейства точных версий алгоритма, вычислительные затраты которого пропорциональны количеству химических соединений в сети, а не (большему) количеству реакций. Эти формулировки могут снизить вычислительные затраты до масштабирования с постоянным временем для слабосвязанных сетей и масштабирования не более чем линейно с числом видов для сильно связанных сетей. Также был предложен вариант частичной склонности обобщенного алгоритма Гиллеспи для реакций с задержками (Ramaswamy Sbalzarini 2011). Использование методов частичной склонности ограничивается элементарными химическими реакциями, т. Е. Реакциями максимум с двумя различными реагентами. Каждую неэлементарную химическую реакцию можно эквивалентно разложить на набор элементарных за счет линейного (в порядке реакции) увеличения размера сети.
Рассмотрим следующую объектно-ориентированную реализацию методов прямой и первой реакции, которые содержатся в классе Python 3:
из математического журнала импорта из случайного импорта случайного class SSA : "" "Контейнер для SSA " "" def __init__ ( self , model ): "" "Инициализировать контейнер моделью и генератором псевдослучайных чисел" "" self . модель = модель себя . random = случайный def direct ( self ): "" "Неопределенный генератор траекторий прямого метода" "" while True : while not self . модель . exit (): # Оценка веса и разделы весов = [ ( RXN , STO , про ( сам . Модель )) для ( RXN , STO , про ) в себя . модель . реакции ] раздел = сумма ( w [ - 1 ] для w в весах ) # оценить время пребывания (шаг MC 1) sojourn = log ( 1.0 / self . random ()) / partition self . модель [ "время" ] . добавить ( сам . модель [ "время" ] [ - 1 ] + пребывание ) # оценить реакцию (шаг 2 MC) partition = partition * self . random (), а раздел > = 0,0 : rxn , sto , pro = веса . pop ( 0 ) partition - = pro для видов , delta в sto . items (): self . модель [ вид ] . добавить ( сам . модель [ виды ] [ - 1 ] + дельта ) я . модель . curate () yield self . модель себя . модель . сбросить () def first_reaction ( self ): "" "Неопределенный генератор траекторий 1-й реакции" "" while True : while not self . модель . exit (): # Оценить следующий раз реакции раз = [ ( журнал ( 1.0 / самостоятельно . Случайным образом () ) / Pro ( самостоятельно . Модель ), STO ) для ( RXN , STO , про ) в себе . модель . реакции ] раз . sort () # самостоятельно оценить время реакции . модель [ "время" ] . добавить ( сам . модель [ "время" ] [ - 1 ] + раз [ 0 ] [ 0 ] ) # оценить реакцию для видов , дельта в разах [ 0 ] [ 1 ] . items (): self . модель [ вид ] . добавить ( сам . модель [ виды ] [ - 1 ] + дельта ) я . модель . curate () yield self . модель себя . модель . сбросить ()
Члены direct
и first_reaction
являются неопределенными генераторами, то есть они будут непрерывно создавать траектории, каждая из которых является полной симуляцией системы, в цикле, пока сигнал не разорвет этот цикл. Важное предостережение для любой реализации этого алгоритма заключается в том, что он не предоставляет логики для различения возможных и невозможных элементарных событий. Таким образом, чтобы фактически использовать любую версию алгоритма в цикле и получить некоторое количество траекторий для анализа, этот класс требует, чтобы модель была передана ему при создании экземпляра. В дополнение к видам населения на жилье и функции склонности, модель имеет три метода , что Gillespie алгоритм делает вызовы: curate
, exit
и reset
. Назначение этих методов указано ниже и по существу определяет, когда алгоритм завершается. Обоснование введения класса модели в основном состоит в том, чтобы избежать смешения кинетических свойств конкретного моделируемого процесса с внутренней логикой алгоритма Гиллеспи.
Ниже модель представляет собой словарь подкласса с общественными членами curate
, exit
и reset
которые , соответственно ,
- определять, какие реакции допустимы, а какие нет в конце каждой итерации заданной траектории;
- вернуть,
True
если больше нет возможных реакций; - вернуть хеш-значения модели к их исходным значениям (то есть их начальным условиям) в конце заданной траектории.
class SSAModel ( dict ): "" "Контейнер для модели SSA" "" def __init__ ( self , начальные_условия , склонности , стехиометрия ): "" "Инициализировать модель" "" super () . __init__ ( ** начальные_условия ) self . реакции = список () себя . excluded_reactions = list () для реакции , склонности в склонностях . items (): if propensity ( self ) == 0.0 : self . excluded_reactions . append ( ( реакция , стехиометрия [ реакция ], склонность ) ) else : self . реакции . append ( ( реакция , стехиометрия [ реакция ], склонность ) ) def exit ( self ): "" "Верните True, чтобы вырваться из траектории" "" # вернуть True, если больше нет реакций if len ( self . Reaction ) == 0 : return True # return False, если есть другие реакции, иначе : return False def curate ( self ): "" "Подтвердить и аннулировать реакции модели" "" # оценить возможные реакции реакции = [], в то время как len ( сам . реакции ) > 0 : реакция = сам . реакции . pop (), если реакция [ 2 ] ( self ) == 0 : self . excluded_reactions . append ( реакция ) else : реакции . добавление ( реакция ) себя . реакции = реакции # оценить невозможные реакции excluded_reactions = [] while len ( self . excluded_reactions ) > 0 : response = self . excluded_reactions . pop (), если реакция [ 2 ] ( self ) > 0 : self . реакции . append ( реакция ) else : excluded_reactions . добавление ( реакция ) себя . excluded_reactions = excluded_reactions def reset ( self ): "" "Очистить траекторию" "" # Вида сброса к начальным условиям для ключа в себя : дель самостоятельно [ ключ ] [ 1 :] # сбросить реакции на начальные условия самостоятельно . священник ()
Примеры
Обратимое связывание A и B с образованием димеров AB
Простой пример может помочь объяснить, как работает алгоритм Гиллеспи. Рассмотрим систему молекул двух типов, A и B . В этой системе, и Б обратимо связываются вместе с образованием AB димеры , такие , что две реакции: либо А и В реагируют обратимо с образованием AB димер, или АВ димер диссоциирует на A и B . Константа скорости реакции для данной единственной молекулы A, реагирующей с данной единственной молекулой B , равна, а скорость реакции разрушения димера AB равна.
Если в момент времени t имеется по одной молекуле каждого типа, то скорость образования димера равна, а если есть молекулы типа А имолекул типа B скорость образования димера равна. Если есть димеров, то скорость диссоциации димеров равна .
Общая скорость реакции, , в момент времени t определяется выражением
Итак, мы описали простую модель с двумя реакциями. Это определение не зависит от алгоритма Гиллеспи. Теперь мы опишем, как применить алгоритм Гиллеспи к этой системе.
В алгоритме мы продвигаемся вперед во времени в два этапа: вычисляем время до следующей реакции и определяем, какая из возможных реакций будет следующей. Предполагается, что реакции являются полностью случайными, поэтому, если скорость реакции в момент времени t равна, то время δ t до появления следующей реакции является случайным числом, взятым из экспоненциальной функции распределения со средним значением. Таким образом, мы продвигаем время от t к t + δ t .
Вероятность того, что эта реакция представляет собой связывание молекулы A с молекулой B , - это просто доля общей скорости, обусловленной этим типом реакции, т. Е.
вероятность того, что реакция
Вероятность того, что следующей реакцией будет диссоциация димера AB, составляет всего 1 минус эта вероятность . Таким образом, с этими двумя вероятностями мы либо формируем димер, уменьшая а также на один и увеличить на один, или мы диссоциируем димер и увеличиваем а также на единицу и уменьшить одним.
Теперь мы оба опередили время до t + δ t и выполнили одну реакцию. Алгоритм Гиллеспи просто повторяет эти два шага столько раз, сколько необходимо для моделирования системы, сколько мы хотим (т. Е. Столько реакций). Результат моделирования Гиллеспи, который начинается с а также при t = 0, а где а также , показан справа. Для этих значений параметров в среднем 8димеров и 2 из A и B, но из-за небольшого числа молекул колебания вокруг этих значений велики. Алгоритм Гиллеспи часто используется для изучения систем, в которых эти колебания важны.
Это был простой пример с двумя реакциями. Таким же образом обрабатываются более сложные системы с большим количеством реакций. Все скорости реакции должны быть рассчитаны на каждом временном шаге, и одна из них выбирается с вероятностью, равной ее дробному вкладу в скорость. Затем время продвигается вперед, как в этом примере.
Эпидемия SIR без жизненной динамики
Модель SIR - это классическое биологическое описание того, как определенные болезни проникают в популяцию фиксированного размера. В простейшем виде естьчлены популяции, при этом каждый член может находиться в одном из трех состояний - восприимчивый, инфицированный или выздоровевший - в любой момент времени, и каждый такой член необратимо переходит через эти состояния в соответствии с направленным графом ниже. Мы можем обозначить количество восприимчивых членов как, количество зараженных участников как , а количество восстановленных членов как . Следовательно на любой момент времени.
Кроме того, данный восприимчивый член перейдет в инфицированное состояние, войдя в контакт с любым из инфицированных участников, поэтому заражение происходит со скоростью . Данный член зараженного состояния выздоравливает независимо от любого из трех состояний, что определяется показателем β . По этой базовой схеме можно построить следующую нелинейную систему.
- ,
- ,
- .
Эта система не имеет аналитического решения. Один из подходов может заключаться в использовании алгоритма Гиллеспи, многократном моделировании системы и использовании метода регрессии, такого как метод наименьших квадратов, для подбора полинома по всем траекториям. По мере увеличения количества траекторий такая полиномиальная регрессия будет асимптотически вести себя как численное решение (черные линии). В дополнение к оценке решения трудноразрешимой проблемы, такой как эпидемия SIR, стохастический характер каждой траектории позволяет вычислять статистику, отличную от. При запуске приведенного ниже сценария иногда получаются реализации эпидемии SIR, которые резко отличаются от численного решения. Например, когда все люди излечиваются (случайно) очень рано или очень поздно.
Траектории, представленные на приведенном выше рисунке, были получены с помощью следующей реализации Python прямого метода вместе с классом модели, члены которого взаимодействуют с механизмом прямого метода для выполнения общих симуляций с теориями, лежащими в основе алгоритма Гиллеспи. Они представлены выше. Кроме того, для получения численного решения системы дифференциальных уравнений, т. Е. Представления системы дифференциальных уравнений, вызывается решатель ODE от SciPy..
из matplotlib import pyplot из numpy import linspace из scipy.integrate import odeint# начальное количество видов и время пребывания initital_conditions = { "s" : [ 480 ], "i" : [ 20 ], "r" : [ 0 ], "time" : [ 0.0 ], }# функция склонности propensities = { 0 : лямбда d : 2.0 * d [ "s" ] [ - 1 ] * d [ "i" ] [ - 1 ] / 500 , 1 : лямбда d : 1.0 * d [ "i" ] [ - 1 ], }# изменение вида для каждой стехиометрии склонности = { 0 : { "s" : - 1 , "i" : 1 , "r" : 0 }, 1 : { "s" : 0 , "i" : - 1 , " r " : 1 }, }# создать экземпляр модели эпидемии SSA container epidemic = SSAModel ( initital_conditions , склонности , стехиометрия )# создать экземпляр контейнера SSA с моделью epidemic_generator = SSA ( epidemic )# сделать красивый пиплот с большой фигурой . рисунок ( figsize = ( 10 , 10 ), dpi = 500 )# создаем подзаговор для восприимчивых, инфицированных и выздоровевших людей axes_s = pyplot . подзаголовок ( 311 ) axes_s . set_ylabel ( «восприимчивые люди» )axes_i = pyplot . подзаговор ( 312 ) axes_i . set_ylabel ( «инфицированные лица» )axes_r = pyplot . subplot ( 313 ) axes_r . set_ylabel ( " вылеченные люди" ) axes_r . set_xlabel ( "время (произвольные единицы)" )# смоделировать и построить 30 траекторий траектории = 0 для траектории в epidemic_generator . direct (): axes_s . сюжет ( траектория [ "время" ], траектория [ "s" ], цвет = "оранжевый" ) axes_i . сюжет ( траектория [ "время" ], траектория [ "i" ], цвет = "оранжевый" ) axes_r . сюжет ( траектория [ "время" ], траектория [ "r" ], цвет = "оранжевый" ) траектории + = 1, если траектории == 30 : разрыв# численное решение с использованием обыкновенного дифференциального уравнения solversir t = linspace ( 0 , 14 , num = 200 ) y0 = ( 480 , 20 , 0 ) alpha = 2.0 beta = 1.0def дифференциальный_SIR ( n_SIR , t , alpha , beta ): dS_dt = - alpha * n_SIR [ 0 ] * n_SIR [ 1 ] / 500 dI_dt = (( alpha * n_SIR [ 0 ] / 500 ) - beta ) * n_SIR [ 1 ] dR_dt = beta * n_SIR [ 1 ] вернуть dS_dt , dI_dt , dR_dtрешение = odeint ( дифференциал_SIR , y0 , t , args = ( alpha , beta )) solution = [[ row [ i ] для строки в решении ] для i в диапазоне ( 3 )]# построить численное решение axes_s . plot ( t , solution [ 0 ], color = "black" ) axes_i . plot ( t , решение [ 1 ], color = "black" ) axes_r . plot ( t , решение [ 2 ], color = "black" )пиплот . показать ()
дальнейшее чтение
- Гиллеспи, Дэниел Т. (1977). «Точное стохастическое моделирование связанных химических реакций». Журнал физической химии . 81 (25): 2340–2361. CiteSeerX 10.1.1.704.7634 . DOI : 10.1021 / j100540a008 .
- Гиллеспи, Дэниел Т. (1976). "Общий метод численного моделирования стохастической временной эволюции связанных химических реакций". Журнал вычислительной физики . 22 (4): 403–434. Bibcode : 1976JCoPh..22..403G . DOI : 10.1016 / 0021-9991 (76) 90041-3 .
- Гибсон, Майкл А .; Брук, Иошуа (2000). «Эффективное точное стохастическое моделирование химических систем со многими видами и многими каналами» (PDF) . Журнал физической химии . 104 (9): 1876–1889. Bibcode : 2000JPCA..104.1876G . DOI : 10.1021 / jp993732q .
- Дуб, Джейкоб Л. (1942). «Вопросы теории цепей Маркова» . Труды Американского математического общества . 52 (1): 37–64. DOI : 10.1090 / S0002-9947-1942-0006633-7 . JSTOR 1990152 .
- Дуб, Джейкоб Л. (1945). «Цепи Маркова - счетный случай». Труды Американского математического общества . 58 (3): 455–473. DOI : 10.2307 / 1990339 . JSTOR 1990339 .
- Press, William H .; Teukolsky, Saul A .; Веттерлинг, Уильям Т .; Фланнери, Брайан П. (2007). «Раздел 17.7. Стохастическое моделирование сетей химических реакций» . Числовые рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк, Нью-Йорк: Издательство Кембриджского университета. ISBN 978-0-521-88068-8.
- Колмогоров, Андрей Н. (1931). "Über die analytischen Methoden in der Wahrscheinlichkeitsrechnung" [Об аналитических методах в теории вероятностей]. Mathematische Annalen . 104 : 415–458. DOI : 10.1007 / BF01457949 . S2CID 119439925 .
- Феллер, Вилли (1940). "Об интегродифференциальных уравнениях чисто разрывных марковских процессов" . Труды Американского математического общества . 48 (3): 4885–15. DOI : 10.2307 / 1990095 . JSTOR 1970064 .
- Кендалл, Дэвид Г. (1950). «Искусственная реализация простого процесса« рождения и смерти »». Журнал Королевского статистического общества, Series B . 12 (1): 116–119. JSTOR 2983837 .
- Бартлетт, Морис С. (1953). «Случайные процессы или статистика изменений». Журнал Королевского статистического общества, серия C . 2 (1): 44–64. JSTOR 2985327 .
- Ратинам, Мурухан; Петцольд, Линда Р .; Цао, Ян; Гиллеспи, Дэниел Т. (2003). «Жесткость в стохастических химически реагирующих системах: неявный метод тау-прыжка». Журнал химической физики . 119 (24): 12784–12794. Bibcode : 2003JChPh.11912784R . DOI : 10.1063 / 1.1627296 .
- Синицын, Николай А .; Хенгартнер, Николас; Неменман, Илья (2009). «Адиабатическое крупнозернистое моделирование и моделирование стохастических биохимических сетей» (PDF) . Труды Национальной академии наук Соединенных Штатов Америки . 106 (20): 10546–10551. Bibcode : 2009PNAS..10610546S . DOI : 10.1073 / pnas.0809340106 . PMC 2705573 . PMID 19525397 . Архивировано из оригинального (PDF) 14 июля 2011 года.
- Салис, Ховард; Казнессис, Яннис Н. (2005). «Точное гибридное стохастическое моделирование системы связанных химических или биохимических реакций». Журнал химической физики . 122 (5): 054103. Bibcode : 2005JChPh.122e4103S . DOI : 10.1063 / 1.1835951 . PMID 15740306 .
- (Слепой Томпсон Плимптон, 2008): Слепой, Александр; Thompson, Aidan P .; Плимптон, Стивен Дж. (2008). «Кинетический алгоритм Монте-Карло с постоянным временем для моделирования больших сетей биохимических реакций». Журнал химической физики . 128 (20): 205101. Bibcode : 2008JChPh.128t5101S . DOI : 10.1063 / 1.2919546 . PMID 18513044 .
- (Брацун и др., 2005): Брацун, Дмитрий; Вольфсон, Дмитрий; Поспешный, Джефф; Цимринг, Лев С. (2005). «Индуцированные задержкой стохастические колебания в регуляции генов» . Труды Национальной академии наук Соединенных Штатов Америки . 102 (41): 14593–8. Bibcode : 2005PNAS..10214593B . DOI : 10.1073 / pnas.0503858102 . PMC 1253555 . PMID 16199522 .
- (Баррио и др., 2006): Баррио, Мануэль; Беррейдж, Кевин; Лейер, Андре; Тиан, Тяньхай (2006). "Колебательное регулирование hes1 : дискретное стохастическое моделирование задержки и имитация" . PLOS вычислительная биология . 2 (9): 1017. Bibcode : 2006PLSCB ... 2..117B . DOI : 10.1371 / journal.pcbi.0020117 . PMC 1560403 . PMID 16965175 .
- (Цай 2007): Цай, Сяодун (2007). «Точное стохастическое моделирование сопряженных химических реакций с запаздыванием». Журнал химической физики . 126 (12): 124108. Bibcode : 2007JChPh.126l4108C . DOI : 10.1063 / 1.2710253 . PMID 17411109 .
- (Барнс Чу 2010): Барнс, Дэвид Дж .; Чу, Доминик (2010). Введение в моделирование для биологических наук . Springer Verlag.
- (Рамасвами Гонсалес-Сегредо Сбальзарини, 2009 г.): Рамасвами, Раджеш; Гонсалес-Сегредо, Нелидо; Сбальзарини, Иво Ф. (2009). «Новый класс высокоэффективных алгоритмов точного стохастического моделирования для сетей химических реакций». Журнал химической физики . 130 (24): 244104. arXiv : 0906.1992 . Bibcode : 2009JChPh.130x4104R . DOI : 10.1063 / 1.3154624 . PMID 19566139 . S2CID 4952205 .
- (Рамасвами Сбальзарини, 2010): Рамасвами, Раджеш; Сбальзарини, Иво Ф. (2010). «Вариант с частичной склонностью алгоритма стохастического моделирования отклонения состава для сетей химических реакций» (PDF) . Журнал химической физики . 132 (4): 044102. Bibcode : 2010JChPh.132d4102R . DOI : 10.1063 / 1.3297948 . PMID 20113014 .
- (Индуркхья Бил 2010): Индуркхья, Сагар; Бил, Джейкоб С. (2005). Исалан, Марк (ред.). «Факторинг реакций и двухчастные графики обновления ускоряют алгоритм Гиллеспи для крупномасштабных биохимических систем» . PLOS ONE . 5 (1): e8125. Bibcode : 2010PLoSO ... 5.8125I . DOI : 10.1371 / journal.pone.0008125 . PMC 2798956 . PMID 20066048 .
- (Рамасвами Сбальзарини 2011): Рамасвами, Раджеш; Сбальзарини, Иво Ф. (2011). «Формулировка частичной склонности алгоритма стохастического моделирования для сетей химических реакций с задержками» (PDF) . Журнал химической физики . 134 (1): 014106. Bibcode : 2011JChPh.134a4106R . DOI : 10.1063 / 1.3521496 . PMID 21218996 .
- (Йетс Клингбейл, 2013 г.): Yates, Christian A .; Клингбейл, Гвидо (2013). «Повторное использование случайных чисел в алгоритме стохастического моделирования» . Ежегодный обзор физической химии . 58 (9): 094103. Bibcode : 2013JChPh.138i4103Y . DOI : 10.1063 / 1.4792207 . PMID 23485273 .
- Гиллеспи, Дэниел Т. (2007). «Стохастическое моделирование химической кинетики». Журнал физической химии . 58 : 35–55. DOI : 10.1146 / annurev.physchem.58.032806.104637 . PMID 17037977 .
Внешние ссылки
- Репозиторий, содержащий весь исходный код, использованный в этой статье.