Co właściwie oznacza reproducjonalność
Rezultat jest powtarzalny, gdy ktoś inny, mając oryginalne nieprzetworzone dane i kod, może ponownie uruchomić analizę i uzyskać te same liczby, wykresy i wnioski bez potrzeby pytań do pierwotnego autorza wyjaśniających. To brzmi prosto, ale w praktyce często się nie spełnia, ponieważ analizy są często uruchamiane interaktywnie, z wykonaniem pośrednich kroków ręcznie, bez dokumentowanych wersji pakietów i edycją ręczną końcowych wykresów po uruchomieniu kodu. Reprodukcjonalność nie jest pojedynczym narzędziem, ale dyscypliną: od oryginalnych plików czujników po opublikowane wykresy, każda faza powinna istnieć jako kod, który można ponownie uruchomić od początku do końca.
Zysk ten przekracza spełnienie polityk reproducjonalności w czasopismach. Całkowicie skryptyzowany proces pozwala badaczowi ponownie uruchomić analizę całości sezonu w minutach, gdy zostanie zauważony błąd podczas wprowadzania danych, a nie ręcznie rekonstruować wykonane operacje, i pozwala nowemu członkowi laboratorium na przyjęcie kontynuowanego projektu bez godzin niezapisanych spotkań przejmowania obowiązków.
Rozpocztówka jako notatnik laboratorium dla kodu i danych
Git, pierwotnie zaprojektowany do rozwoju oprogramowania, działa równie dobrze jako system śledzący zmiany dla badań kodowych i małych do średnich zestawów danych. Każda znacząca zmiana w skrypcie analizowym lub zestawie danych jest zapisywana z krótkim komunikatem wyjaśniającym, co zostało zmienione oraz dlaczego, tworząc historię poszukiwalną odpowiadającą na powszechny pytanie 'kiedy się to stało i co spowodowało to' po miesiącu. Funkcja branchoingu pozwala badaczowi spróbować alternatywnego podejścia statystycznego bez zniszczenia bieżacego analizy, łącząc je z powrotem tylko po ich walidacji.
Standard Git ma trudności z dużymi plikami binarnymi powszechnie spotykającymi się w badaniach apiarzy, takimi jak nagrania akustyczne, obrazy termiczne lub długie logi telemetryczne czujników, ponieważ przechowuje pełne kopie każdej wersji w historii repozytorium, szybko rozszerzając je do nieprzejdziego rozmiaru. Git Large File Storage (Git LFS) rozwiązuje to, przechowyując lekki wskaźnik w repozytorium, podczas gdy rzeczywisty duży plik żywi się osobnym magazynem, dając tą samą historię wersji i korzyści z współpracy dla zestawów danych akustycznych lub obrazowych wielokilobajtowych bez bloatu.
Programowanie literackie: łączenie narracji i analizy
Narzędzia takie jak R Markdown (oraz jego podobne w stylu notatnika) pozwalają badaczowi na zanurzenie tekst opisowy, wykonywalny kod oraz jego wyniki, w tym tabele i wykresy, w jednym dokumencie, który odświeża pełny raport na podstawie oryginalnych danych przy każdym uruchomieniu. Ponieważ rysunki i statystyki w końcowym raporcie są generowane bezpośrednio przez wgrany kod zamiast wprowadzane ręcznie, staje się niemożliwe dla podanych liczb niespodziewanie odchodzić od danych podstawowych, co jest powszechną i trudną do wykrycia błąd w raportach zebrane ręcznie.
Zgodnie z systemem kontroli wersji, proces programowania literackiego oznacza, że każda przesłana praca naukowa lub raport może być powiązana z dokładnym, datowanym obrazem kodu i danych wygenerowanych przez niego. Recenzenci lub współpracownicy mogą sprawdzić ten obraz i ponownie uruchomić cały dokument, co jest coraz częściej wymagane przez finansujące organizacje i czasopisma podkreślające naukę otwartą i powtarzalną.
Pakowanie danych do ponownego użycia
Po osiągnięciu reproductywności pojedynczej analizy, strukturyzacja zakończonego zestawu danych jako prawidłowy pakiet danych sprawia, że jest użyteczny dla innych badaczy bez konieczności udziału oryginalnego autorów. W ekosystemie R to zwykle oznacza organizację czystych danych, dokumentacji każdego zmiennego i krótkiej wizytówki użycia w standardowej strukturze pakietu, który można zainstalować i załadować jak dowolna biblioteka oprogramowania, ze wstępnie zdefiniowanymi etykietami wersji, tak aby
wersja 1.2 zestawu danych apiarskiego z 2024 roku
Praktyki naukowe otwarte, które to połączone
Rejestracja hipotez i planów analiz przed zbieraniem danych, udostępnianie kodu oraz czystych danych wraz z publikacją, a także użycie identyfikatorów trwałych dla oprogramowania i zestawów danych są charakterystycznymi cechami nauk otwartych. Nie wymagają one eksotycznej infrastruktury; publiczny repozytorium kodu, wpis w repozytorium danych z identyfikatorem trwałym oraz krótkie dokument rejestracyjne są dostępne nawet dla małej grupy niezależnej badawczej lub naukowca amatorskiego prowadzącej porównanie między apiariami.
Efekt skumulowany w całej społeczności badawczej jest mocny: gdy wielu grup publikuje reprezentatywne, dobrze dokumentowane przepływy pracy i dane, meta-analizy i porównania między badaniami stają się znacznie łatwiejsze, ponieważ naukowcy spędzają czas na nowych pytanach zamiast odgadowywania, co oznaczały kolumny arkuszy elektronicznych poprzednich badań.
Często zadawane pytania
Czy muszę nauczyć się Git, jeśli używam tylko arkuszy kalkulacyjnych, nie kodu?
Git dodaje najwięcej wartości, gdy jakiekolwiek części przepływu pracy obejmują skrypty, ale nawet projekty polegające jedynie na arkuszach kalkulacyjnych mogą korzystać z prostego i zawsze takiego samego zwrotnika kopii zapasowej i wersjonowania; przeniesienie do lekkostrukturyzowanych skryptów czyszczenia, gdy umiejętności wzrosną, przyciąga więcej korzyści Git'a w ciągu czasu.
Dlaczego nie można prostym sposobem przechowywać dużych plików z sensorów bezpośrednio w normalnym repozytorium Git?
Git przechowuje pełny kopię każdego wersji każdego pliku w swojej historii, więc wielogigabajtowe nagrania akustyczne czy zestawy obrazów rozszerzają repozytorium do niewykonwalnej wielkości w kilku aktualizacjach; Git LFS unika tego przechowywując tylko lekki wskaźnik w repozytorium samego siebie.
Jakie jest praktyczne różnice między R Markdown a prostym pisaniem skryptu R?
Dokument R Markdown łączy wyjaśnienie narracyjne z kodem wykonowalnym i jego wynikami w jednym pliku, który odświeża całe raport na podstawie źródła, a skrypt pusty tworzy wyjście osobno, pozwalając na to, aby końcowy raport i podstawowe liczby mogły zasycić się ze sobą.
Czy rejestracja przed testem jest użyteczna tylko dla potwierdzających testów hipotez?
Rejestracja przed testem jest najbardziej wartościowa w przypadku testów potwierdzających, gdzie uniemożliwia pojawianie się po faktu reinterpretacji wyników, ale wielu badaczy również rejestrują szeroką konstrukcję badań eksploracyjnych, aby być otwartymi na to, które analizy były zaplanowane versus odkryte w trakcie.
Jakie jest korzyści z pakowania zestawu danych jako pakiet R zamiast udostępniania arkusza kalkulacyjnego?
Pakiet danych łączy czyszczone dane razem z dokumentacją, jednostkami i tagami wersji w standardowej, instalowalnej strukturze, dlatego użytkownicy dolinowi otrzymują zgodne, przetestowane obsługę danych zamiast potrzebować odnowienia pustego arkusza kalkulacyjnego od nowa.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Reproducible Research Workflows for Apiary Data Science i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację Reproducible Research Workflows for Apiary Data Science