Программеры, отзовитесь
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: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:39 am (UTC)Ни черта не понятно. Написать можно на всем. Например на питоне или на экселе
no subject
Date: 2016-09-23 04:49 am (UTC)У каждого протеина галка, которую можно включить\выключить. Справа такой же список протеинов, в котором при заданном наборе галок возможные протеины подсвечиваются зеленым цветом, а не возможные - красным.
Как-то так?
А сколько всего протеинов, пара сотен?
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 04:55 am (UTC)Связи известны, например, что если протеин Aurora A убить, то протеин GSK3 исчезнет вслед за ним. Известно, что если у нас нет GSK3, то обязательно появиться Beta-catenin. И так далее.
И вот таких известных фактов много, но мне их надо как-то в систему собрать. Чтобы из нее было видно, например, если у меня в клетке нету Beta-cateninа, то какой можно предположить статус Aurora A?
И еще связи известны не все. И еще мне надо чтоб если были противоречия (допустим найдутся в процессе работы), то мне было по ходу программирования видно, где программа впадает в затык когда высчитывает, чтобы я могла понять что копать в реальности.
no subject
Date: 2016-09-23 04:56 am (UTC)А - отсутствует
Б - отсутствует
В - есть
и оттуда чтоб программа выдавала возможные статусы других протеинов
no subject
Date: 2016-09-23 04:56 am (UTC)no subject
Date: 2016-09-23 04:58 am (UTC)Проблема в том, что связи не все известны, я их все время добавляю.
Да, наверно столбик с галочками может быть самым удобным пока.
no subject
Date: 2016-09-23 05:01 am (UTC)no subject
Date: 2016-09-23 05:40 am (UTC)Если в общем случае решать, будет еще та задача ) Для 10 протеинов может быть 2 в10 входных комбинаций - 1024. 1 - протеин присутствует, 0 - отсутствует.
Вх. комбин. Вых. комбин.
0000000001 - 1ххх0х01хх (1 обязательно присутствует, 0 - обязательно отсутствует, х - не зависит)
0000000010 - хххх0х0ххх (1 обязательно присутствует, 0 - обязательно отсутствует, х - не зависит)
0000000011 - а тут уже может быть противоречие - один говорит, что должен присутствовать, а другой - что должен отсутствовать. Или это запрещенная входная комбинация?
Но в принципе легко задавать. Составляются все допустимые входные комбинации из 0 и 1. Их может быть меньше 1024. Каждая комбинация это какое-то число. Ему в соответствие ставится выходная комбинация. Эти данные сохраняются в настроечном файле.
Ну и дальше набор поставленных галок определяет это число (есть галка - 1, нет галки - 0), программа читает настроечный файл и по его данным формирует(подсвечивает) выходной столбец.
зы. Настроечный файл можно корректировать вручную в блокноте, добавляя новые комбинации.
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:35 am (UTC)В химии есть типичная задача на определение солей в неподписанных пробирках, решается попарным сливанием, ход решения именно такой.
Вот если рассматриваются множественные взаимодействия, т.е. если есть B и D, тогда нет E, но не по отдельности, тогда нужно многомерные матрицы рисовать, тут, конечно, может быть сложнее.
ЗЫ, ну то есть это ответ на вопрос, как лучше изобразить. А вот как построить... Ну скажем, в какой-то момент определено, что есть B, D, F, G,.... Тогда можно заполнить столбцы по тем белкам, которые есть, отмечая те, которых нет. Так постепенно можно заполнить таблицы и по остальным. Там будут ситуации, что иногда, скажем, с A, есть B, а иногда нет. Разумно отмечать отсутствующие белки цифрами, тогда будет видно, что скажем во всех экспериментах, когда есть G, нет, L и т.п.
В общем лист и бумага, либо эксель.
no subject
Date: 2016-09-23 06:37 am (UTC)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 06:41 am (UTC)no subject
Date: 2016-09-23 06:46 am (UTC)Нужно очень хорошо подумать, как эти данные будут представлены в виде таблиц.
Если экселя окажется недостаточно, то можно будет данные из экселя загрузить куда угодно и обрабатывать более сложными системами. Хотя возможности экселя огромны.
no subject
Date: 2016-09-23 06:48 am (UTC)no subject
Date: 2016-09-23 06:49 am (UTC)Проще всего на Visual Basic, он встроен в любую винду и довольно прост. Если объемы сильно велики, новичок не напишет.
Есть вариант сделать страницу с javaScript - eё можно публиковать в WEB и она будет работать для всех.
Но это заметно сложнее
no subject
Date: 2016-09-23 06:50 am (UTC)Отдельный вопрос-- насколько сложны и разнообразны правила комбинации. Если они достаточно сложны, то Excel'я будет не хватать.
MatLab норм для прототипирования.
no subject
Date: 2016-09-23 06:57 am (UTC)Там то ли со временем (отметкой времени в клеточном цикле), то ли с чем была загвоздка, а может просто слишком много данных (я обложилась распечатанными статьями, т.к. в два моих монитора все это не влезает уже, чтоб глазами видеть). Щас доделаю иммунофлуоресценцию и попробую.
no subject
Date: 2016-09-23 07:04 am (UTC)