В современном мире человечество нуждается в большом количестве данных, которые используются в совершенно различных целях: от повышения эффективности работы маркетинга отдельно взятой компании до построения технологий будущего в научно-исследовательских центрах [1]. Однако зачастую результат напрямую зависит от того, как собираются и обрабатываются данные.
В данной статье я хочу показать, как происходит работа по сбору и обработке данных в рамках научного проекта. Работа с данными будет основываться на data-driven подходе.
Что такое data-driven подход?
Data-Driven подход — это способ принимать различные решения, основываясь на больших данных. Его используют для построения бизнес-модели или маркетинговой стратегии, при составлении плана продаж, в программировании и даже в дизайне.
Для каждой сферы выбирают конкретный тип информации, например данные о покупках, геолокации мобильных устройств, количестве поисковых запросов по теме. При поиске помещения под новую кофейню владелец может проанализировать трафик людей на улицах и выбрать место с наибольшей проходимостью. Полное название этого подхода — Data Driven Decision Making (DDDM), то есть информационно обоснованные решения (или data driven decisions) [2].
В чём суть моего научного проекта?
Мой научный проект посвящён вирусам. В его основе лежит фундаментальное свойство всех вирусов – атаковать строго определённые клетки (или группу клеток) организма-носителя [3]. Это свойство можно использовать для таргетной доставки лекарственных препаратов прямо в клетки, что может существенно увеличить эффективность лекарств.
Таргетная доставка лекарств не просто красивая идея – сегодня мы находимся очень близко к воплощению этой идеи в жизнь, так как уже разработаны методики синтеза искусственных полых (без вредоносной для клеток ДНК/РНК) капсидов вирусов [4].
Задача данного проекта – составить базу данных по вирусам, где полностью будут описываться все виды и типы капсидов вирусов, на основе этой базы данных обучить программу, которая в последствии по запросу будет предлагать один или несколько капсидов вирусов, которые нужно будет синтезировать для таргетной доставки лекарств в каждом отдельно взятом случае.
Как собрать данные для базы данных?
В данном проекте особо остро стоит вопрос о корректности собираемых данных, на основе которых будет работать целевая программа, так как если будут некорректно собраны или собраны некорректные данные, то всех проект в целом теряет смысл.
В данном проекте сбор данных осуществляется из первичных источников – научных статей по данной теме.
Для составления базы данных необходимо найти как можно больше характеристик для каждого вида вирусов, который способен заражать человека. Эти характеристики могут включать форму капсида, состав капсида (только протеины или протеины + липиды), поражаемые вирусом клетки или группа клеток и т.д. Все эти данные есть в открытом доступе, однако есть трудности с их сбором. Во-первых, их необходимо собирать вручную, так как они содержаться в сплошном тексте, а также могут зависеть от контекста, что делает затруднительным построение парсера для лёгкого и безболезненного сбора данных. Во-вторых, данные должны быть (по возможности) из проверенного источника (в идеале, из статей в журналах вроде Nature или Science). Для подтверждения корректности собранных данных их необходимо проверять на небольшой выборке: минимум три источника. Если во всех говорится, что определённый вирус имеет сферический капсид, то можно быть почти полностью уверенным, что собранные данные корректны. Если из трёх источников два говорят, что капсид по форме сферический, а один говорит, что форма – палочковидная, то стоит поискать ещё несколько источников и разобраться допущена ли ошибка в одном из источников или данный вирус существует в нескольких формах, которые следует по-разному занести в базу данных. Также критерием плохих данных может быть слишком большой разброс значений. Например, для размеров капсидов вирусов могут быть указаны значения от 30 до 300 нм. Этот диапазон необходимо уменьшить путём просмотра других источников по данному виду вирусов. Таким образом будет увеличено качество данных, т.к. они будут точнее описывать реально существующие системы.
Полнота данных будет увеличиваться путём собирания большего количества дескрипторов для каждого отдельно взятого вируса. Полными данные будут считаться тогда, когда для каждого вируса будут собраны значения всех дескрипторов.
Объём данных можно увеличить путём добавление новых дескрипторов, которые будут улучшать качество описания вирусов. Дескрипторы могут быть не только в виде новых столбцов в таблице, но также и в других форматах. Например, фотографии исследований вируса на SEM (Scanning Electron Microscope), которые будут давать визуальное представление об определённом вирусе.
Как хранить найденные данные?
Найденные данные нуждаются в хранилище, где они будут структурированно храниться. Два самых распространённый варианта: MySQL/PostgreSQL или Microsoft Excel/Google Sheets. Для своего проекта я выбрал Microsoft Excel, так как давно с ним работаю и для него нет необходимости в построении схемы хранения данных, которое необходимо при составлении базы данных в SQL.
По окончании сбора данных, таблицу Excel можно будет сохранить в виде CSV-файла для более удобного дальнейшего использования полученных данных.
Очистка собранных данных
После этапа сбора данных следует этап очистки данных. На этом этапе происходит удаление или исправление неправильных значений в таблице.
Чтобы убрать эти помехи, существует специальный процесс – очистка данных, который ещё называют data cleaning или scrubbing. Задача очистки данных – избавиться от большинства ошибок с помощью специальных инструментов и алгоритмов, сделать будущий анализ более точным.
Теоретически данные можно начать анализировать и без очистки. Однако на практике это может привести к проблемам — не соответствующим реальности графикам и отчётам или нереалистичным прогнозам. Поэтому грамотная работа с данными подразумевает их обязательную предварительную очистку.
Например, если название одного вируса повторяется дважды и имеет одинаковые параметры – это значит, что значение дублировалось и один из дубликатов необходимо удалить.
Также необходимо проверить записи на наличие опечаток и, при их наличии, их исправить. Помимо опечаток следует следить за одинаковыми формулировками буквенных значений. Например, если вирус содержит две одноцепочечных РНК, следует определиться с типом записи данного значения, предположим «Две одноцепочечные РНК», и далее по таблице присваивать именно это значение строке. Т.е. не допускать наличия других видов записи данного значения: «2 одноцепочечных РНК», «2 1-цепоч. РНК» и т.д. Наличие таких ошибок может сильно повлиять на работу с такими данными в будущем.
Следует обратить внимание на недопустимые значение, чтобы в столбце «Размер капсида, нм» вдруг не оказалось значение «Сферическая», относящееся к форме капсида.
Для упрощения процесса очистки данных (или если у вас очень большая база данных) можно использовать инструменты, вроде Drake, DataWrangler, DataCleaner и др.
Дальнейшая работа с данными
Разметка данных:
В случае использования фотографий вирусов на SEM, на сами фотографии необходимо поставить разметку.
Разметка (Data labeling) – это процесс добавления меток и тэгов в сырые данные, чтобы показать модели машинного обучения целевые атрибуты (ответы), которые она должна предсказывать.
В рамках данного проекта планируется использовать среду LabelImg для разметки данных.
Дальнейшая разработка и версионирование:
Собранные данные будут проанализированы в среде Jupiter Notebook. При анализе должны быть выявлены корреляции между размерами, формами и составом капсидов вирусов и конкретными группами клеток, которые эти вирусы атакуют. Данные корреляции будут служить демонстрацией осуществимости (proof of concept) данного проекта.
Весь анализ данных и вся дальнейшая разработка модели машинного обучения (МО) будут своевременно выкладываться в открытый доступ через Git на платформу GitHub.
Открытость данного проекта будет способствовать воспроизводимости данной модели МО для других учёных.
Список использованных источников
1. Alex Bekker, Big Data: Examples, Sources and Technologies explained [Электронный ресурс] // ScienceSoft. URL: https://www.scnsoft.com/blog/what-is-big-data?ysclid=lelbkhm22f746063344 (дата обращения 18.01.2023)<o:p></o:p>
2. Data Driven-подход // SkillFactory.блог. URL:https://blog.skillfactory.ru/glossary/data-driven-podhod/?ysclid=ld38kbjyab856230797 (дата обращения 20.01.2023)<o:p></o:p>
3. Механизмы вирусного заражения // KNEWS. URL: https://knews.kg/2020/06/29/mehanizmy-virusnogo-zarazheniya/?ysclid=ld93bnggf0889964981<o:p></o:p>
Carlos I Mendoza, David Reguera (2020) Shape selection and mis-assembly in viral capsid formation by elastic frustration eLife 9:e52525, https://doi.org/10.7554/eLife.52525
arteys
Простите, если это прозвучит грубо, но есть ли у вас формальное биологическое образование? Просто классифицировать вирусы по формам и размерам... мне кажется несколько грубоватым.