Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
21 - Telegram Web
Telegram Web
Друзья, OpenBio открывает новое направление – машинное обучение в биологии и медицине.

В этом канале мы планируем собирать полезную и актуальную информацию для тех, кому интересны последние тенденции и практические инструменты в одном из самых перспективных направлений DatScience.

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

Пожелайте нам удачи и присоединяйтесь!
4👍4👏4
С какого момента началась история искусственного интеллекта?

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

Как правило, термин «машинное обучение» подразумевает, что модель воплощена в исполняемом коде для компьютера. Если в математической основе лежит статистический расчёт, то говорят о классическом (или статистическом) машинном обучении. Ещё одним примером МО можно назвать наивный байесовский классификатор, работающий в антиспамовых фильтрах. Сюда же относятся метод К-средних, деревья решений и метод случайного леса, уточняющий их предсказания. Основой останется серьезная математика, «зашитая» в код.

Но помимо классических методов, развитие искусственного интеллекта было богато на моменты озарения, пришедшие из биологии. Самым ярким из них было изобретение искусственных нейронных сетей. Попытки создания математических моделей нейронов для применения в распознавании символов встречались уже в 1950-х годах. Но продуктивными они стали только парой десятилетий позже – после расшифровки Хьюбелом и Визелем структуры зрительного центра мозга человека. Попытка воспроизвести модели нейронов в компьютерном воплощении привела к архитектуре свёрточной нейронной сети. Спустя много лет именно эта архитектура ляжет в основу первой модели AlphaFold – программы, умеющей предсказывать трёхмерную структуру белка.

Этот импульс оказался достаточным для стимуляции независимого развития нейронных сетей без оглядки на биологию. В человеческом мозге нет аналогов капсульных нейронных сетей, сетей с эхо-состояниями и трансформеров, однако это не мешает теперь по утрам болтать с Алисой или ChatGPT.

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

#openbio_datascience
👍53🔥3🤔1
Как оценить надежность универсальной модели ИИ перед развертыванием?

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

Базовые модели – это массивные модели глубокого обучения, которые натренированы на немаркированных данных общего назначения и спроектированы для ситуации, когда последующие задачи неизвестны, на выходе не дают конкретных результатов, а генерируют абстрактное представление на основе входной информации. Они лежат в основе работы таких приложений, как ChatGPT и DALL-E, и применяются для решения таких задач, как создание изображений или ответы на вопросы клиентов.

Но эти модели иногда предлагают неверную или вводящую в заблуждение информацию. В некоторых случаях ошибки приводят к серьезным последствиям. Например, когда пешеход приближается к беспилотному автомобилю. Чтобы предотвратить подобные ошибки, исследователи из Массачусетского технологического института и лаборатории искусственного интеллекта IBM Watson разработали методику оценки надежности базовых моделей до развертывания под решение конкретной задачи.

Принцип оценки. Сначала исследователи берут близкие базовые модели. Затем используя специальный алгоритм и идею «neighborhood consistency» для оценки согласованности представлений, сравнивают результат об одной и той же точке тестовых данных по каждой модели. Если представления согласованы, значит модель надежна.

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

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

#openbio_новости
👍3🔥3🤓2
Подборка свежих вакансий для биологов и биомедиков с компетенциями в области машинного обучения. Успейте отправить резюме, пока они не ушли в архив.

Data Scientist в сеть клиник Ниармедик
Предстоит разрабатывать, тестировать и оптимизировать модели машинного обучения на медицинских протоколах и картах пациентов.

Разработчик ML-сервисов в УралХим
Основные обязанности: проведение экспериментов, разработка моделей машинного обучения и поддержка разработанных решений.

Биоинформатик / Data-Engineer в центр молекулярной онкологии ОнкоАтлас
Ищут маэстро инженерного искусства, который по косвенным признакам может заподозрить ошибку в системе, самостоятельно погрузиться в тысячи строк кода и выявить неполадку. Знание ML приветствуется.

Data Scientist в Inspectrum Clinic
Задачи: подготавливать данные (Feature engineering), создавать модели алгоритмов, разрабатывать метрики для оценки точности алгоритма и внедрять лучшие модели в процессы клиники.

Senior DL Engineer в Care Mentor AI
Предстоит обучать модели классификации, сегментации и детекции на 2D и 3D изображениях (рентгены, КТ, МРТ, ПЭТ-КТ и т.д.), проводить эксперименты по поиску лучшей архитектуры, автоматизировать разметку, а также руководить командой DL инженеров.

#openbio_вакансии
👍4🔥3
16 июля в Монреале завершилась ежегодная конференция BOSC 2024 (Bioinformatics Open Source Conference). Это мероприятие проводит Open Bioinformatics Foundation – крупнейшая некоммерческая организация по созданию и продвижению открытого программного обеспечения для биоинформатики.

А у нас есть еще один повод напомнить о библиотеке Python, которую поддерживает эта организация – Biopython.

Варианты установки Biopython:

Через менеджер пакетов pip по названию biopython:
pip install biopython
В conda:
conda install -c conda-forge biopython
В системе Linux:
sudo apt-get install python-biopython
(команда для Debian/Ubuntu-подобных систем)

Что умеет Biopython?
1️⃣ Упрощает разбор («парсинг») биологических баз данных. Модуль Entrez упростит получение информации из геномных баз данных NCBI, а модуль PDB позволит обратиться к одноимённому банку данных.
2️⃣ В нём есть готовые методы работы с последовательностями и выравниваниями. Например, конкатенация и конвертация из одного формата в другой.
3️⃣ Имеет обширный набор инструментов для частных биоинформатических задач. Модуль Bio.PopGen проведёт расчёты по популяционной генетике, а Bio.Phylo отредактирует филогенетические деревья.

Сразу оговоримся, что эти модули предлагают только базовый набор функций, поэтому без других пакетов и программ обойтись нельзя. Чтобы построить филогенетические деревья (а не только редактировать их) – присмотритесь к пакету DendroPy и программам MAFFT и MEGA. А для популяционной генетики много библиотек в языке R.

Biopython – базовый инструментарий. Подробнее в официальном руководстве.

Все изучаем Biopython!

#openbio_datascience
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🤔1
🔈 Открываем набор на курс повышения квалификации «Машинное обучение в биологии и биомедицине»!

В течение 2,5 месяцев вы изучите классические и продвинутые методы ML в биологии и биомедицине, получите практику по 4-м кейсам и пройдете групповое соревнование по Computer Vision.

В программе:
Задачи классического ML в биологии и биомедицине – база для входа в индустрию.
Методы кластеризации и понижение размерности на примере табличных данных с single-cell RNA-seq.
Нейронные сети и введение в DL, изучение PyTorch+Torchvision, разборы статей с экскурсом в историческое развитие архитектур.
Интеграция мультиомиксных данных, практики понижения размерностей с помощью нейросетей. Автоэнкодеры.
Бинарная классификация и сегментация изображений с помощью технологий Computer Vision – подробно с элементами практической инженерии.

Курс можно проходить в любое время – видеолекции и материалы доступны для самостоятельного изучения. Раз в неделю вас ждут прямые эфиры с экспертами, где вы разберёте домашние задания и получите ответы на интересующие вопросы. Плюс поддержка в чате доступна в течение всего курса.

Старт: 1 октября.
Учебная нагрузка: 8-10 часов в неделю.
Спикеры: опытные преподаватели и действующие эксперты индустрии и науки.
Что нужно знать: базу Python и библиотеки numpy и pandas.

🔤 Мы даем скидки студентам (30%) и аспирантам (10%), а также группам от юрлиц.

Записывайтесь прямо сейчас и начните свой путь к востребованным профессиям в области DataScience!

➡️ Регистрация на курс https://goo.su/XYImAym

#openbio_ML
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3🤔2
Numpy — это база!

Библиотека Numpy для Python — это основа науки о даннных и биоинформатики. При этом, хоть каждому программисту Python и знакомо имя пакета для установки
 pip install numpy

и команда импорта библиотеки,
 import numpy as np

в практических задачах мало кто использует её в явном виде. Это происходит, потому что библиотеки для прикладного анализа данных, такие как pandas, matplotlib, scikit-learn, опираются на Numpy и вызывают её "под капотом". В реальных задачах чаще используются библиотеки самого высокого уровня, но знать Numpy на теоретическом уровне очень важно.

Что умеет Numpy?
Ключевая функция Numpy — оперировать с N-мерными массивами (которые в линейной алгебре известны под именем матриц и векторов) без написания цикла пользователем. Сами циклы запускаются, но выполняются скрыто, а код операций пишется так же, как в тетради по линейной алгебре.

Например, если array1 — это двухмерная матрица, то операция
 array1 + 3

сложит каждый элемент матрицы со скаляром.

Если vector1 и vector2 — векторы одинаковой размерности, то операция
 vector1*vector2

выполнит их адамарово (поэлементное) умножение.

В Numpy есть и другие полезные функции, которые облегчают вычисления. Например, если нужно извлечь квадратные корни из целого массива чисел (например, array1), то функция
 np.sqrt(array1)

извлечёт корень из каждого элемента массива и вернёт корни таким же списком. Такие функции называются универсальными функциями.

🖥 Подробная документация по Numpy представлена на сайте , где в окне браузера можно поработать с Numpy в интерактивном режиме. Если вы только начинаете изучать Python, "поиграйтесь" с ней как с линейно-алгебраическим калькулятором.

📖 Кстати, для изучения прикладной линейной алгебры в том ключе, в котором она реализована в Numpy, подойдет книга Коэн М.И. Прикладная линейная алгебра для исследователей данных / пер. с англ. А. В. Логунова. — М.: ДМК-Пресс, 2023. — 328 с.: ил.

#openbio_numpy
👍30🔥27
Пятничная подборка вакансий для биологов и биомедиков с компетенциями в области ML.

Успейте отправить резюме, пока они не ушли в архив.

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

Data Scientist AI/ML в Иннотех
Ищут специалиста на проект, связанный с разработкой интеллектуального помощника для врачей-реаниматологов. Опыт практического применения алгоритмов Machine Learning обязателен.

Ведущий разработчик искусственного интеллекта (NLP) в Геномед
Идеально подойдете, если умеете с нуля реализовать проекты по внедрению AI в процессы компании. Примеры задач, которые предстоит решать: создание чат-бота для общения с клиентами и партнерами, генерация заключений на основе медицинских данных.

Ведущий аналитик в Инвитро
Нужно проработать архитектуру, видение и интеграцию BI системы с существующими решениями. Из требований: умение работать с ML, AI, BigData, LLM, Generative AI.

#openbio_вакансии
🔥19👍3🤔1
Большие языковые модели пока слабо подходят для диагностики заболеваний.

Медицинские чат-боты зачастую ставят поспешные диагнозы, не придерживаются рекомендаций и подвергают жизни пациентов риску. К такому выводу пришла команда из Мюнхенского технического университета, исследовав различные варианты большой языковой модели с открытым исходным кодом Llama 2 при постановке диагнозов.

Технологии, лежащие в основе ChatGPT, решают выпускные экзамены по медицинским предметам почти безупречно. Но сможет ли ИИ взять на себя задачи врачей в отделении неотложной помощи? Сможет ли он назначить анализы, поставить правильный диагноз и составить план лечения?

Для поиска ответа на этот вопрос ученые использовали анонимные данные 2400 пациентов из клиники в США с 4 распространенными абдоминальными патологиями: аппендицит, панкреатит, холецистит и дивертикулит. Все они обратились в неотложку с болью в животе.

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

1 часть исследования
Команда обнаружила, что ни одна из языковых моделей не запрашивала последовательно необходимые обследования. А иногда назначала процедуры, которые имели бы серьезные последствия для здоровья реальных пациентов.

2 часть исследования
Ученые сравнили диагнозы ИИ с диагнозами четырех врачей. Диагнозы врачей были верны в 89% случаях, в то время как лучшая языковая модель достигла только 73%.

При этом диагнозы, поставленные языковой моделью, зависели от порядка, в котором она получала информацию, и от лингвистических тонкостей. Например, результаты отличались, когда у программы запрашивался «основной», «первичный» или «окончательный» диагноз. Хотя в клинической практике эти термины взаимозаменяемы.

✔️ Выводы очевидны – медицинские чат-боты не подходят для повседневной клинической практики. Но это только пока. Несмотря на текущие недостатки, исследователи считают, что потенциал у этой технологии есть.

📲 Ссылка на исследование https://www.nature.com/articles/s41591-024-03097-1

#openbio_новости
🔥12👍4🤔1
Kaggle – учитесь, соревнуйтесь, растите и получайте деньги.

Kaggle – это популярная платформа Google, где пользователи участвуют в соревнованиях и получают за это денежные призы.

Как проходят соревнования
Организатор публикует описание задачи и исходную информацию, устанавливает сроки и критерии оценки. Задача участников – предложить лучшее решение, применив различные методы и алгоритмы. Победитель получает приз. Остальные участники зарабатывают баллы, которые влияют на их рейтинг в общей таблице.

Сейчас для дата-сайентистов в области медицины на Kaggle проходят несколько соревнований с денежными призами:

✔️ ISIC 2024 – Выявление рака кожи с помощью 3D-TBP.
Предстоит разработать алгоритмы ИИ, которые отличают злокачественные поражения кожи от доброкачественных.
💸 Приз 80 000 $

✔️ ICR – Выявление возрастных заболеваний.
Нужно создать модель ML для обнаружения заболеваний на основе медицинских данных.
💸 Приз 60 000 $

✔️ Классификация дегенеративных заболеваний поясничного отдела позвоночника RSNA 2024.
Цель этого конкурса – разработать модели, которые имитируют работу рентгенолога при диагностике заболеваний позвоночника.
💸 Приз 50 000 $

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

А что делать новичкам?
Если вы начинающий дата-сайентист, поучаствуйте в соревнованиях начального уровня. В них нет призового фонда и ограничений по датам, но по структуре они аналогичны Kaggle-соревнованиям с призами.
🔥22👍3🤔1
Numpy: часть 2. Индексирование и транспонирование
(вводную статью серии про Numpy можно посмотреть здесь)

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

Индексированием называется выбор элемента в массиве Numpy по его индексу — положению или “номеру” в матрице.

Если my_array — это ваша матрица, то команда вида
my_array[i, j]

вернёт элемент, находящийся на пересечении строки i и столбца j.

Но не всё так просто!

Обратите внимание на левую часть картинки. Пусть my_array — это матрица 4×3, обведённая прямоугольной рамкой. Что будет, если задать элемент my_array[1, 2]? Интуитивно кажется, что программа вернёт 4 — ведь четвёрка в первой строке и втором столбце. Но Python возвращает 47, потому что он считает с нуля. Первый элемент в любом массиве для него — всегда нулевой. Такое языки называются нуль-индексными.

Это делает обращение к строкам и столбцам таблицы по номерам резко неудобным. Но, к счастью, есть хорошее решение — библиотека Pandas с её фреймами данных, которая работает “поверх” Numpy, подробнее расскажем в следующем посте.

Помимо индексирования, часто бывает нужно уложить двумерный массив набок, поменяв местами строки и столбцы. Для этого в Numpy есть целых два решения!

1️⃣ Прежде всего, у каждого массива Numpy как объекта (Python — объектно-ориентированный язык, здесь почти всё — объект) есть метод из одной буквы — T. Он как раз и осуществляет транспонирование.
 my_array.T


2️⃣ Но есть и более привычный вариант — вызов функции transpose из библиотеки Numpy с передачей ей нашей матрицы в качестве аргумента. Например, если вы импортировали Numpy как np (это её стандартное имя при импорте), то транспонирование осуществляется так:
np.transpose(my_array)


Сама по себе операция транспонирования встречается в биоинформатических задачах часто, почти на уровне рутины — некоторые библиотеки и методы лучше работают с данными в строках, некоторые — со столбцами. Знание команд для транспонирования позволяет проводить его “одним махом”, не отвлекаясь на преобразование данных и на написание нового кода.

#openbio_numpy
👍21🔥2🤔1
Этим постом мы начинаем серию публикаций про работу в Pandas.

Двухмерные и N-мерные массивы — очень удобная вещь, но они немного оторваны от реальной жизни:

🔸 У столбцов нет имён, а у строк — явно определяемых номеров;
🔸 Все данные в каждой клеточке — одного типа.

В реальной практике данные обычно имеют прямоугольный вид, то есть они представлены в виде таблицы, где:

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

Такие таблицы в программировании называются фреймами данных (data frame). Примером фрейма данных является любая электронная таблица Excel или база данных MS Access. Но у Access слишком слаб вычислительный функционал, а Excel, помимо ограничений на количество строк и объём таблицы, имеет несколько важных недостатков:

🔻 Его расчётный функционал сложно автоматизировать и дополнить своим кодом. Как и у всего MS Office, у него есть встроенный язык VBA (Visual Basic for Applications), но его гибкость в плане расширения библиотеками весьма ограничена. Так что для биоинформатики он подходит мало;

🔻 Сам он не умеет читать многие биоинформатические форматы: файл FASTA или филогенетическое дерево он просто не сможет корректно открыть. Наоборот, Python может открыть буквально всё — за счёт импорта соответствующих библиотек.

Поэтому возникает естественная необходимость в библиотеке Python, которая может работать с фреймами данных как цельными объектами, удобно обращаться к отдельным элементам фрейма и делать с ними почти всё то же, что офисные пакеты делают с электронными таблицами. Итак, вашему вниманию — Pandas!

Если вы импортировали Pandas как pd (его общепринятое “имя”)
import pandas as pd

то фрейм данных будет описываться как
pd.DataFrame


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

У фрейма есть заголовки столбцов и метки строк, которые называются индексами. Понятие индекса в Pandas аналогично понятию ключевого поля в MS Access. Если “ключа” (индекса) нет, то Pandas создаст его сам, просто присвоив строками порядковый номер. Есть один минус — начинаться он будет с нуля (Python всегда считает с нуля, он нуль-индексный).

Индекс представляет собой отдельный столбец, и ему тоже можно присвоить заголовок столбца. Если ваш фрейм данных носит имя df, то переименовать индекс можно так:
df.index.name = “имя_индекса_которое_вам_нравится”


Индекс можно сменить:
df.reset_index().set_index(“имя_столбца_который_вы_хотите_сделать_индексом”)


Если в Excel обратиться к значению ячейки можно было просто по её координатам, то в Pandas такого нет. Для выбора даже одиночного значения придётся выполнить что-то вроде мини-запроса. Например, метод loc объекта DataFrame:
df.loc[индекс_строки, “заголовок столбца”]


Подробнее об индексации и выборе элементов в Pandas читайте в наших следующих постах. Но сначала научимся открывать и сохранять файлы в Pandas (да, он умеет!). Не переключайтесь!

💡Интересный факт
В языке R тоже есть фрейм данных (data.frame), и он присутствует даже в стандартной комплектации языка. Но для комфортного индексирования фрейма и продуктивной работы с ним всё равно придётся поставить дополнительные библиотеки.

#openbio_pandas
👍19🔥4🤔1
2025/07/12 10:41:21
Back to Top
HTML Embed Code: