aridmoors: (Default)
[personal profile] aridmoors
Имеется научная задача. В клетке есть несколько протеинов, которые могут либо присутствовать в какой-то данный момент времени, либо отсутствовать. Клетка все время двигается во времени, поэтому протеины включаются-выключаются. Необходимо определить и наглядно показать связи присутствия-отсутствия между этими протеинами. Про многие эти связи уже известно. Например, известно, что если у нас протеин А в клетке есть, то протеина Б точно нет (они взаимоисключаются). Известно, что если протеин В есть, то протеина Г точно нет. Но так как протеинов много, и какие-то связи неизвестны, то надо вот составить такой симулятор связей.

Хотелось бы на выходе иметь какую-то программу, в которую можно было бы забить известные данные про несколько протеинов, а программа уже показала бы тебе наглядно, какие возможные значения могут быть у других остальных протеинов.

Вопрос: как лучше это изобразить и на чем это лучше писать?

Date: 2016-09-23 03:57 am (UTC)
From: [identity profile] avla.livejournal.com
интересно,
я лет 25 назад, совсем юным студентом, занимался подобным в Поленовском институте
(не протеинами, а симптомами и синдромами, поиском закономерностей)
писали какой-то software, придумывали алгоритмы
с тех пор несомненно появилось куча готового софта для таких вещей

но посмотрю что в комментах напишут

вообще эта отрасль называется "data mining"

Date: 2016-09-23 04:02 am (UTC)
From: [identity profile] http://users.livejournal.com/_stilgar/
А сколько протеинов? А какие еще бывают взаимосвязи?

Date: 2016-09-23 04:55 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Сейчас протеинов около 10, но я новые нахожу все время, то есть их будет больше, и мне надо их добавлять в систему тоже.

Связи известны, например, что если протеин Aurora A убить, то протеин GSK3 исчезнет вслед за ним. Известно, что если у нас нет GSK3, то обязательно появиться Beta-catenin. И так далее.

И вот таких известных фактов много, но мне их надо как-то в систему собрать. Чтобы из нее было видно, например, если у меня в клетке нету Beta-cateninа, то какой можно предположить статус Aurora A?

И еще связи известны не все. И еще мне надо чтоб если были противоречия (допустим найдутся в процессе работы), то мне было по ходу программирования видно, где программа впадает в затык когда высчитывает, чтобы я могла понять что копать в реальности.

Date: 2016-09-23 05:01 am (UTC)
From: [identity profile] aridmoors.livejournal.com
А, и еще проблема же что связи не только взаимоисключающие. Иногда если какой-то протеин есть, то про второй невозможно сказать, есть он или нет. А вот если второго нет, то первого нет точно. Например, такое. И какие именно связи могут быть, вообще нереально узнать наверняка, это надо эксперименты делать в реальности.
Edited Date: 2016-09-23 05:01 am (UTC)

Date: 2016-09-23 04:21 am (UTC)
From: [identity profile] vlkamov.livejournal.com
Если только демо, то
https://svg-art.ru/

SVG - это просто картинка или анимация, исполняемая обычным броузером.
На указанном сайте примеры, причем бегающие шарики - уже заготовка для вашей задачи.

Внутри текст вроде
- линия отсюда досюда
- кружок с центром тут, радиусом 10, зеленый
и т.д.

Т.е. для "программирования" необходим notepad, никаких компиляторов, кодирования видео т.п.

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


Date: 2016-09-23 04:23 am (UTC)
From: [identity profile] gotemcity fy (from livejournal.com)
И в каком виде входные данные?

Date: 2016-09-23 04:56 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Руками чтоб человек мог пометить статус нескольких протеинов, допустим ввести в окно
А - отсутствует
Б - отсутствует
В - есть

и оттуда чтоб программа выдавала возможные статусы других протеинов

Date: 2016-09-23 04:39 am (UTC)
From: [identity profile] freedom_of_sea.livejournal.com

Ни черта не понятно. Написать можно на всем. Например на питоне или на экселе

Date: 2016-09-23 04:56 am (UTC)
From: [identity profile] aridmoors.livejournal.com
На чем легче всего новичку? Проще всего

(no subject)

From: [identity profile] freedom_of_sea.livejournal.com - Date: 2016-09-23 06:49 am (UTC) - Expand

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 07:04 am (UTC) - Expand

(no subject)

From: [identity profile] freedom_of_sea.livejournal.com - Date: 2016-09-23 07:07 am (UTC) - Expand

Date: 2016-09-23 04:49 am (UTC)
From: [identity profile] diakin.livejournal.com
По сути получается слева столбик со списком всех протеинов.
У каждого протеина галка, которую можно включить\выключить. Справа такой же список протеинов, в котором при заданном наборе галок возможные протеины подсвечиваются зеленым цветом, а не возможные - красным.
Как-то так?
А сколько всего протеинов, пара сотен?

Date: 2016-09-23 04:58 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Не, пока тока 10.
Проблема в том, что связи не все известны, я их все время добавляю.

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

(no subject)

From: [identity profile] diakin.livejournal.com - Date: 2016-09-23 05:40 am (UTC) - Expand

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 06:48 am (UTC) - Expand

(no subject)

From: [identity profile] diakin.livejournal.com - Date: 2016-09-23 07:07 am (UTC) - Expand

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 07:58 am (UTC) - Expand

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 08:01 am (UTC) - Expand

(no subject)

From: [identity profile] diakin.livejournal.com - Date: 2016-09-23 03:22 pm (UTC) - Expand

Date: 2016-09-23 04:50 am (UTC)
From: [identity profile] vlkamov.livejournal.com
JavaScript посложнее, но и возможности неограниченные. В приципе там у него внтури тоже есть какие-то средства рисования, но в простейшем случае может просто двигать иконки по заданным правилам, как тут
http://spmbt.github.io/snowfalls/jSnowMultiWin.htm
причем правила можно задавать непосредственно таблицей ваших данных.
Для минимального программирования тоже нужен только текстовый редактор и обычный броузер.

Больше примеров работы с графиками и диаграммами
http://adatum.ru/file/graph/1/

Date: 2016-09-23 07:05 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Спасибо, учту.

Date: 2016-09-23 06:18 am (UTC)
From: [identity profile] nestor-lohara.livejournal.com
пока задача так расплывчата, что хоть на бейсике пиши..комбинации двух десятков переменных..два столбика..


попробуйте вашу задачу на бумажке написать..в виде таблицы 9или как удобно в процессе станет)..причем сразу опишите максимально возможную ситуацию (много протеинов - это не число..хотя бы порядок введите..10..100...10000?)

Date: 2016-09-23 06:21 am (UTC)
From: [identity profile] budidich.livejournal.com
Новичку проще всего в
1) Эксель.
2) MathLab / MathCad

Date: 2016-09-23 06:37 am (UTC)
From: [identity profile] gineer.livejournal.com
Во-о-о-от.

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 06:41 am (UTC) - Expand

(no subject)

From: [identity profile] budidich.livejournal.com - Date: 2016-09-23 06:46 am (UTC) - Expand

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 06:57 am (UTC) - Expand

Date: 2016-09-23 06:35 am (UTC)
From: [identity profile] meloco-go.livejournal.com
А рассматривается только бинарная зависимость? Если да, то это простая табличка ABCDE.... в столбцах и строках. Если, скажем, B "выключает" D, то на пересечении столбца B и строки D (и наоборот) ставится галочка. Без всякого софта и очень наглядно. Ну, с софтом, конечно, тоже можно.
В химии есть типичная задача на определение солей в неподписанных пробирках, решается попарным сливанием, ход решения именно такой.
Вот если рассматриваются множественные взаимодействия, т.е. если есть B и D, тогда нет E, но не по отдельности, тогда нужно многомерные матрицы рисовать, тут, конечно, может быть сложнее.

ЗЫ, ну то есть это ответ на вопрос, как лучше изобразить. А вот как построить... Ну скажем, в какой-то момент определено, что есть B, D, F, G,.... Тогда можно заполнить столбцы по тем белкам, которые есть, отмечая те, которых нет. Так постепенно можно заполнить таблицы и по остальным. Там будут ситуации, что иногда, скажем, с A, есть B, а иногда нет. Разумно отмечать отсутствующие белки цифрами, тогда будет видно, что скажем во всех экспериментах, когда есть G, нет, L и т.п.

В общем лист и бумага, либо эксель.
Edited Date: 2016-09-23 06:45 am (UTC)

Date: 2016-09-23 06:39 am (UTC)
From: [identity profile] lazy-tank.livejournal.com
Звучит как идеальная задача для декларативного языка. В принципе, для любого из них.
Какой выбрать -- дело вкуса. Как вариант, можно использовать QML (https://en.wikipedia.org/wiki/QML). Это простенький язык на базе java script с возможностью рисования GUI. Все джавоскриптовые примочки там можно использовать, если хочется. А то, что у него под капотом спрятаны страшные C++ и Qt бояться не надо -- вы их не увидите.
Edited Date: 2016-09-23 06:40 am (UTC)

Date: 2016-09-23 07:12 am (UTC)
From: [identity profile] lazy-tank.livejournal.com
Ещё можно посмотреть на UniCalc (http://www.rriai.org.ru/UniCalc/). Очень мощный инструмент, для решения декларативных задач. Правда, он только десктопный и только под винду.

Date: 2016-09-23 06:50 am (UTC)
From: [identity profile] alexispokrovski.livejournal.com
Недостаточно подробностей. Хорошо бы несколько use case'ов: как будет работать система в типовых ситуациях. Что в нее загружают, что прога дает на выходе. Кто будет юзать: только вы или это на продажу. Какой нужен интерфейс.

Отдельный вопрос-- насколько сложны и разнообразны правила комбинации. Если они достаточно сложны, то Excel'я будет не хватать.

MatLab норм для прототипирования.

Date: 2016-09-23 07:06 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Какая продажа, у нас все в паблик домейне))

Щас я попробую чуть больше разобраться и сформулирую.

(no subject)

From: [identity profile] alexispokrovski.livejournal.com - Date: 2016-09-23 07:16 am (UTC) - Expand

Date: 2016-09-23 07:46 am (UTC)
a_p: (Default)
From: [personal profile] a_p
Если взаимосвязи между белками попарные (то есть, нет связей типа "если есть А и нет Б, то тогда нет либо В, либо Г"), то я бы представил такое в виде "турнирной таблицы": в ней на каждый белок есть и строчка, и колонка, в клеточке на пересечении обозначена связь (строчка - А, колонка - Б, связь может быть, например: "неизвестно", "нет связи", "если А есть, то Б нет", "если А есть, то и Б есть"). Причинно-следственность можно отражать так, что в строчке - причина, а в колонке - следствие (тогда можно будет учитывать несимметричные отношения, когда, например, А блокирует Б, а Б не блокирует А).

Писать такое можно на чём угодно, размерность задачи небольшая (возможно, я не до конца понимаю, какого рода вычисления тут могут потребоваться). Так что имеет смысл выбрать инструмент, который вы уже знаете-умеете.

Date: 2016-09-23 09:26 am (UTC)
From: [identity profile] dakto.livejournal.com
Наверное, начать стоит с данных. Сделать это можно в экселе. Они в любом случае нужны, а табличку легко будет потом уже использовать для автоматической обработки.

Эксель же может помочь связи отлавливать вручную: фильтры, мат- и статистический аппарат зашиты, графики рисовать можно.

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

Таким образом строятся гипотезы, то есть, ищутся взаимосвязи. А дальше уже, на большом массиве проверять гипотезы и искать алгоритмы - можно подумать, как. Алгоритм проверки комментатор выше описал, в целом.
Edited Date: 2016-09-23 09:38 am (UTC)

Date: 2016-09-23 10:22 am (UTC)
From: (Anonymous)
Зачем тебе отдельная программа? Все-равно потом статью в LaTeX делать - сразу там и рисуй всё. Вот пара примеров:
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/

Date: 2016-09-23 10:37 am (UTC)
From: [identity profile] kuzia-aka-zmey.livejournal.com
Т.е. фактически мы имеем несколько двоичных (есть нет) процессов (меняются от времени)
вроде
А 100011010110101110
B 100001110101101010
......
Z 1111011011011001011
Дальше для выявления закономерностей можно использовать как простую корреляцию (коэффициент больше 0.8 уже нужно присмотреться в том числе и к ошибкам внесения данных)
Так и сложную если допустим N зависит от сочетания K и X.

В идеале известные закономерности здесь не так важны (они просто будут идти в качестве отладочных примеров при разработке) если есть все данные то по идее программа сама должна найти все в том числе и известные закономерности.

Простые корреляции может искать даже эксель, таблицу корреляций между двумя любыми можно сделать через формулы самого экселя (столбцы протеины, строки момент времени и наличие, таблица сбоку и какая то функция из группы работы со случайными величинами).
сложные уже лучше использовать что нибудь алгоритмическое от паскаля до С++ потому что
1. Нужно будет формировать векторы (присутствие нескольких протеинов в один момент времени) для последующего сравнения и вычисления коэффициента корреляции с остальными не входящими в вектор протеинами.
2. Организовывать перебор протеинов из которых будут строиться векторы (АВ,АС,AD,... АВС.... ABC...Z)
В этом случае лучше данные занести в какую либо более менее подходящую базу данных для хранения.

Если рядом есть математический или программисткий факультет, то стоит припахать студента оттуда. Задача достаточно простая для спеца. .
Edited Date: 2016-09-23 10:38 am (UTC)

Date: 2016-09-23 10:52 am (UTC)
From: [identity profile] zlyuk.livejournal.com
есть вполне специальные программные ресурсы для внутриклеточных взаимодействий. по типу COPASI или более общего матлабовского SimBiology. там можно рисовать сети белковых взаимодействий и программа автоматом строит вычислительную модель. только надо вводить параметры, типа скоростей реакций или kd, в зависимости от задачи.
более простые модели, без диффуров - сети, в которых можно гонять пошаговую динамику.
в принципе это то чем занимаются вычислительные биологи в systems biology. можно погуглить systems biology, signalling pathway modelling.
можно конечно и вручную. но нужен математик/биоинформатик (в зависимости от задачи, опять же)

Date: 2016-09-23 11:44 am (UTC)
From: [identity profile] aridmoors.livejournal.com
О, спасибо, я не знала про эти программы.

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

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

Знаете, я даже не знаю как сформулировать, чтоб было посторонним понятно. Вот сижу, пытаюсь. Если вы знакомы с биологией, могу объяснить суть. Сердцевина проблемы в том, что в одной статье написано, что оверэкспрессия Aurora A дает GSK3 inhibition, а в другой написано, что наоборот, Aurora A inhibition leads to GSK3 inhibition, а вот оверэкспрессия, наоборот, не приводит к GSK inhibition. Через все косвенные данные, представленные в обоих статьях, получается, что ни те, ни те не соврали. В меру своих возможностей я сделала другие эксперименты, и у меня тоже получилась примерно такая же фигня: в моих клетках Aurora A inhibition ведет к перепрограммированию их в плюрипотентные, и GSK3 inhibition тоже к этому ведет, а клеточный цикл при этом получается противоположный! И вообще, если задуматься - где Aurora A, а где GSK3? Ну то есть, ну причем тут аврора вообще, ну какого хрена эта аврора там вообще делает!
То есть моя задача - понять, как это так, эти абсолютно посторонние протеины в одном и том же контексте ведут к одному и тому же результату в моем случае, и в чем дело там у этих статей с ингибиторами. Где там собака зарыта.

Как это объяснить не биологу - хрен бы знал. Наверно надо сесть и долго вместе объяснять? Не знаю.

(no subject)

From: [identity profile] zlyuk.livejournal.com - Date: 2016-09-23 12:24 pm (UTC) - Expand

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 03:32 pm (UTC) - Expand

(no subject)

From: [identity profile] hexacorallia.livejournal.com - Date: 2016-09-23 07:26 pm (UTC) - Expand

(no subject)

From: [identity profile] aridmoors.livejournal.com - Date: 2016-09-23 11:57 pm (UTC) - Expand

(no subject)

From: [identity profile] hexacorallia.livejournal.com - Date: 2016-09-24 07:55 am (UTC) - Expand

(no subject)

From: [identity profile] zlyuk.livejournal.com - Date: 2016-09-25 09:07 am (UTC) - Expand

Date: 2016-09-23 11:29 am (UTC)
From: [identity profile] aosypov.livejournal.com
Если будете программировать врукопашную - не забудьте поставить счетчик итераций шагов, чтобы в футильном цикле не застрять. Еще не забудьте про конкурентные переключения. И еще продумайте, как будете выставлять веса источникам противоречивых данных.

Date: 2016-09-23 12:30 pm (UTC)
From: [identity profile] vadperez.livejournal.com
вас тоже там заставляют автомат калашникова и БМП самим собирать?))
конечно, если время есть - можно (и нужно) двигаться в новые области. Но, может, пока с кем-нито пересотрудничать?
У нас ПхД студентка вроде как раз построением таких моделей занимается. Если интересно - могу сконтачить.
Там вся соль появляется когда прокачанный ревьюер берет статью и возвращает ее с пометками в стиле "а эта шта еще за самодеятельность?"

Date: 2016-09-23 03:35 pm (UTC)
From: [identity profile] aridmoors.livejournal.com
Ну зачем так, у меня же проект не состоит в создании программы, я же не системный биолог. Программа мне нужна самой себе для того, чтобы разобраться, и она не модель, я не собираюсь модель Wnt pathway строить, в самом деле, до меня уже построили:). У меня все на клеточном цикле и позиции органелл повязано (что я не упоминаю, а то совсем сложно описать будет, и так вон уже никто не понимает).

(no subject)

From: [identity profile] vadperez.livejournal.com - Date: 2016-09-23 03:55 pm (UTC) - Expand

(no subject)

From: [identity profile] vadperez.livejournal.com - Date: 2016-09-23 05:36 pm (UTC) - Expand

Profile

aridmoors: (Default)
aridmoors

January 2026

S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 20th, 2026 07:23 am
Powered by Dreamwidth Studios