Apa cara terbaik untuk melakukan penelitian yang dapat direproduksi jika Anda membutuhkan perpustakaan eksklusif?

19

Penelitian yang dapat direproduksi dalam perhitungan bertujuan untuk membuat kode yang diperlukan untuk menghasilkan hasil dalam makalah komputasi yang tersedia bagi peneliti lain sehingga mereka dapat menjalankan kode ini untuk mereproduksi hasil dalam makalah itu. Saya ingin membuat semua penelitian saya dapat direproduksi, tetapi saya menghadapi sedikit hambatan: beberapa makalah yang saya kerjakan menggunakan paket diferensiasi otomatis in-house (disebut DAEPACK ) di perpustakaan eksklusif ( CHEMKIN- II ; ketentuan lisensi tidak jelas).

Akan sangat memakan waktu untuk mengganti komponen perangkat lunak ini dengan versi open-source. Pengganti open-source untuk CHEMKIN-II ada yang disebut Cantera , tetapi Cantera ada di C ++, sedangkan CHEMKIN-II ada di Fortran 77. Diperlukan banyak upaya untuk memodifikasi cukup kode Cantera sehingga dapat diproses secara otomatis alat diferensiasi untuk C ++.

Mengingat bahwa saya memerlukan paket-paket eksklusif ini, apa cara terbaik untuk membuat penelitian saya dapat direproduksi sebaik mungkin, dengan asumsi bahwa para peneliti mungkin tidak memiliki akses ke CHEMKIN-II? Karena DAEPACK adalah penerjemah sumber-ke-sumber, saya tidak perlu mendistribusikan DAEPACK; Saya mungkin bisa memasukkan outputnya, yang akan menjadi file sumber Fortran yang menghitung turunannya.

Lebih umum, jika Anda memerlukan perangkat lunak berpemilik dalam pekerjaan Anda, dan perangkat lunak berpemilik itu tidak tersedia secara luas (yaitu, tidak MATLAB, Mathematica, dll.), Bagaimana Anda membuat pekerjaan Anda dapat direproduksi?

Geoff Oxberry
sumber
Apakah DAEPACK memodifikasi kode sumber CHEMKIN-II, atau hanya menggunakan CHEMKIN-II secara internal?
Dan
DAEPACK mem-parsing kode sumber CHEMKIN-II dan menghasilkan file sumber Fortran yang mengandung subrutin yang menghitung matriks Jacobian, pola sparsity, dan ekstensi interval. Itu tidak mengubah kode sumber; itu seperti kompiler dalam arti itu.
Geoff Oxberry
Jika output DAEPACK dimodifikasi sumber CHEMKIN-II, mengapa Anda diizinkan untuk mendistribusikannya?
Dan
Ini hasil kerja, tetapi tidak jelas bagi saya jika sumbernya dimodifikasi. Nama variabel disalin, tetapi dengan argumen itu, banyak program yang saya tulis adalah "sumber CHEMKIN-II yang dimodifikasi". Saya harus memeriksa titik itu.
Geoff Oxberry
Apakah lisensi CHEMKIN-II memungkinkan Anda untuk mendistribusikan sumber yang tidak dimodifikasi secara bebas, dan membatasi cara Anda mendistribusikan perubahan? Saya tidak dapat menemukan salinan lisensi itu online.
Dan

Jawaban:

13

Saya tidak berpikir bahwa definisi "penelitian yang dapat direproduksi" mensyaratkan bahwa penulis menyediakan secara gratis semua alat yang diperlukan untuk mereproduksi hasil yang diperoleh. Jika beberapa di antaranya adalah milik, maka itu adalah tugas pengguna masa depan, bukan penulis, untuk membuat pengaturan untuk memperoleh perangkat lunak yang diperlukan. (Anda tidak akan berharap harus membangun perangkat lunak agar orang lain mereproduksi hasil Anda, bukan?) Anda tentu saja memiliki tanggung jawab untuk menentukan dengan tepat rilis perangkat lunak berpemilik yang Anda gunakan, tetapi tidak masuk akal untuk mengharapkannya. Anda membuat kode penelitian yang kompatibel dengan perangkat lunak open-source hanya karena itu open-source.

[Selain itu, selain berbicara tentang reproduksibilitas perangkat lunak ketika beberapa di antaranya adalah hak milik, saya pikir pertanyaan yang lebih mendasar perlu ditangani terlebih dahulu: apakah perangkat lunak memberikan hasil yang dapat direproduksi di berbagai instalasi yang berbeda (misalnya, untuk arsitektur dan versi kompiler? Misalnya, kesalahan pembulatan dan perbedaan alokasi karena perbedaan jumlah prosesor berarti bahwa banyak perhitungan simulasi molekuler akan memberikan hasil yang berbeda hanya dengan mengubah jumlah prosesor yang termasuk dalam alokasi. (Rata-rata statistik harus mencapai sama tempat, tetapi lintasan mungkin dan mungkin akan berakhir sangat berbeda.)]

aeismail
sumber
2
Saya tentu saja setuju bahwa penelitian yang dapat direproduksi tidak mengharuskan penulis untuk menyediakan semua perangkat lunak yang diperlukan secara gratis. Namun, perangkat lunak yang tidak tersedia untuk umum sama sekali menimbulkan masalah. Salah satu tujuan dari gerakan penelitian yang dapat direproduksi adalah untuk membantu membangun kesadaran akan masalah ini di masyarakat, mendorong orang-orang untuk mempublikasikan kode penelitian, bahkan jika mereka tidak berencana untuk memberikan dukungan apa pun untuk itu, hanya demi reproduktifitas.
khinsen
2
Kode yang dijual secara komersial adalah kode yang masih tersedia. Jika tidak mungkin lagi mendapatkan lisensi, tentu saja itu masalah yang berbeda. Tetapi pembuat asli kode tidak harus menulis ulang kode untuk mengakomodasi perpustakaan lain hanya untuk tujuan reproduktifitas. (Ada argumen yang harus dibuat untuk kelayakan kode yang lebih besar dan penggunaan, tetapi argumen reproduktifitas tidak perlu prima facie diperlukan - meskipun bisa dikatakan cukup.)
aeismail
4

Saya tidak pernah berpendapat bahwa "penelitian yang dapat direproduksi" berarti bahwa sesama pembaca dan ilmuwan Anda hanya perlu mengklik "Jalankan" (atau kompilasi atau apa pun yang Anda miliki) untuk sepenuhnya mereproduksi hasil Anda. Jika tidak ada yang lain, itu akan mematikan penelitian siapa pun yang menggunakan paket analisis statistik eksklusif, atau membuat hal-hal "tidak dapat diproduksi kembali" jika dibuat untuk platform atau bahasa yang ketinggalan zaman. Atau dalam hal ini, seseorang ingin mereproduksi kode Anda, tetapi tidak mengerti / menggunakan bahasa yang Anda gunakan.

CrossValidated memiliki diskusi serupa tentang topik - apakah "direproduksi" berarti Anda dapat mereplikasi analisis saya pada data saya, atau bahwa percobaan itu sendiri dapat dijalankan kembali dari awal dan memberikan hasil konfirmasi. Tautannya ada di sini: /stats/14999/how-are-we-defining-reproducible-research

Saya pikir elemen yang lebih penting adalah untuk menggambarkan apa yang Anda lakukan pada tingkat di mana itu dapat dikodekan ulang oleh seseorang yang cukup tertarik, dan jika alat komersial digunakan, alat tersebut disebutkan. Karena itu melayani kepentingan mereplikasi percobaan dan memeriksa ulang kesalahan kode.

Fomite
sumber
2

Dalam kasus Anda, di mana Anda bahkan mungkin tidak memiliki hak untuk mendistribusikan kode apa pun yang Anda gunakan sama sekali, deskripsi yang sangat mendalam tentang algoritma mungkin yang terbaik yang dapat Anda lakukan. Bergantung pada seberapa kompleks kode Anda, seseorang mungkin dapat mereproduksi apa pun yang menarik bagi mereka dari alat apa pun yang tersedia.

Kalau tidak, tanyakan sekitar dan lihat berapa banyak pekerjaan Anda yang Anda boleh lepaskan, dan kemudian lepaskan.

Dan
sumber
Banyak dari ini berasal dari percakapan obrolan ini .
Dan
1

Cara terbaik untuk melakukan penelitian yang dapat direproduksi adalah dengan tidak mengandalkan apa pun yang berumur pendek seperti kode khusus pada platform tertentu. Kemarin kami menghitung pada kartu yang dilubangi, hari ini pada elektron dalam silikon, besok mungkin dengan laser dengan protein atau bahkan sel hidup, lusa pada titik kuantum, dan siapa yang tahu apa yang akan terjadi minggu depan.

Penelitian yang dapat direproduksi harus membuat konsep dan gagasannya jelas dan tidak mempromosikan alat yang saat ini tersedia seperti perangkat keras atau perangkat lunak ke prasyarat untuk mereproduksi hasil penelitian. Algoritma yang digunakan harus dirinci dalam bentuk universal yang jelas; versi terkini dari paket perangkat keras, kompiler atau perangkat lunak tertentu hanya dapat digunakan sebagai alat untuk menunjukkan hasil penelitian.

Dominik Lark
sumber
Saya pikir kita membutuhkan keduanya - konsep dan ide untuk pemahaman manusia dan interpretasi jangka panjang, dan kode untuk verifikasi jangka pendek.
khinsen
1

Menerbitkan kode Fortran yang dihasilkan terdengar seperti solusi yang sangat baik dalam kasus Anda.

Sebagai aturan umum, saya berpikir bahwa penggunaan perangkat lunak yang tidak dipublikasikan tidak sesuai dengan tujuan penelitian yang dapat direproduksi. Itulah salah satu alasan mengapa saya melihat penelitian yang dapat direproduksi sebagai tujuan jangka panjang dan bukan sesuatu yang harus segera diterapkan.

khinsen
sumber
1

Saya bekerja untuk Elsevier. Perusahaan saya telah mulai menggunakan kerangka kerja Collage (dikembangkan sebagai tanggapan terhadap Tantangan Besar Kertas yang Dapat Dieksekusi) dalam masalah jurnal untuk memungkinkan penulis untuk mempublikasikan potongan kode yang dapat dieksekusi dengan artikel mereka. Fitur ini memudahkan pembaca untuk mereproduksi hasil yang dilaporkan dalam artikel dan menggunakan kembali materi yang dipublikasikan untuk penelitian mereka sendiri. Collage mendukung berbagai macam perangkat lunak berpemilik, selain perangkat lunak sumber terbuka; informasi lebih lanjut dapat ditemukan di video informasi di sini dan di Situs Web Collage Authoring Environment .

Hylke Koers
sumber