Инструменты публикации кода в научных исследованиях

Алена Беглер, лаб-менеджер небезызвестной «семерки» на факультете психологии СПбГУ, написала для #горячихюныхкогнитивных большой и очень полезный материал по инструментам публикации кода в научных исследованиях. Особенно полезно будет тем, кто участвует в нашем конкурсе экспериментальных программ MARVIN (http://thinkcognitive.org/ru/nerd).

***

Сейчас существует более семидесяти специализированных хранилищ научного кода (по данным Регистра научных репозиториев), не считая университетских хранилищ и инструментов для совместной работы с кодом, ориентированных на разработчиков. Эти хранилища отличаются по дисциплинам (например, для биохимиков), типам данных (например, только для массивов сырых данных), странам и предназначению (например, для публикации данных определённого проекта). Хранилищ общего назначения для публикации кода научных исследований в открытом доступе есть минимум четыре: figshare (https://figshare.com/), Zenodo (https://zenodo.org/), OSF (https://osf.io/) и GitHub (https://github.com/). Про них дальше и пойдёт речь.

Что это такое?

По сути, это хранилища данных в широком смысле: результатов экспериментов, постеров, исходного кода и так далее. OSF, figshare и Zenodo изначально создавались для научных исследований; GitHub позиционировался как инструмент для совместной работы над кодом и в последние несколько лет добавил функционал, делающий его полностью подходящим для хранения исследовательского кода. У этих четырёх систем много общего (по крайней мере, на уровне пользователя). Все они:

  1. хранят данные и имеют систему контроля версий;
  2. допускают создание как публичных, так и приватных проектов;
  3. позволяют организовать совместную работу над проектом;
  4. реализуют поиск по проектам;
  5. позволяют присвоить каждому объекту уникальный цифровой идентификатор (doi или ARK), с помощью которого можно цитировать объект (например, конкретный кусок кода);
  6. бесплатные (или в основном бесплатные) для пользователя.

Общие минусы всех проектов такого типа: слабый редактор кода (или его отсутствие) и некоторый порог вхождения — на них нужно как минимум зарегистрироваться в английском интерфейсе, а для некоторых платформ и посмотреть краткий мануал.

Как этим пользоваться?

Если кратко: зарегистрироваться — залить данные/код/итд — добавить метаданные — опубликовать. Два момента, которые важны при выкладке своих материалов в открытый доступ. Первый — упомянутые метаданные. Это, по сути, описание проекта: название, краткая характеристика, информация об авторах и так далее. В большинстве хранилищ наличие минимума метаданных — обязательное условие добавления файлов, но чем они полнее, тем, во-первых, проще другим будет получить информацию о проекте (и вообще найти его), во-вторых, вспомнить детали через пару лет после его завершения. Второй — лицензия. Всё, что выложено в открытый доступ обязательно нужно лицензировать — без этого ваши данные или код будут фактически недоступны для других исследователей, ведь по умолчанию отсутствие лицензии означает, что автор не разрешил использование. Лицензия — это способ его разрешить и заодно проконтролировать то, какие права вы готовы предоставить пользователям. По умолчанию большинство репозиториев предлагает лицензию Creative Commons CC-BY, которая позволяет использовать и изменять материалы как угодно (в том числе и для коммерческого использования) при указании авторства. Больше информации — по ссылкам внизу поста. А теперь немного про сами репозитории.

figshare (https://figshare.com/) создан в январе 2012 года, основатель — Mark Hahnel (PhD по клеточной биологии), позиционируется как «репозиторий для любых результатов исследований». По умолчанию на бесплатном аккаунте можно хранить любое количество публичных данных и до 20 Гб приватных (максимальный размер одного файла — 5 Гб). Файлы загружаются простым перетаскиванием мышью в окно в браузере (на вкладке «My data»), после загрузки появляется окно для ввода метаданных с краткими инструкциями по заполнению для каждого поля. Чтобы данные появились в открытом доступе нужно поставить галочку «Publish». Добавленные файлы могут храниться сами по себе, а могут быть организованы в проекты (на вкладке «Projects»). Интересная особенность figshare — в нём можно составлять коллекции данных (вкладка «Collections»), добавляя туда не только свои собственные, но и выложенные в открытый доступ другими исследователями. Это удобно, например, при поиске массивов данных по определённому типу задач.

Zenodo (https://zenodo.org/) открылся для публикации данных в мае 2013 (основан CERN) и предназначен для хранения «всех результатов исследований любого направления науки». Ограничение по количеству данных — 50 Гб на датасет (но у пользователя может быть несколько датасетов). По организации загрузки данных очень похож на figshare — сначала файл добавляется кнопкой «Upload» на главной странице, потом по стандартной форме вводятся метаданные, после этого можно публиковать (кнопка «Publish»). Чтобы данные опубликовались в открытом доступе в пункте «Access right» нужно выбрать «Open Access». Отличительная черта Zenodo — сообщества («Communities»). Это нечто среднее между группами в социальных сетях и коллекциями figshare — подборки данных по теме сообщества, которые загружаются пользователями.

Open Science Framework (OSF) (https://osf.io/) начала работу в 2013 году, основатель — Brian Nosek (профессор психологии), предназначена для «интеграции и объединения процесса работы над исследованием». Размер приватного хранилища не ограничен (размер одного файла — максимум 5 Гб). Эта платформа отличается от остальных тем, что её основная цель — не расшаривание данных, а интеграция всех инструментов, используемых в процессе исследования. Поэтому и принцип организации файлов у неё немного другой — от проекта. То есть, чтобы добавить файл, нужно создать проект, а уже в него загружать куски кода, данные и так далее. Этим объясняются и особенности навигации по платформе — пользовательский интерфейс может сначала показаться не совсем понятным, поэтому лучше перед началом работы с платформой посмотреть введение (в ссылках внизу поста). Приятные особенности OSF — интегрированная wiki-система и интеграция с большинством инструментов, использующихся в научных исследованиях, что делает её отличным инструментом для организации научного проекта.

GitHub (https://github.com/) — самый старый из описанных проектов, стартовал в 2007 году. В отличие от предыдущих описанных проектов — коммерческий продукт и предназначен в первую очередь для совместной разработки. Бесплатно на нём можно создать только публичный проект, но размер хранилища не ограничен. Основное преимущество перед описанными репозиториями — создан специально для размещения кода; ещё один плюс — большое русскоязычное сообщество. Но GitHub (в отличие от остальных) — не хранилище, а, в первую очередь, система контроля версий и совместной работы с кодом.

Где узнать больше?

Про метаданные:

Про лицензирование:

Про репозитории: