Как организовать набор научных экспериментов с помощью Git
Я запускаю эксперименты на модели с рабочим процессом следующим образом:
- Я работаю в модели (программное обеспечение на Python)
- Я изменяю некоторые параметры и запускаю эксперимент
- Затем я сохраню результаты эксперимента (в виде рассола).
- Затем я проанализирую результаты (маринованные), используя другое программное обеспечение (IPython Notebooks).
Я использую Git и научную воспроизводимость в качестве руководства, где результаты эксперимента хранятся в таблице вдоль хэша коммита. Я хотел бы сохранить результаты в каталоге вместо этого, назвав каталоги как хэши.
Думая о контроле версий, я хотел бы выделить code
и analysis
. Например, изменение цвета в графике в ноутбуке IPython в analysis
не должно ничего менять в code
Подход, о котором я думаю:
Структура каталогов:
model
- code
- simulation_results
- a83bc4
- 23e900
- etc
- analysis
и разные репозитории Git для code
и analysis
, оставив simulation_results
из Git.
Любые комментарии? Лучшее решение? Спасибо.
Ответы
Ответ 1
Это кажется звуковым, и ваша структура была бы хорошей возможностью для использования git submodules
, model
становясь родительским git репо.
Таким образом, вы будете связывать code
и analysis
SHA1 в репозитории model
.
Это означает, что вы можете создать свой каталог в личном (то есть не версированном) каталоге model/simulation_results
на основе SHA1 из model
repo ( "родительское" репо): что SHA1 связывает SHA1 как project
, так и analysis
, что означает, что вы можете точно воспроизвести эксперимент (основанный на точном содержании как project
, так и analysis
).