Программеры, отзовитесь
Sep. 23rd, 2016 12:40 pmИмеется научная задача. В клетке есть несколько протеинов, которые могут либо присутствовать в какой-то данный момент времени, либо отсутствовать. Клетка все время двигается во времени, поэтому протеины включаются-выключаются. Необходимо определить и наглядно показать связи присутствия-отсутствия между этими протеинами. Про многие эти связи уже известно. Например, известно, что если у нас протеин А в клетке есть, то протеина Б точно нет (они взаимоисключаются). Известно, что если протеин В есть, то протеина Г точно нет. Но так как протеинов много, и какие-то связи неизвестны, то надо вот составить такой симулятор связей.
Хотелось бы на выходе иметь какую-то программу, в которую можно было бы забить известные данные про несколько протеинов, а программа уже показала бы тебе наглядно, какие возможные значения могут быть у других остальных протеинов.
Вопрос: как лучше это изобразить и на чем это лучше писать?
Хотелось бы на выходе иметь какую-то программу, в которую можно было бы забить известные данные про несколько протеинов, а программа уже показала бы тебе наглядно, какие возможные значения могут быть у других остальных протеинов.
Вопрос: как лучше это изобразить и на чем это лучше писать?
no subject
Date: 2016-09-23 03:57 am (UTC)я лет 25 назад, совсем юным студентом, занимался подобным в Поленовском институте
(не протеинами, а симптомами и синдромами, поиском закономерностей)
писали какой-то software, придумывали алгоритмы
с тех пор несомненно появилось куча готового софта для таких вещей
но посмотрю что в комментах напишут
вообще эта отрасль называется "data mining"
no subject
Date: 2016-09-23 04:02 am (UTC)no subject
Date: 2016-09-23 04:55 am (UTC)Связи известны, например, что если протеин Aurora A убить, то протеин GSK3 исчезнет вслед за ним. Известно, что если у нас нет GSK3, то обязательно появиться Beta-catenin. И так далее.
И вот таких известных фактов много, но мне их надо как-то в систему собрать. Чтобы из нее было видно, например, если у меня в клетке нету Beta-cateninа, то какой можно предположить статус Aurora A?
И еще связи известны не все. И еще мне надо чтоб если были противоречия (допустим найдутся в процессе работы), то мне было по ходу программирования видно, где программа впадает в затык когда высчитывает, чтобы я могла понять что копать в реальности.
no subject
Date: 2016-09-23 05:01 am (UTC)no subject
Date: 2016-09-23 04:21 am (UTC)https://svg-art.ru/
SVG - это просто картинка или анимация, исполняемая обычным броузером.
На указанном сайте примеры, причем бегающие шарики - уже заготовка для вашей задачи.
Внутри текст вроде
- линия отсюда досюда
- кружок с центром тут, радиусом 10, зеленый
и т.д.
Т.е. для "программирования" необходим notepad, никаких компиляторов, кодирования видео т.п.
Есть и графические редакторы, которые позволяют работать сразу с картинкой, но одну задачу проще сразу текстом.
no subject
Date: 2016-09-23 04:23 am (UTC)no subject
Date: 2016-09-23 04:56 am (UTC)А - отсутствует
Б - отсутствует
В - есть
и оттуда чтоб программа выдавала возможные статусы других протеинов
no subject
Date: 2016-09-23 04:39 am (UTC)Ни черта не понятно. Написать можно на всем. Например на питоне или на экселе
no subject
Date: 2016-09-23 04:56 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-09-23 04:49 am (UTC)У каждого протеина галка, которую можно включить\выключить. Справа такой же список протеинов, в котором при заданном наборе галок возможные протеины подсвечиваются зеленым цветом, а не возможные - красным.
Как-то так?
А сколько всего протеинов, пара сотен?
no subject
Date: 2016-09-23 04:58 am (UTC)Проблема в том, что связи не все известны, я их все время добавляю.
Да, наверно столбик с галочками может быть самым удобным пока.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-09-23 04:50 am (UTC)http://spmbt.github.io/snowfalls/jSnowMultiWin.htm
причем правила можно задавать непосредственно таблицей ваших данных.
Для минимального программирования тоже нужен только текстовый редактор и обычный броузер.
Больше примеров работы с графиками и диаграммами
http://adatum.ru/file/graph/1/
no subject
Date: 2016-09-23 07:05 am (UTC)no subject
Date: 2016-09-23 06:18 am (UTC)попробуйте вашу задачу на бумажке написать..в виде таблицы 9или как удобно в процессе станет)..причем сразу опишите максимально возможную ситуацию (много протеинов - это не число..хотя бы порядок введите..10..100...10000?)
no subject
Date: 2016-09-23 06:21 am (UTC)1) Эксель.
2) MathLab / MathCad
no subject
Date: 2016-09-23 06:37 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-09-23 06:35 am (UTC)В химии есть типичная задача на определение солей в неподписанных пробирках, решается попарным сливанием, ход решения именно такой.
Вот если рассматриваются множественные взаимодействия, т.е. если есть B и D, тогда нет E, но не по отдельности, тогда нужно многомерные матрицы рисовать, тут, конечно, может быть сложнее.
ЗЫ, ну то есть это ответ на вопрос, как лучше изобразить. А вот как построить... Ну скажем, в какой-то момент определено, что есть B, D, F, G,.... Тогда можно заполнить столбцы по тем белкам, которые есть, отмечая те, которых нет. Так постепенно можно заполнить таблицы и по остальным. Там будут ситуации, что иногда, скажем, с A, есть B, а иногда нет. Разумно отмечать отсутствующие белки цифрами, тогда будет видно, что скажем во всех экспериментах, когда есть G, нет, L и т.п.
В общем лист и бумага, либо эксель.
no subject
Date: 2016-09-23 06:39 am (UTC)Какой выбрать -- дело вкуса. Как вариант, можно использовать QML (https://en.wikipedia.org/wiki/QML). Это простенький язык на базе java script с возможностью рисования GUI. Все джавоскриптовые примочки там можно использовать, если хочется. А то, что у него под капотом спрятаны страшные C++ и Qt бояться не надо -- вы их не увидите.
no subject
Date: 2016-09-23 07:12 am (UTC)no subject
Date: 2016-09-23 06:50 am (UTC)Отдельный вопрос-- насколько сложны и разнообразны правила комбинации. Если они достаточно сложны, то Excel'я будет не хватать.
MatLab норм для прототипирования.
no subject
Date: 2016-09-23 07:06 am (UTC)Щас я попробую чуть больше разобраться и сформулирую.
(no subject)
From:no subject
Date: 2016-09-23 07:46 am (UTC)Писать такое можно на чём угодно, размерность задачи небольшая (возможно, я не до конца понимаю, какого рода вычисления тут могут потребоваться). Так что имеет смысл выбрать инструмент, который вы уже знаете-умеете.
no subject
Date: 2016-09-23 09:26 am (UTC)Эксель же может помочь связи отлавливать вручную: фильтры, мат- и статистический аппарат зашиты, графики рисовать можно.
То есть, собрать табличку, строки - эксперимент, столбцы - контрольные параметры (протеины), значения - булевы (есть/нет). Например, покрасить их в разный цвет.
Дальше можно применять фильтры (показ строк, соответствующих заданному условию) или условное форматирование (формулой задается некое условие, по которому перекрашиваются нужные клетки таблицы).
Таким образом строятся гипотезы, то есть, ищутся взаимосвязи. А дальше уже, на большом массиве проверять гипотезы и искать алгоритмы - можно подумать, как. Алгоритм проверки комментатор выше описал, в целом.
no subject
Date: 2016-09-23 10:22 am (UTC)https://avacariu.me/articles/2014/tikz-directed-graph-example
https://tex.stackexchange.com/questions/37185/typesetting-a-directed-weighted-graph-with-tikz
Но елси что-то совсем хитрое - можно попробовать применить http://www.libsna.org/
no subject
Date: 2016-09-23 10:37 am (UTC)вроде
А 100011010110101110
B 100001110101101010
......
Z 1111011011011001011
Дальше для выявления закономерностей можно использовать как простую корреляцию (коэффициент больше 0.8 уже нужно присмотреться в том числе и к ошибкам внесения данных)
Так и сложную если допустим N зависит от сочетания K и X.
В идеале известные закономерности здесь не так важны (они просто будут идти в качестве отладочных примеров при разработке) если есть все данные то по идее программа сама должна найти все в том числе и известные закономерности.
Простые корреляции может искать даже эксель, таблицу корреляций между двумя любыми можно сделать через формулы самого экселя (столбцы протеины, строки момент времени и наличие, таблица сбоку и какая то функция из группы работы со случайными величинами).
сложные уже лучше использовать что нибудь алгоритмическое от паскаля до С++ потому что
1. Нужно будет формировать векторы (присутствие нескольких протеинов в один момент времени) для последующего сравнения и вычисления коэффициента корреляции с остальными не входящими в вектор протеинами.
2. Организовывать перебор протеинов из которых будут строиться векторы (АВ,АС,AD,... АВС.... ABC...Z)
В этом случае лучше данные занести в какую либо более менее подходящую базу данных для хранения.
Если рядом есть математический или программисткий факультет, то стоит припахать студента оттуда. Задача достаточно простая для спеца. .
no subject
Date: 2016-09-23 10:52 am (UTC)более простые модели, без диффуров - сети, в которых можно гонять пошаговую динамику.
в принципе это то чем занимаются вычислительные биологи в systems biology. можно погуглить systems biology, signalling pathway modelling.
можно конечно и вручную. но нужен математик/биоинформатик (в зависимости от задачи, опять же)
no subject
Date: 2016-09-23 11:44 am (UTC)Посмотрела туториалы копаси, но это для химиков. Я в принципе знаю про системную биологию, и уже думала про это, но у меня проблема. Там они занимаются пасвэями, то есть когда у них какая-то хрень вступает в реакцию с другой хренью. А у меня наверняка известно про многие протеины, что они точно не реагируют и вообще связаны чисто во времени (скажем, они появляются во время какого-то события в клетке).
И еще у меня, конечно же, очень упрощенно представлено, совсем не химически, без цифр, без концентраций. Я решаю чисто биологическую задачу.
Знаете, я даже не знаю как сформулировать, чтоб было посторонним понятно. Вот сижу, пытаюсь. Если вы знакомы с биологией, могу объяснить суть. Сердцевина проблемы в том, что в одной статье написано, что оверэкспрессия Aurora A дает GSK3 inhibition, а в другой написано, что наоборот, Aurora A inhibition leads to GSK3 inhibition, а вот оверэкспрессия, наоборот, не приводит к GSK inhibition. Через все косвенные данные, представленные в обоих статьях, получается, что ни те, ни те не соврали. В меру своих возможностей я сделала другие эксперименты, и у меня тоже получилась примерно такая же фигня: в моих клетках Aurora A inhibition ведет к перепрограммированию их в плюрипотентные, и GSK3 inhibition тоже к этому ведет, а клеточный цикл при этом получается противоположный! И вообще, если задуматься - где Aurora A, а где GSK3? Ну то есть, ну причем тут аврора вообще, ну какого хрена эта аврора там вообще делает!
То есть моя задача - понять, как это так, эти абсолютно посторонние протеины в одном и том же контексте ведут к одному и тому же результату в моем случае, и в чем дело там у этих статей с ингибиторами. Где там собака зарыта.
Как это объяснить не биологу - хрен бы знал. Наверно надо сесть и долго вместе объяснять? Не знаю.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-09-23 11:29 am (UTC)no subject
Date: 2016-09-23 12:30 pm (UTC)конечно, если время есть - можно (и нужно) двигаться в новые области. Но, может, пока с кем-нито пересотрудничать?
У нас ПхД студентка вроде как раз построением таких моделей занимается. Если интересно - могу сконтачить.
Там вся соль появляется когда прокачанный ревьюер берет статью и возвращает ее с пометками в стиле "а эта шта еще за самодеятельность?"
no subject
Date: 2016-09-23 03:35 pm (UTC)(no subject)
From:(no subject)
From: