独自のライブラリが必要な場合、再現可能な研究を行う最良の方法は何ですか?


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
私は確かに、再現可能な研究が著者に無料で必要なすべてのソフトウェアを提供する義務を負わないことに同意します。ただし、一般に公開されていないソフトウェアには問題があります。再現性のある研究運動の目標の1つは、コミュニティでこの問題に対する認識を高め、再現性のためだけにサポートを提供する予定がなくても、人々が研究コードを公開することを奨励することです。
-khinsen

2
市販されているコードは、まだ入手可能なコードです。ライセンスを取得できなくなった場合、それはもちろん別の問題です。ただし、コードの元の作成者は、再現性の目的でのみ別のライブラリに対応するためにコードを書き換える必要はありません。(大きいコードの生存率と使用のために作られている引数がありますが、再現性の引数ではありません一応必要-それは十分であると主張することができるが。)
aeismail

4

「再現性のある研究」とは、読者や科学者が「実行」をクリックするだけで結果を完全に再現できることを意味するものではない、と私は考えたことはありません。それ以外の場合、それは独自の統計分析パッケージを使用する人の研究を殺すか、時代遅れになったプラットフォームや言語のために作られたものを「再現不可能」にします。またはそのことについては、誰かがあなたのコードを再現したいが、あなたが使用している言語を理解/使用していない。

CrossValidatedのトピックについても同様の議論がありました。「再現可能」とは、分析をデータに複製できること、または実験自体を最初から再実行して確認結果を提供できることを意味します。リンクはこちら:https : //stats.stackexchange.com/questions/14999/how-are-we-defining-reproducible-research

もっと重要な要素は、十分に興味のある人が書き直すことができるレベルであなたが何をしを記述することだと思います。商用ツールが使用された場合、それらのツールが言及されます。これは、実験の再現とコードエラーのダブルチェックの両方の目的に役立つためです。


2

あなたの場合、使用したコードをまったく配布する権利さえ持っていないかもしれないので、アルゴリズムの非常に詳細な説明があなたができる最善の方法かもしれません。コードの複雑さによっては、誰かが利用可能なツールから興味のあるものを再現できる場合があります。

そうでない場合は、周りに尋ねて、どれだけの作業をリリースできるかを確認してから、それをリリースしてください。


これの多くはこれから来ていますチャットの会話ます。
ダン

1

再現可能な研究を行うための最良の方法は、特定のプラットフォーム上の特定のコードのような短命に依存しないことです。昨日はパンチカードで、今日はシリコン中の電子で、明日はタンパク質または生細胞さえも含むレーザーで、明日は量子ドットで、そして来週は誰が計算するかを計算していました。

再現可能な研究では、その概念とアイデアを明確にし、ハードウェアやソフトウェアなどの現在利用可能なツールを研究結果を再現するための前提条件に昇格させないようにする必要があります。使用するアルゴリズムは、明確で普遍的な形式で詳述する必要があります。特定のハードウェア、コンパイラ、またはソフトウェアパッケージの現在のバージョンは、研究結果を実証するためのツールとしてのみ使用できます。


人間の理解と長期的な解釈可能性のための概念とアイデア、および短期検証のためのコードの両方が必要だと思います。
-khinsen

1

生成されたFortranコードを公開することは、あなたの場合には非常に良い解決策のように思えます。

原則として、未公開のソフトウェアの使用は、再現可能な研究の目標と両立しないと思います。それが、私が再現性のある研究を、すぐに適用する必要のあるものではなく、長期的な目標と考える理由の1つです。


1

私はエルゼビアで働いています。私の会社は、ジャーナルの問題でCollageフレームワーク(Executable Paper Grand Challengeに対応して開発された)の使用を開始し、作成者が記事とともに実行可能コードのチャンクを発行できるようにしました。この機能により、読者は記事で報告された結果を簡単に再現し、公開された資料を自分の研究に再利用できます。Collageは、オープンソースソフトウェアに加えて、さまざまな独自ソフトウェアをサポートしています。詳細については、こちらの情報ビデオおよびCollage Authoring Environment Webサイトをご覧ください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.