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

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

Вопрос: как лучше это изобразить и на чем это лучше писать?
Page 1 of 3 << [1] [2] [3] >>

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: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:39 am (UTC)
From: [identity profile] freedom_of_sea.livejournal.com

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

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

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 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 04:56 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Руками чтоб человек мог пометить статус нескольких протеинов, допустим ввести в окно
А - отсутствует
Б - отсутствует
В - есть

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

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

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

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

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 05:40 am (UTC)
From: [identity profile] diakin.livejournal.com
Вопрос в том, как задавать правила, чтобы можно было редактировать.
Если в общем случае решать, будет еще та задача ) Для 10 протеинов может быть 2 в10 входных комбинаций - 1024. 1 - протеин присутствует, 0 - отсутствует.

Вх. комбин. Вых. комбин.
0000000001 - 1ххх0х01хх (1 обязательно присутствует, 0 - обязательно отсутствует, х - не зависит)
0000000010 - хххх0х0ххх (1 обязательно присутствует, 0 - обязательно отсутствует, х - не зависит)
0000000011 - а тут уже может быть противоречие - один говорит, что должен присутствовать, а другой - что должен отсутствовать. Или это запрещенная входная комбинация?

Но в принципе легко задавать. Составляются все допустимые входные комбинации из 0 и 1. Их может быть меньше 1024. Каждая комбинация это какое-то число. Ему в соответствие ставится выходная комбинация. Эти данные сохраняются в настроечном файле.
Ну и дальше набор поставленных галок определяет это число (есть галка - 1, нет галки - 0), программа читает настроечный файл и по его данным формирует(подсвечивает) выходной столбец.

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

Edited Date: 2016-09-23 05:58 am (UTC)

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: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:37 am (UTC)
From: [identity profile] gineer.livejournal.com
Во-о-о-от.

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 06:41 am (UTC)
From: [identity profile] aridmoors.livejournal.com
спасибо

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

Date: 2016-09-23 06:48 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Ммм... ну мне надо чтоб когда человек задал начальные три протеина, то машина как бы пошла от них "плясать". То есть чтобы она пошла по списку того, что уже известно. Допустим, например, я добавляю в клетку ингибитор протеина Л, и машина не смотрит все возможные комбинации, а начинает плясать от того, что нам известно, что протеин Л включает протеин Н, соответственно при добавлении инглибитора у нас выключится сначала Л, за ним Н. Потом машина пошла смотреть с какими связан Н, и так далее. И так как пасьянс бы. При том, что вводится каждый раз только несколько известных протеинов как начало.

Date: 2016-09-23 06:49 am (UTC)
From: [identity profile] freedom_of_sea.livejournal.com
какие объемы данных?
Проще всего на Visual Basic, он встроен в любую винду и довольно прост. Если объемы сильно велики, новичок не напишет.

Есть вариант сделать страницу с javaScript - eё можно публиковать в WEB и она будет работать для всех.
Но это заметно сложнее
Edited Date: 2016-09-23 06:53 am (UTC)

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

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

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

Date: 2016-09-23 06:57 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Я пробовала на бумаге рисовать столбиком, запуталась. Щас попробую в экселе сделать, и понять почему на бумаге запуталась, что там такое было.

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

Date: 2016-09-23 07:04 am (UTC)
From: [identity profile] aridmoors.livejournal.com
Хм. Страница с яваскриптом как идея мне нравится. Объемы данных маленькие.
Page 1 of 3 << [1] [2] [3] >>

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 02:10 pm
Powered by Dreamwidth Studios