Алена Беглер, лаб-менеджер небезызвестной «семерки» на факультете психологии СПбГУ, написала для #горячихюныхкогнитивных большой и очень полезный материал по инструментам публикации кода в научных исследованиях. Особенно полезно будет тем, кто участвует в нашем конкурсе экспериментальных программ 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 позиционировался как инструмент для совместной работы над кодом и в последние несколько лет добавил функционал, делающий его полностью подходящим для хранения исследовательского кода. У этих четырёх систем много общего (по крайней мере, на уровне пользователя). Все они:
- хранят данные и имеют систему контроля версий;
- допускают создание как публичных, так и приватных проектов;
- позволяют организовать совместную работу над проектом;
- реализуют поиск по проектам;
- позволяют присвоить каждому объекту уникальный цифровой идентификатор (doi или ARK), с помощью которого можно цитировать объект (например, конкретный кусок кода);
- бесплатные (или в основном бесплатные) для пользователя.
Общие минусы всех проектов такого типа: слабый редактор кода (или его отсутствие) и некоторый порог вхождения — на них нужно как минимум зарегистрироваться в английском интерфейсе, а для некоторых платформ и посмотреть краткий мануал.
Как этим пользоваться?
Если кратко: зарегистрироваться — залить данные/код/итд — добавить метаданные — опубликовать. Два момента, которые важны при выкладке своих материалов в открытый доступ. Первый — упомянутые метаданные. Это, по сути, описание проекта: название, краткая характеристика, информация об авторах и так далее. В большинстве хранилищ наличие минимума метаданных — обязательное условие добавления файлов, но чем они полнее, тем, во-первых, проще другим будет получить информацию о проекте (и вообще найти его), во-вторых, вспомнить детали через пару лет после его завершения. Второй — лицензия. Всё, что выложено в открытый доступ обязательно нужно лицензировать — без этого ваши данные или код будут фактически недоступны для других исследователей, ведь по умолчанию отсутствие лицензии означает, что автор не разрешил использование. Лицензия — это способ его разрешить и заодно проконтролировать то, какие права вы готовы предоставить пользователям. По умолчанию большинство репозиториев предлагает лицензию 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 (в отличие от остальных) — не хранилище, а, в первую очередь, система контроля версий и совместной работы с кодом.
Где узнать больше?
Про метаданные:
- Важные элементы метаданных в ICPSR’s Guide to Social Science Data Preparation and Archiving: http://www.icpsr.umich.edu/icpsrweb/content/deposit/guide/chapter3docs.html#elements
- Раздел «Documentation, metadata, citation» в Research data Management Training: http://datalib.edina.ac.uk/mantra/
Про лицензирование:
- How to License Research Data; http://www.dcc.ac.uk/resources/how-guides/license-research-data
- Лицензии Creative Commons: https://creativecommons.org/licenses/?lang=ru
- Он-лайн курс «Управление интеллектуальной собственностью: основы для инженеров»: https://stepik.org/course/Управление-интеллектуальной-собственностью-основы-для-инженеров-88/syllabus
Про репозитории:
- Recommended Data Repositories: http://www.nature.com/sdata/policies/repositories
- Регистр научных репозиториев: http://www.re3data.org/
- figshare tutorials — How do I upload a file?: https://www.youtube.com/watch?v=iC6dEIwnWfY (полутораминутная инструкция по загрузке файла)
- figshare support Knowledge Base: https://support.figshare.com/support/solutions
- Zenodo and the long tail of science: https://www.youtube.com/watch?v=lkwBXeWb6jY (краткое руководство по публикации с 4 по 7 минуту)
- Zenodo Frequently Asked Questions: https://zenodo.org/faq
- Getting Started With the OSF: https://www.youtube.com/watch?v=2TV21gOzfhw&t=4s (двухминутное введение)
- OSF Frequently Asked Questions: https://osf.io/faq/
- OSF Guides: http://help.osf.io/
- Краткое введение в GitHub: https://guides.github.com/activities/hello-world/
- Введение в GitHub для новичков и непрограммистов: https://www.youtube.com/watch?v=1QtkZQ-sr7I (запись часового вебинара)