Який найкращий спосіб зробити відтворювані дослідження, якщо вам потрібні власні бібліотеки?


19

Повторне дослідження в обчисленні має на меті зробити код необхідним для отримання результатів в обчислювальному документі, доступним для інших дослідників, щоб вони могли запустити цей код для відтворення результатів у цій роботі. Я хотів би зробити все моє дослідження відтворюваним, але я стикаюся з частиною шматка : кілька паперів, над якими я працюю, використовую внутрішній пакет автоматичної диференціації (званий DAEPACK ) у власній бібліотеці ( CHEMKIN- II ; умови ліцензії незрозумілі).

Замінити ці компоненти програмного забезпечення на версії з відкритим кодом буде занадто багато часу. Існує заміна відкритого коду для CHEMKIN-II під назвою Cantera , але Cantera знаходиться в C ++, тоді як CHEMKIN-II знаходиться у Fortran 77. Це потребує великих зусиль, щоб змінити достатню кількість коду Cantera, щоб вона могла бути оброблена автоматичним інструменти диференціації для C ++.

З огляду на те, що мені потрібні ці патентовані пакети, який найкращий спосіб зробити моє дослідження максимально відтворюваним, припускаючи, що дослідники можуть не мати доступу до CHEMKIN-II? Оскільки DAEPACK є перекладачем джерела на джерело, мені не обов’язково поширювати DAEPACK; Я міг би включити його вихід, який би був вихідними файлами Fortran, які обчислюють похідні.

Загалом, якщо у вашій роботі вам потрібне власне програмне забезпечення, а це власне програмне забезпечення не є широко доступним (тобто не є MATLAB, Mathematica тощо), як зробити вашу роботу відтворюваною?


Чи DAEPACK змінює вихідний код CHEMKIN-II, або він просто використовує CHEMKIN-II внутрішньо?
День

DAEPACK аналізує вихідний код CHEMKIN-II та генерує вихідні файли Fortran, які містять підпрограми, які обчислюють матриці Якобії, шаблони обмеженості та розширення інтервалів. Він не змінює вихідний код; це як компілятор у цьому сенсі.
Джефф Оксберрі

Якщо вихід DAEPACK модифікований джерелом CHEMKIN-II, чому ви дозволені для його поширення?
День

Це похідна робота, але мені незрозуміло, чи змінено джерело. Імена змінних копіюються, але за цим аргументом багато програм, які я написав, є "модифікованим джерелом CHEMKIN-II". Я повинен був би перевірити цю точку.
Джефф Оксберрі

Чи дозволяє ліцензія CHEMKIN-II дозволяє вам вільно поширювати немодифікований джерело та обмежує спосіб розповсюдження змін? Я не можу знайти копію його ліцензії в Інтернеті.
День

Відповіді:


13

Я не думаю, що визначення "відтворюваного дослідження" вимагає, щоб автор надав безкоштовно всі інструменти, необхідні для відтворення отриманих результатів. Якщо якась частина є власником, то майбутній користувач, а не автор, повинен домовитись про придбання необхідного програмного забезпечення. (Ви не очікували, що вам доведеться створювати програмне забезпечення для когось іншого, щоб відтворити ваші результати, правда?) Ви, звичайно, несете відповідальність за точне визначення конкретного випуску використовуваного програмного забезпечення, але очікувати нерозумно. Ви можете зробити дослідницький код сумісним із програмним забезпеченням з відкритим кодом лише тому, що він є відкритим кодом.

[Як осторонь, окрім того, що говорити про відтворюваність програмного забезпечення, коли деякі з них є власником, я думаю, що перш за все потрібно вирішити більш фундаментальне питання: чи дає програмне забезпечення відтворювані результати для різних установок (наприклад, для різних архітектур та Наприклад, версії компілятора? Наприклад, помилки округлення та відмінності в розподілах внаслідок різної кількості процесорів означають, що багато обчислень молекулярного моделювання дадуть різні результати, лише змінивши кількість процесорів, включених у розподіл. (Статистичні середні показники повинні досягати однакових місце, але траєкторії можуть і, ймовірно, закінчуються дуже різними.)]


2
Я, безумовно, погоджуюся, що відтворювані дослідження не зобов’язують автора безкоштовно надавати все необхідне програмне забезпечення. Однак програмне забезпечення, яке взагалі не є загальнодоступним, створює проблеми. Однією з цілей дослідницького руху, що відтворюється, є сприяння підвищенню обізнаності про цю проблему у громаді, заохочення людей до оприлюднення науково-дослідного коду, навіть якщо вони не планують надавати йому будь-яку підтримку лише заради відтворюваності.
хінсен

2
Код, проданий на комерційній основі, все ще доступний. Якщо отримати ліцензію більше неможливо, це, звичайно, інша справа. Але оригінальний автор коду не повинен був переписувати код для розміщення іншої бібліотеки лише з метою відтворення. (Існує аргумент для більшої життєздатності та використання коду, але аргумент відтворюваності не потрібен prima facie - хоча це можна стверджувати як достатнє.)
aeismail

4

Я ніколи не був думкою, що "відтворювані дослідження" означають, що ваші колеги-читачі та вчені повинні лише натиснути кнопку "Виконати" (або скласти або що у вас є), щоб повністю відтворити ваші результати. Якщо нічого іншого, це вбило б дослідження тих, хто використовує власні пакети статистичного аналізу, або зробить речі "невідтворюваними", якщо вони були створені для платформи чи мови, що вийшли з моди. Або з цього питання, хтось хоче відтворити ваш код, але не розуміє / не використовує мову, якою ви користуєтесь.

У CrossValidated було подібне обговорення по темі - чи "відтворюється" означає, що ви можете повторити мій аналіз на моїх даних, або що сам експеримент можна повторити з нуля та дати підтверджуючі результати. Посилання тут: /stats/14999/how-are-we-defining-reproducible-research

Я думаю, що більш важливим елементом є опис того, що ви зробили на рівні, де це міг переконувати хтось, хто був достатньо зацікавлений, і якщо використовувались комерційні інструменти, ці інструменти згадуються. Тому що це служить як інтересам реплікації експерименту, так і подвійної перевірки на наявність помилок коду.


2

У вашому випадку, коли ви, можливо, навіть не маєте права на розповсюдження будь-якого коду, який ви використовували, дуже глибокий опис алгоритму може бути найкращим, що ви можете зробити. Залежно від того, наскільки складний ваш код, хтось, можливо, зможе відтворити все, що їх цікавить, із усіх доступних інструментів.

В іншому випадку поцікавтеся і подивіться, яку частину вашої роботи вам дозволено звільнити, а потім випустіть її.


Багато цього відбувається з цієї розмови в чаті.
День

1

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

Відтворювані дослідження повинні чітко пояснювати його концепції та ідеї, а не рекламувати наявні в даний час інструменти, такі як апаратне чи програмне забезпечення, необхідною умовою для відтворення результатів досліджень. Використані алгоритми мають бути детально викладені у чіткому універсальному вигляді; Поточна версія певного обладнання, компілятора або програмного пакету може використовуватися лише як інструмент для демонстрації результатів досліджень.


Я думаю, що нам потрібні і концепції, і ідеї для людського розуміння і довготермінової інтерпретації, і код для короткострокової перевірки.
хінсен

1

Публікація створеного коду Fortran звучить як дуже хороше рішення у вашому випадку.

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


1

Я працюю на Elsevier. Моя компанія почала використовувати рамку Collage (розроблену у відповідь на Executable Paper Grand Challenge) у виданнях журналу, щоб автори могли публікувати шматки виконуваного коду зі своєю статтею. Ця функція полегшує читачам відтворювати результати, про які повідомляється у статті, та повторно використовувати опубліковані матеріали для власних досліджень. Collage підтримує широкий спектр фірмового програмного забезпечення, крім програм з відкритим кодом; більше інформації можна знайти в інформаційному відео тут та на веб-сайті Collage Authoring Environment .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.