Telegram Group Search
📰 Возвращаемся с новостями!

Уже заканчивается второй поток курса «Машинное обучение в биологии и биомедицине», а мы готовим для вас насыщенное лето:
🔻 прямые эфиры с новыми "сеньорами" биоинформатиками
🔻 свежие тренды в биотехе и сфере AI
🔻 азы Python и ML для новичков и разборы ключевых терминов
🔻 раскрытие сложных тем в рубрике "вопрос-ответ" от наших экспертов
🔻 подборки вакансий и карьерные советы

Ну что, поехали! 🚀

#openbio_ml #openbio_education #биотех #машинноеобучение
Please open Telegram to view this post
VIEW IN TELEGRAM
Python для биомеда: словари и циклы — ключ к анализу данных

Продолжаем нашу рубрику «азы программирования» с разбором словарей и циклов — core skill инструментов для работы с биомедицинской информацией.

📌 Словари: биоинформатика в виде пар «ключ–значение»

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

Словарь с экспрессией генов:
gene_expression = {
'TP53': 3.4,
'BRCA1': 1.8,
'EGFR': 2.7
}

Здесь ключи — названия генов, а значения — их уровень экспрессии (например, log2(TPM+1)).

Когда это полезно?
Быстрый доступ к данным по уникальному идентификатору — например, по имени гена.
Работа с JSON-структурами (часто встречаются в аннотациях генов, результатах API).
Представление биомедицинских таблиц, где строки становятся словарями (например, записи пациента или профили экспрессии).

📌 Циклы: автоматизация анализа

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

Выводим список интересующих генов:
genes = ['TP53', 'BRCA1', 'EGFR']
for gene in genes:
print(f"Ген: {gene}")


Можно не просто выводить, а сравнивать с контрольными значениями, фильтровать и обрабатывать:
threshold = 2.0
for gene, expr in gene_expression.items():
if expr > threshold:
print(f"{gene} сверхэкспрессирован: {expr}")


📌 Комбинируем словари и циклы: практические примеры

🔸 Пример 1: Анализ мутаций по пациентам
mutations = {
'patient_001': ['TP53', 'EGFR'],
'patient_002': ['BRCA1'],
'patient_003': []
}

for patient_id, mutated_genes in mutations.items():
print(f"{patient_id}: найдено {len(mutated_genes)} мутаций")


🔸 Пример 2: Сравнение экспрессии в норме и опухоли
normal_expr = {'TP53': 1.2, 'BRCA1': 2.1, 'EGFR': 1.9}
tumor_expr = {'TP53': 3.4, 'BRCA1': 1.8, 'EGFR': 2.7}

for gene in normal_expr:
change = tumor_expr[gene] - normal_expr[gene]
print(f"{gene}: изменение экспрессии = {change:+.2f}")


🔸 Пример 3: Агрегация статистики по опухолевым типам
tumor_samples = {
'glioblastoma': ['TP53', 'IDH1', 'EGFR'],
'breast_cancer': ['BRCA1', 'BRCA2', 'TP53'],
'lung_cancer': ['EGFR', 'KRAS']
}

gene_counts = {}
for cancer_type, genes in tumor_samples.items():
for gene in genes:
gene_counts[gene] = gene_counts.get(gene, 0) + 1

print("Гены, встречающиеся чаще всего:")
for gene, count in gene_counts.items():
if count > 1:
print(f"{gene}: {count} типов опухолей")


🔻 Почему владение словарями и циклами критично?

Конструкции for, dict, items, range, enumerate входят в топ-10 самых часто используемых в Python-коде.
Циклы и словари встречаются в более чем 90% Jupyter-ноутбуков, связанных с анализом биомедицинских данных (источники: Kaggle, OpenML, BioPython).
Любая современная библиотека (Pandas, PyTorch, BioPython, Scikit-learn) использует их под капотом или требует при работе с API.

✔️ Посмотреть, как используются словари и циклы в реальных проектах, можно тут и тут.

Попробуйте и вы!

#openbio_python #openbio_ml #openbio_education
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня в центре внимания — цикл While! 🔁

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

📌 Если вы уже освоили базовую работу с библиотеками NumPy и pandas, научились читать и обрабатывать датасеты, группировать, и визуализировать векторные операции — самое время перейти к управлению потоком выполнения кода. Цикл while — фундаментальная конструкция, которая пригодится в любом проекте.

Например:
ридов_прочитано = 0 # Количество прочитанных фрагментов ДНК
цель_ридов = 1000 # Требуемое количество

while ридов_прочитано < цель_ридов:
print(f"Прочитано {ридов_прочитано} ридов. Ещё собираем...")
ридов_прочитано += 100 # Имитация чтения 100 ридов за шаг


Здесь while проверяет условие ридов прочитано < цель_ридов. Пока оно истинно, выполняется print(count) и увеличивается значение переменной ридов прочитано. Когда ридов прочитано достигнет 1000 или больше — цикл завершится.

📌 Структура цикла while в Python:
while условие:
Тело цикла

Условие — логическое выражение, которое проверяется перед каждой итерацией.
Двоеточие (:) сообщает Python, что далее — блок команд.
Тело цикла — команды с отступом, которые выполняются, пока условие истинно.

While — это цикл с предусловием: сначала проверяется условие, и только если оно истинно — выполняется тело цикла.

📌 Сравнение с оператором if и логические операции

Цикл while напоминает условный оператор if, но с повторением:
if выполняет код один раз, если условие истинно.
while выполняет код многократно, пока условие остаётся истинным.

Оба могут использовать логические операторы and, or, not:
белок_свернут = 0 # Уровень правильной свёртки белка (0-10)
токсичность = True # Моделируем, что белок токсичен на старте

while белок_свернут < 8 and токсичность:
print(f"Свёртка: {белок_свернут}. Белок пока токсичен.")
белок_свернут += 1 # Улучшаем свёртку
if белок_свернут >= 5:
токсичность = False # Допустим, после 5 уровня свёртки токсичность исчезает


Этот цикл будет продолжаться, пока уровень свёртки меньше 8 и белок остаётся токсичным. Когда белок_свернут станет 5, токсичность переключится в False и цикл завершится, даже если свёртка не достигла 8.

📌 Бесконечные циклы

Цикл while может стать бесконечным, если условие всегда истинно:
while True:
print("Ищем идеальную последовательность...")
# Здесь могла бы быть сложная функция анализа


Чтобы остановить такой цикл, используют break:
консенсус_найден = False # Флаг нахождения консенсуса

while True:
показатель_качества = float(input("Введите показатель качества сборки (0.0-1.0): "))
if показатель_качества > 0.95:
print("Отлично! Сборка соответствует стандарту:", показатель_качества)
break # Выходим из цикла, т.к. цель достигнута
else:
print("Качество сборки недостаточно. Попробуйте ещё раз.")

Этот код будет спрашивать показатель качества, пока пользователь не введёт корректное значение выше 0.95.

Всегда следите за условиями цикла и используйте break осознанно, бесконечные циклы могут «повесить» программу.

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

↗️ Освоив базовые принципы, вы сможете перейти к более сложным паттернам: вложенным циклам, контролю итераций через continue и else, созданию симуляций и генераторов.

🔭 While обязательно пригодится в ваших проектах — от простых до исследовательских. Главное — начать, практиковать и не бояться экспериментов.

#openbio_python #openbio_ml #openbio_education
Please open Telegram to view this post
VIEW IN TELEGRAM
Всегда ли шум имеет гауссовское распределение?

Центральная предельная теорема говорит, что если вы суммируете много одинаково распределенных (причем по любому закону) величин, то получаете нормальное распределение. Например, в физической реальности на объект действует много случайных сил (скажем, от броуновского движения молекул и частиц). Их равнодействующая — это как раз такая сумма, поэтому распределена нормально.

Но это не всегда так. В биомедицине встречаются распределения с тяжелыми хвостами, например, распределения Леви или Парето, характерные для редких событий (экстремальных значений).

Почему важно правильно учитывать экстремальные значения? 

Часто это ключевые сигналы в медицине: высокий уровень онкомаркеров → опухоль, повышенный тропонин → инфаркт, аномальные электрокардиограммы → тяжелые нарушения ритма.

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

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

Что делать на практике?

🔷Постройте гистограмму ошибок или остатков. Посмотрите на форму: симметрична? Есть ли тяжелые хвосты? Выбросы?
🔷Проверьте через статистические тесты на нормальность - Шапиро-Уилка, Колмогорова-Смирнова, Андерсона-Дарлинга
🔷Проверьте наличие тяжелых хвостов — экстремальных значений, которые реже встречаются, чем по нормальному закону. Для этого помогут графики квантиль-квантиль (Q-Q plot).
🔷При подозрении на тяжелые хвосты — попробуйте модели с распределениями Леви, Парето, Стьюдента; для выбора оптимальной модели рассмотрите критерии выбора (AIC/BIC).

Предположение о нормальности — лишь приближение, а не догма. Ключ к точной интерпретации данных — понимание природы шума.

Сталкивались ли вы с "тяжелыми хвостами" в ваших биологических данных? Как решали эту проблему? Делитесь своим опытом в комментариях!

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

#openbio_education

📌 Машинное обучение в биологии и биомедицине | OpenBio.Edu — подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
📰Сегодня собрали для вас дайджест мероприятий по биотехнологиям, вычислительной биологии, искусственному интеллекту и смежным областям, которые пройдут в России в 2025 году. Поехали:

1️⃣ 25 июня – 2 июля | Всероссийская конференция “Молекулярная динамика – 2025”

Новосибирск. Атомное и молекулярное моделирование: современные подходы и алгоритмы, Молекулярно-динамическое моделирование и его приложения, Технологии суперкомпьютерного и атомистического ML

2️⃣1–18 июля | Летняя школа искусственного интеллекта

Петрозаводск
. Теоретическая часть обучения пройдет в формате лекций и семинаров? А для решения кейсов – реальных задач от партнеров – будет сформировано несколько продуктовых команд под руководством опытных наставников
Дедлайн 27 июня.

3️⃣ 7–10 июля | DataCon 2025: Искусственный интеллект в разработке фармацевтических молекул

Университет ИТМО, Санкт-Петербург приглашает на воркшоп, который заканчивается решением реального кейса в формате хакатона.

4️⃣ 31 июля - 3 августа | 12-я Московская конференция по вычислительной молекулярной биологии (МССМВ)

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

5️⃣ 15–19 сентября | Всероссийская конференция с международным участием “Генетика. Эволюция. Радиобиология”

В Екатеринбурге, на базе Института экологии растений и животных Уральского отделения РАН пройдет конференция? в которой затронут темы эволюционные процессы с точки зрения современной генетики. Эволюционная и историческая экология; Перспективы применения новых методов генетики, геномики и селекции в решении проблем продовольственной безопасности;
Дедлайн 1 июля.

6️⃣ 22–27 сентября и 7 –12 октября | XX юбилейная международная научная конференция “Актуальные вопросы биологической физики и химии. БФФХ-2025”

Конференция пройдет в 2 этапа: первый в сентябре, в Севастополе на базе Института перспективных исследований Севастопольского государственного университета; второй - в Москве на базе Физического факультета Московского государственного университета им. М.В. Ломоносова, в программе: Общая биофизика, Молекулярная биофизика и биоинформатика, Медицинская биофизика и биофизическая химия, Биофизическая экология.
Дедлайн 20 июля

7️⃣ 23–25 сентября | XII Российский форум биотехнологий OpenBio

Место проведения Наукоград Кольцово. OpenBio — крупнейший форум молодых ученых по биотеху и смежным отраслям. В программе: секции по генетике, биоинформатике, вирусологии, фундаментальной медицине и фарме.
Дедлайн 1 августа.

8️⃣ 20–22 октября | XXXI Symposium on Bioinformatics and Computer-Aided Drug Discovery (BCADD-2025)

Онлайн-симпозиум для специалистов по компьютерному поиску и разработке лекарств, анализу биологических путей, моделированию молекул, ML и AI для фармацевтики и медицины.
Дедлайн подачи тезисов — до 31 августа, зарегистрироваться в качестве слушателя или представителя онлайн- постера можно до 25 сентября

9️⃣ 25–26 октября | Геномика метагеномика и молекулярная биология микроорганизмов

Сколково, Институт науки и технологий.
В программе: доклады из области генетики, молекулярной биологии, метагеномики и биохимии микроорганизмов, включая трансляционную микробиологию и геномное редактирование.
Дедлайн подачи тезисов до 30 июня
Дедлайн регистрации на конференцию до 15 сентября

🔟 28–30 октября | XI Всероссийская конференция с международным участием «Физиология и биохимия медиаторных процессов"

Институт биологии развития им. Н.К. Кольцова РАН, г. Москва проводит конференцию по сравнительной физиологии сигнальных систем, эволюции механизмов сигнализации, генетическим и эпигенетическим механизмам физиологических процессов и поведения, молекулярно-клеточным механизмам функционирования сенсорных и двигательных систем.
Дедлайн подачи тезисов 31 августа

Поделись с друзьями и посещайте мероприятия вместе!

#openbio_events #биотех #openbio_education #конференции

📌 Машинное обучение в биологии и биомедицине | OpenBio.Edu — подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Машинное обучение в биологии и биомедицине | OpenBio.Edu
➡️ Напоминаем, что сегодня в 19.00 по мск состоится встреча с Никитой Ваулиным.

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

📌 Зарегистрируйтесь, если планируете смотреть встречу в записи.

До встречи!

📩📥📤
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/06/26 20:10:27
Back to Top
HTML Embed Code: