Библиотека для поиска сайтов связывания с транскрипционными факторами

Здесь раШ(1) - путь, по которому приходит управление при выполнении теста 1. Значение в правой части равно количеству переходов в путях Я и раШ(1), не входящих в максимальное общее упорядоченное подмножество этих путей. Оно равно 0 тогда и только тогда, когда пути Я и раШ(1) совпадают.

Применение генетических алгоритмов для генерации тестов предъявляет дополнительные требования к используемым критериям полноты тестового покрытия. Это вызвано тем, что критерий полноты используется не только для оценки качества сгенерированных тестов, но и непосредственно в процессе генерации для оценки близости полученных тестов к нужным результатам. Таким образом, необходимо иметь оценочную функцию, позволяющую измерить эту близость, определить, насколько перспективными являются уже построенные тесты с точки зрения их использования в качестве основы для построения новых тестов.

Для критериев, связанных с покрытием тех или иных путей в коде программы, удается построить достаточно удобные оценочные функции, основанные на количестве непокрытых дуг в пути, который нужно покрыть.

Для оценки достаточности и полноты сформированных тестов можно воспользоваться мутационным критерием проверки: в программу Р вносят мутации (то есть искусственно создают программы-мутанты Р1, Р2); затем программа Р и ее мутанты тестируются на одном и том же наборе тестов (X, У). Если на наборе (X, У) подтверждается правильность программы Р и, кроме того, выявляются все внесенные в программы-мутанты ошибки, то набор тестов (X, У) соответствует му-

тационному критерию, а тестируемая программа объявляется правильной. Если некоторые мутанты не выявили всех мутаций, надо расширять набор тестов (X, Y) с использованием генетических алгоритмов и продолжать тестирование.

После оценки и апробации сформированных с помощью генетического алгоритма тестов формируется тестовая база, которая впоследствии используется для проведения регрессионного тестирования.

Таким образом, созданная с использованием генетических алгоритмов база тестов позволит значительно сократить время на проведение сертификационных испытаний и их трудоемкость. Экономический эффект достигается за счет экономии ресурсов, затраченных на повторное проведение сертификационных испытаний в целом, и составляет при цикле жизни приложения около трех лет от 20 до 45 %.

Литература

1. Полежаев В.А., Семенов М.Н., Мельникова В.В. Автоматизированная система оценки уровня налоговых рисков // Программные продукты и системы. 2008. № 4 (84).

2. Котляров В.П., Коликова Т.В. Основы современного тестирования программного обеспечения, разработанного на с#: учеб. пособие; [под ред. В.П. Котлярова]. СПб, 2004. С. 55-57.

3. Котов С.Л., Демирский А.А., Мещерякова В.В. Проведение сертификационных испытаний часто обновляющихся ПС с использованием автоматизированной тестовой базы // Вестн. ВНИИМАШ, 2010.

4. Семенов Н.А. Интеллектуальные информационные системы: учеб. пособие. Тверь: Изд-во ТГТУ, 2004. 1-е изд. С. 87-89.

5. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы; [пер. с польск. И.Д. Рудинского]. М.: Горячая линия - Телеком, 2006. С. 261-264.

УДК 519.688

БИБЛИОТЕКА ДЛЯ ПОИСКА САЙТОВ СВЯЗЫВАНИЯ С ТРАНСКРИПЦИОННЫМИ ФАКТОРАМИ

Н.А. Горохов

Описывается разработанная авторами библиотека для поиска сайтов связывания с транскрипционными факторами (специфических фрагментов на ДНК, куда закрепляются регуляторные белки, называемые транскрипционными факторами). Она состоит из трех алгоритмов поиска: прямого поиска, поиска с использованием перестановок и за-глядывания вперед и суффиксных массивов. Библиотека ориентирована на большие объемы информации и позволяет производить поиск на последовательностях геномного масштаба с библиотекой из нескольких тысяч матриц.

Ключевые слова: весовые матрицы, сайты связывания с транскрипционными факторами, суффиксные массивы, геном, ДНК, программная система.

Регуляция генной экспрессии

является очень сложным процессом, особенно в многоклеточных эукариотических организмах [1].

Каждый тип клетки или ткани на специфической стадии развития или под влиянием внеклеточных сигналов экспрессирует характеристический паттерн активированных транскрипционных факторов (ТФ). Внутри ядра клетки эти регулирующие транскрипцию белки связываются со специфическими сайтами связывания в регуляторных районах (промоторах и энхансерах) генов, способствуя их активации или репрессии. Компьютерные методы предсказания сайтов связывания с ТФ на ДНК очень важны для понимания молекулярных механизмов генной регуляции.

Авторами была разработана библиотека, состоящая из трех различных алгоритмов предсказания сайтов, которые базируются на использовании весовых матриц (ВМ), собранных в БД TRANS-FAC [2], и поэтому предоставляют возможность поиска огромного многообразия различных сайтов связывания с ТФ.

Среди аналогичных программных продуктов можно выделить наиболее известные - SIGNAL SCAN [3], TESS [4].

Отличие разработанной авторами библиотеки состоит в том, что она позволяет искать сайты на последовательностях большого размера (вплоть до геномных масштабов), работает на обычном персональном компьютере и предоставляет только инструментарий для разработчика, не поддерживая графический интерфейс пользователя. Кроме того, в библиотеке, помимо простого поиска, реализованы ускоренные алгоритмы, использующие подход заглядывания вперед и перестановки, а также алгоритм, использующий суффиксные массивы для ускорения поиска.

Рассматриваемые алгоритмы

Весовые матрицы, описанные ранее в [5], представляют собой двухмерные массивы M=(mij), i=1, ..., 4, j=1, ..., N, составленные по выборке известных сайтов. На каждом фрагменте последовательности S длины N, S[k, ..., k+N), может быть вычислен вес w весовой матрицы M с помощью сле-

N

дующей процедуры: Wk = 2 M(S, k, j), где

j=1

M(S,k,j) =

m1j9 еслиSk+j = 'a', m2j, если Sk+j = 'c',

m3j, еслиSk+j = 'g',

m4j, если Sk+j = V.

Далее производится нормировка веса

W - W

w = W Wmin .

k W - W .

max min

Этот вес является характеристикой того, насколько данная последовательность схожа с последовательностями сайтов, используемыми для конструирования весовой матрицы, поэтому отражает вероятность, с которой данная последова-

тельность может являться сайтом. Поиск потенциальных сайтов в последовательности S сводится к последовательному прикладыванию матрицы к каждой позиции k последовательности S и сравнению вычисленного веса wk с заданным наперед порогом c.

В весовой матрице выделяется ядро - это наиболее консервативный фрагмент матрицы длиной Nc, зачастую равной 5. По ядру аналогично вычисляется вес ядра wck, который сравнивается с порогом ядра cc. Сайт считается распознанным в позиции k, если выполняются оба условия: wk>c и wck>cc. В авторской версии библиотеки реализованы обе возможности - поиск с ядром и без ядра.

Разработанная библиотека содержит три алгоритма поиска сайтов, а также функциональность для чтения исходных данных (последовательностей и весовых матриц). Опишем эти алгоритмы.

Алгоритм 1. Наивный поиск. Входная последовательность подается фрагментами, так как ее длина неизвестна и может быть очень большой. Если заданный фрагмент не является первым, поиск осуществляется с конца предыдущего фрагмента. Для этого после окончания поиска сохраняется конец последовательности длиной, равной максимальной длине матрицы: Lend = maxLM.

Поиск сайтов производится прямым вычислением веса на каждом фрагменте последовательности в режиме скользящего окна по формулам, приведенным выше. Если вес сайта выше порога, этот соответствующий объект заносится в массив распознанных сайтов.

Алгоритм 2. Заглядывание вперед и пермута-ции. Построим индекс J по позициям в матрице таким образом: S(M, J(t))>S(M, J(t+k)) для

k>0, где S(M,j) = maxM . То есть индекс J ука-i J

зывает на сортировку столбцов матрицы M по убыванию максимального элемента столбца. Далее вычислим остаточные суммы: Sum_rest(M, t)=

NM

= 2 max(MiJ(j)), где NM - длина матрицы M; j=t '

J(j) - индекс, построенный ранее.

Таким образом, Sum_rest(M, t) - это сумма минимальных весов оставшихся позиций. Если последовательно вычислять частичные суммы ве-t

сов Wt(M,S,k) = 2M(S,k, J(j)) и если на теку-j=1

щем шаге t Wt(M,S,k) + Sum_rest(M,t +1) <C,

то в дальнейшем, если даже в последующих позициях будут встречаться только максимальные веса, сумма весов все равно не превысит порога С (это ненормированный порог, вычисленный из ра-C - W

венства c =-——). Таким образом, можно

W - W .

max min

значительно сократить время поиска сайтов, отбрасывая на шагах вычисления веса сайты, заве-

домо меньшие порога. Индекс J называется пер-мутациями, а заглядывание вперед - это сравнение суммы с порогом на промежуточных шагах вычисления веса.

Рассмотрим пример поиска с заглядыванием вперед и пермутациями.

Пусть матрица М следующая:

pos 1 2 3 4 5 6

A 1 3 11 2 0 1

C 2 3 1 3 12 3

G 10 4 1 4 0 0

T 2 5 2 6 3 11

Тогда вектор J будет таким:

J

5

3

6

1

4

2

На первой позиции стоит индекс 5, так как в 5-м столбце максимальный вес 12, больше чем в остальных столбцах, и т.д.

8иш_гез1 будет следующим:

Sum rest

55

43

32

21

11

5

8иш_гез1 вычисляется с последнего элемента. 8иш_гез1(6)=5, так как в столбце с номером J(6)=2 максимум равен 5. 8иш_гез1(5)=5+6. И так далее складываются максимумы соответствующих столбцов.

Пусть исходная последовательность следующая:

S

A

C

T

G

C

T

Порог С=40. Тогда последовательное вычисление частичных сумм выглядит таким образом:

Wt 12 14 25 26

Sum_rest 43 32 21 11 5

Wt+ Sum_rest(t+1) 55 46 46 37

Для вычисления Wi берем J(1)=5 - столбец матрицы и соответствующий нуклеотид S[5]=C. Соответствующий ему вес равен 12 и Wt+Sum_rest(t+1) дает 55, что выше порога С=40. Далее аналогичным образом вычисляются остальные веса. В позиции 4 суммарный вес оказывается ниже порога, что позволяет прекратить вычисления с ответом, что данная последовательность не является сайтом.

Таким образом, используя этот подход, можно добиться значительного ускорения поиска сайтов. Но несмотря на это, скорость поиска все еще остается в линейной зависимости от длины последовательности. Следующий алгоритм позволяет сделать эту скорость логарифмической относительно длины последовательности.

Алгоритм 3. Суффиксные массивы. Для этого алгоритма потребуется построить суффиксный массив по входной последовательности S. Суффиксный массив T содержит позиции i входной последовательности S, отсортированные в порядке

возрастания суффиксов последовательности 8. Так что, для некоторого Ь: 8(Т(1), Ь)>8(Т(1+к), Ь) для к>0, где 8(], Ь) - фрагмент 8, начиная с ] длины Ь. Последовательность 8 считается законченной символом 0, меньшим любого другого символа из 8. Строки сравниваются в лексикографическом порядке.

Наиболее простой алгоритм построения суф-фиксного массива представляет собой построение суффиксного дерева. Опишем этот алгоритм.

Шаг 1. Возьмем первую позицию и поместим ее в корневую вершину дерева Тг.

Шаг 2. Для каждой следующей позиции 1 поместим ее в дерево Тг:

а) если для некоторого Ь 8(1, Ь)<гоо^ поместим 1 в левое поддерево;

б) если для некоторого Ь 8(1, Ь)>гоо^ поместим 1 в правое поддерево.

Выполним этот шаг рекурсивно для поддеревьев.

Повторим шаг 2 для всех позиций 1.

Далее левосторонним обходом дерева получим желаемый массив.

Рассмотрим пример построения суффиксного дерева для следующей последовательности:

8=остсолтосо.

Индекс 1 попадает в корневую вершину. Подпоследовательность длины 1 следующего индекса 2 меньше корневой подпоследовательности с<Т, поэтому поместим индекс 2 влево и т. д. (см. рис.).

1: GCTCGATGC0

4: CGATGC0

2: CTCGATGC0

ZZTTSZ

3: TCGATGC0

7: TGC0

6: ATGC0

г

8: GC0

9: C0

Таким образом, массив Т, полученный левосторонним обходом дерева, будет выглядеть так: Т=(6, 9, 4, 2, 8, 5, 1, 3, 7).

Далее сведем алгоритм поиска сайтов без ядра к алгоритму поиска с ядром. Длина ядра сЬ полагается равной 5. Найдем наиболее оптимальное ядро, в котором сумма максимальных весов мак-

¡+СЬ-1

симальна: е« = таха^ £ тахт.

! j=i к к

Вычислим порог ядра CW как минимальный порог, подходящий для ядра, за вычетом весов остальных нуклеотидов, то есть, если в остальных позициях вес будет максимальным, порог, определенный для ядра, найдем по следующей формуле:

CW = С -£ тахт - £ тахтв.

j<cs 1 ^>е«+СЬ-1 1

Таким образом, поиск без ядра сводится к поиску с ядром. Теперь для каждой матрицы и каж-

дого ядра построим набор допустимых последовательностей, для которых вес ядра больше порога.

Алгоритм поиска заключается в последовательном переборе суффиксов. Берутся только те из них, которые входят в набор допустимых последовательностей, и по ним проводится проверка, подходит ли данная матрица по порогу к данной последовательности. За счет этого удается значительно ускорить поиск сайтов, но для последовательности необходимо предварительно построить суффиксный массив.

Реализация

Библиотека реализована на языке Java и включает в себя следующие классы.

com.cogangs.bb.core.pwm

TfMatrix - класс, реализующий функциональность весовой матрицы. Включает в себя методы получения весов, максимального и минимального веса по позиции, нормировки весов и другие вспомогательные функции.

com.cogangs.bb.core.pwm.io

LibMatrixReader - позволяет читать матрицы из входного файла в соответствующем формате.

com.cogangs.bb.core.seq.io

SAFileParser - читает и записывает суф-фиксный массив в бинарный файл соответствующего формата. Этот бинарный файл содержит как последовательность, так и суффиксный массив. Позволяет записывать последовательность по секциям.

SuffixArrayBuilder - строит суффиксный массив по входной последовательности.

com.cogangs.bb.core.tfbs

NaiveSearcher - простой алгоритм поиска сайтов. Соответствует алгоритму наивного поиска.

PALAlgorithms - вспомогательные функции, общие для алгоритмов заглядывания вперед, пермутаций и суффиксного алгоритма.

PALSearcher - алгоритм с заглядыванием вперед и пермутациями.

SASearcher - алгоритм поиска с суффикс-ными деревьями.

TfbsResult - структура для хранения результирующих сайтов.

В заключение следует отметить, что в данной работе были предложены три алгоритма для поиска потенциальных сайтов связывания с транскрипционными факторами с помощью весовых матриц. Алгоритмы ориентированы на большие объемы данных - последовательностей и матриц.

Работа поддержана грантом COGANGS в рамках VII рамочной программы. Ф. Стейгмайер спланировал проект и управлял его разработкой.

Литература

1. Gilbert SF. Developmental biology, 7th ed., Sunderland, Mass: Sinauer Associates, 2003.

2. Matys V. [et al.]. TRANSFAC: transcriptional regulation, from patterns to profiles Nucleic Acids Res. 2003. № 31, pp. 374-378.

3. Prestridge DS. SIGNAL SCAN 4.0: additional databases and sequence formats. Comput Appl Biosci. 1996. N° 12(2). Apr., pp. 157-60.

4. Jonathan Schug, Using TESS to Predict Transcription Factor Binding Sites in DNA Sequence. Current Protocols in Bioin-formatics, 2003.

5. Черемушкин Е.С. Программа для построения геномных профилей весовых матриц // Программные продукты и системы. 2010. № 4.

УДК 004.932.2

ПРИМЕНЕНИЕ МУЛЬТИСПЕКТРАЛЬНОЙ СЕГМЕНТАЦИИ ДЛЯ АНАЛИЗА СОСТОЯНИЯ РАСТЕНИЙ ПО ДАННЫМ ВИДЕОРЕГИСТРАТОРА

А.Г. Зошин, к.т.н.; Е.Ю. Золотарева

Рассматривается применение мультиспектральной сегментации для анализа состояния растений. Предложен метод выполнения мультиспектральной сегментации на основе модифицированной пороговой сегментации с использованием нескольких цветовых моделей. Описана система, использующая предложенные методы и алгоритмы. Рассмотрены различные пути повышения быстродействия работы системы.

Ключевые слова: анализ видеоданных, анализ изображений, цветовые модели, сегментация изображений, локализация растений.

Повышение эффективности сельского хозяйства в условиях его комплексной модернизации требует, в частности, эффективных средств мони-

торинга. В представленной работе предлагается создать программную систему формирования цветовой модели растений различных видов для