독점 라이브러리가 필요한 경우 재현 가능한 연구를 수행하는 가장 좋은 방법은 무엇입니까?


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를 사용합니까?
Dan

DAEPACK은 CHEMKIN-II 소스 코드를 구문 분석하고 Jacobian 행렬, 희소성 패턴 및 간격 확장을 계산하는 서브 루틴이 포함 된 포트란 소스 파일을 생성합니다. 소스 코드는 수정하지 않습니다. 그런 의미에서 컴파일러와 같습니다.
Geoff Oxberry

DAEPACK의 출력이 CHEMKIN-II 소스를 수정 한 경우 왜 분배 할 수 있습니까?
Dan

파생 된 작품이지만 소스가 수정되었는지 확실하지 않습니다. 변수 이름은 복사되지만 그 주장에 의해 내가 작성한 많은 프로그램은 "수정 된 CHEMKIN-II 소스"입니다. 그 점을 확인해야합니다.
Geoff Oxberry

CHEMKIN-II 라이센스를 통해 수정되지 않은 소스를 자유롭게 배포하고 변경 배포 방법을 제한 할 수 있습니까? 온라인으로 라이센스 사본을 찾을 수 없습니다.
Dan

답변:


13

"재생 가능한 연구"의 정의는 저자가 얻은 결과를 재현하는 데 필요한 모든 도구를 무료로 제공해야한다고 생각하지 않습니다. 그중 일부가 독점적 인 경우 필요한 소프트웨어를 획득하기 위해 계약을 작성하는 것은 저자가 아닌 미래의 사용자에게 달려 있습니다. (다른 사람이 결과를 재현 할 수 있도록 소프트웨어를 구축 할 필요는 없 겠는가?) 물론 사용한 독점 소프트웨어의 릴리즈를 정확하게 지정해야 할 책임이 있지만, 기대하는 것은 부당합니다. 당신은 오픈 소스 소프트웨어 연구 코드가 호환되도록하는 단지 는 오픈 소스이기 때문이다.

[일부 소프트웨어가 독점적 일 때 소프트웨어의 재현성에 대해 이야기하는 것 외에도 더 근본적인 문제를 먼저 해결해야한다고 생각합니다. 소프트웨어는 다른 설치 환경 (예 : 다른 아키텍처 및 예를 들어, 프로세서 수의 차이로 인한 반올림 오차와 할당 차이는 많은 분자 시뮬레이션 계산이 할당에 포함 된 프로세서 수를 변경하는 것만으로도 다른 결과를 제공함을 의미합니다 (통계 평균은 동일해야 함). 장소, 그러나 궤도는 아마도 매우 다를 수 있습니다.)]


2
필자는 재현 가능한 연구로 모든 필수 소프트웨어를 무료로 제공 할 의무가 없다는 데 동의합니다. 그러나 공개적으로 제공되지 않는 소프트웨어에는 문제가 있습니다. 재현 가능한 연구 운동의 목표 중 하나는 재현성을 위해 사람들이 연구 코드를 지원할 계획이없는 경우에도 연구 코드를 공개하도록 장려하는 것입니다.
khinsen

2
상업적으로 판매되는 코드는 여전히 사용 가능한 코드입니다. 더 이상 라이센스를 얻을 수 없다면, 그것은 다른 문제입니다. 그러나 코드의 원래 작성자는 재현 목적으로 다른 라이브러리를 수용하기 위해 코드를 다시 작성할 필요는 없습니다 . (이 큰 코드의 생존과 사용을 위해 할 수있는 주장이지만, 재현성 인수는 아닌 명백한 필요 -이 충분한으로 주장 할 수 있지만.)
aeismail

4

"재생 가능한 연구"란 동료 독자와 과학자들이 결과를 완전히 재현하기 위해 "실행"(또는 컴파일 또는 무엇을해야 함)을 클릭해야한다는 의견을 들어 본 적이 없습니다. 그렇지 않다면 독점 통계 분석 패키지를 사용하는 사람의 연구를 중단 시키거나, 패션에서 벗어난 플랫폼이나 언어로 제작 된 경우 "복제 할 수없는"것이됩니다. 또는 그 문제로 누군가 누군가 코드를 재생하고 싶지만 사용하는 언어를 이해 / 사용하지 못합니다.

CrossValidated는 주제에 대해 비슷한 토론을했습니다. "재생 가능"이란 데이터에 대한 분석을 복제 할 수 있거나 실험 자체를 처음부터 다시 실행할 수 있으며 확인 결과를 제공 할 수 있음을 의미합니다. 링크는 다음과 같습니다 : /stats/14999/how-are-we-defining-reproducible-research

더 중요한 요소는 충분히 관심이있는 사람 이 코딩수있는 수준에서 수행작업 을 설명 하는 것이며 상업적 도구를 사용하는 경우 해당 도구를 언급하는 것입니다. 실험 복제와 코드 오류를 다시 확인하는 데 도움이되기 때문입니다.


2

귀하가 사용한 코드를 전혀 배포 할 권한이없는 경우에는 알고리즘에 대한 자세한 설명이 최선일 수 있습니다. 코드가 얼마나 복잡한 지에 따라 누군가는 사용 가능한 도구를 통해 원하는 코드를 재생할 수 있습니다.

그렇지 않으면, 주위에 물어보고 당신이 풀어 놓은 작품의 양을 확인한 다음 풀어 놓으십시오.


대화 는 대화 에서 비롯됩니다 .
Dan

1

재현 가능한 연구를 수행하는 가장 좋은 방법은 특정 플랫폼의 특정 코드와 같이 수명이 짧은 것에 의존하지 않는 것입니다. 어제 우리는 구멍을 뚫은 카드로, 오늘날 실리콘으로 된 전자에서, 내일은 단백질이나 심지어 살아있는 세포가있는 레이저에서, 내일은 양자점으로, 다음 주에는 무엇이 될지 누가 알 수 있는지 계산했습니다.

재현 가능한 연구는 개념과 아이디어를 명확하게하고 연구 결과를 재현하기 위해 하드웨어 나 소프트웨어와 같은 현재 사용 가능한 도구를 전제 조건으로 홍보하지 않아야합니다. 사용 된 알고리즘은 명확한 보편적 형태로 상세해야한다. 특정 하드웨어, 컴파일러 또는 소프트웨어 패키지의 현재 버전은 연구 결과를 보여주는 도구로만 사용할 수 있습니다.


인간의 이해와 장기 해석 가능성에 대한 개념과 아이디어, 단기 검증 코드가 모두 필요하다고 생각합니다.
khinsen

1

생성 된 포트란 코드를 게시하는 것은 귀하의 경우에 아주 좋은 솔루션 인 것 같습니다.

일반적으로 게시되지 않은 소프트웨어의 사용은 재현 가능한 연구 목표와 호환되지 않는다고 생각합니다. 이것이 바로 재현 가능한 연구를 즉시 적용해야하는 것이 아니라 장기 목표로 보는 이유 중 하나입니다.


1

Elsevier에서 일합니다. 우리 회사는 저널 이슈에서 실행 가능한 Paper Grand Challenge에 대한 응답으로 개발 된 Collage 프레임 워크를 사용하여 저자가 기사와 함께 실행 가능한 코드를 게시 할 수있게했습니다. 이 기능을 통해 독자는 기사에보고 된 결과를보다 쉽게 ​​재현하고 출판 된 자료를 자신의 연구에 재사용 할 수 있습니다. Collage은 오픈 소스 소프트웨어 외에도 다양한 독점 소프트웨어를 지원합니다. 자세한 내용은 여기 의 정보 비디오 및 콜라주 제작 환경 웹 사이트 에서 확인할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.