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?
sumber
Jawaban:
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.)]
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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 .
sumber