From a44fe7f0499dd3d9df41c6516a19e1d708364619 Mon Sep 17 00:00:00 2001
From: Nick Ulle A research project is reproducible if a different researcher can carry out
the same analysis with the same data and produce the same overall result.
Reproducibility enables independent verification, a touchstone for all
-research. Contents
Tip
+You always have at least one collaborator: future you! Work you did in the past +can be as challenging to navigate as work from someone else. So even if you +don’t plan to collaborate with anyone else, it can still be helpful to adopt +good practices for reproducible and collaborative research.
+Almost all contemporary research projects involve computing—whether that means creating and storing digital documents, developing code for small analyses that run for a few minutes on a laptop, or developing code for large diff --git a/chapters/02_core.html b/chapters/02_core.html index f3f8158..bea8a18 100644 --- a/chapters/02_core.html +++ b/chapters/02_core.html @@ -492,12 +492,14 @@
We recommend keeping notes digitally rather than on paper because editing, -searching, and copying are all much easier, although paper notes are better -than no notes, and there are ways to digitize them later. If you do keep -digital notes, consider whether you’ll need to include figures, code, or other -media in the notes, and choose an appropriate format. At DataLab, two formats -we frequently use are Google Docs and Markdown.
+Whether you take notes on paper or digitally, the important thing is that you +take notes. Paper notes are convenient for diagramming and doodling, and can be +digitized after the fact to share with the team. Digital notes are convenient +for collaborating with team members who aren’t physically present, and can be +shared as they are being written. When you start a notes document, make sure to +consider whether you’ll need to include figures, code, or other media, and +choose an appropriate format. At DataLab, we frequently use paper notes, Google +Docs, and Markdown.
If you have collaborators, take notes about your meetings. Record anything @@ -519,12 +521,29 @@
A README is a document that introduces and explains a project or directory
within a project. READMEs should generally be plain-text (.txt
) or Markdown
(.md
) files, because these are non-proprietary formats accessible to anyone
with a text editor. READMEs help people—including future you—find and use
your project.
A project should always have a README in the top level directory to serve as an +
Tip
+Each time you start a new project, create a new directory for the project. Use +this project directory to store all files related to the project. This +directory is sometimes also called the top-level directory for the project, +since all files for the project exist beneath it.
+Section 2.3.2 elaborates on this idea.
+A project should always have a README in the top-level directory to serve as an introduction. The top-level README will often be the first thing someone new to the project sees. At a minimum, the top-level README should contain:
A top-level README is usually sufficient documentation for projects with a shallow directory structure and where methodology is published elsewhere (such as journal articles or technical reports). For projects with a deep directory @@ -727,12 +753,6 @@
Choose filenames that are human-readable, machine-readable, and have a meaningful order when sorted alphabetically. Many data scientists recommend the following rules for naming files:
@@ -743,13 +763,20 @@Use underscores _
to separate fields (distinct pieces of information, such
as dates and descriptions)
Use dashes -
to separate words within fields
Write dates and times in ISO 8601 format (see +
Write dates and times in ISO 8601 format, which orders units from
+largest to smallest (for example, year-month-day as in 2023-09-20
; also see
Figure 2.1)
Pad numbers with leading zeros to the width of the largest number you anticipate
At DataLab, we follow these rules for almost all of our projects, with some simplifying exceptions around how we use underscores and dashes.
+See also
The rules in this section are based on Jenny Bryan’s How to Name Files
@@ -826,7 +853,7 @@ Create a separate, dedicated directory, often called a repository, for each
of your projects. Store everything related to the project there. This will make
it easier to find files and also to share specific projects with others. Use
@@ -835,9 +862,9 @@ 2.3.1.2. Names in Code
-
2.3.2. Establish a Directory Structure#
+2.3.2. Establish a Directory Structure#
2.3.2. Establish a Directory Structure
data/
for data setsdocs/
for documentssrc/
for code in scripts (such as .R
or .py
files). R scripts
-conventionally belong in R/
instead, because of how R’s packaging
-mechanisms worksrc/
for code in scripts (such as .R
or .py
files). The abbreviation
+src
is short for “source code”. R scripts conventionally belong in R/
+instead, because of how R’s packaging mechanisms worknotebooks/
for code in notebooks (such as RMarkdown or Jupyter notebooks)outputs/
for results (data, models, figures, etc.)2.4. Workflow Automation1. Principles of Reproducibility","2. Core Practices","3. Case-by-case Core Practices","4. Case-by-case Practices","Overview","References"],titleterms:{"case":[2,3],"function":1,For:1,It:1,On:[0,3],action:3,an:2,artifact:[1,2,3],autom:[1,2,3],backup:1,build:3,choos:2,clean:2,cloud:3,code:[1,3],collabor:[0,1],comput:[1,4],configur:2,contain:3,continu:3,control:[1,3],convent:1,core:[1,2],data:[2,3],databas:3,diagram:3,directori:1,document:[1,2,3],effect:2,environ:[2,3],establish:1,everi:2,experi:2,file:[1,2],format:2,github:3,go:3,goal:4,integr:3,issu:3,keep:1,learn:4,licens:2,lint:3,log:3,machin:3,make:[1,3],manag:[2,3],manifest:1,modular:1,name:1,note:1,orchestr:2,organ:[1,2,3],output:3,overview:4,packag:3,plan:3,practic:[1,2,3],prerequisit:4,preserv:[1,2,3],principl:0,project:[1,2,3],readm:1,refer:5,reproduc:0,requir:4,run:1,save:2,scope:1,script:2,shell:2,start:1,structur:1,system:3,test:3,track:3,unit:3,us:[1,2,3],version:[1,3],virtual:3,workflow:[1,2,3],write:1}})
\ No newline at end of file
+Search.setIndex({docnames:["chapters/01_principles","chapters/02_core","chapters/03_case_by_case_core","chapters/04_case_by_case","chapters/index","chapters/references"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["chapters/01_principles.md","chapters/02_core.md","chapters/03_case_by_case_core.md","chapters/04_case_by_case.md","chapters/index.md","chapters/references.md"],objects:{},objnames:{},objtypes:{},terms:{"09":1,"1":[0,1],"1960":1,"2":[0,1],"20":1,"2023":1,"2024":3,"3":1,"365":1,"4":1,"8":1,"8601":1,"93":1,"abstract":[0,1],"boolean":1,"break":1,"case":[0,1],"class":[0,1],"do":[0,1,2,4,5],"final":2,"function":[0,2],"goto":1,"import":[0,1,2,3],"long":[1,2],"new":[0,1,2],"p\u00e9rez":5,"public":1,"return":1,"short":[1,2],"switch":[1,2],"try":[0,1,2],"while":[0,1],A:[0,1,2,4],As:[1,2,4],At:[1,2],Be:1,By:[0,2],For:[0,2],If:[1,2,3],In:[0,1,2],Is:[1,3],It:[0,2,3],No:4,Of:1,On:1,One:[0,1,2],That:2,The:[0,1,2,4,5],Then:[1,2],There:[1,2,4],These:[0,1,2],To:[1,2,4],With:1,_:1,abbrevi:1,abl:[1,4],about:[0,1,2,3,4,5],academ:0,accent:1,access:[1,2,4],accessori:2,accident:[1,2],accompani:4,achiev:1,across:[1,2],action:[0,1],activ:[1,4],actual:1,ad:1,adapt:2,add:1,add_offset:1,addit:[0,1,4],address:[0,1,5],adjust:[1,2],adopt:[0,1,2,3,4],advantag:[1,2,4],affect:2,affili:1,after:[1,4],against:2,akin:2,all:[0,1,2,4],allow:[0,1],almost:[0,1],alon:1,alongsid:2,alphabet:1,alreadi:[1,2],also:[0,1,2,4],altern:1,although:1,alwai:[0,1],ambigu:0,among:[1,2],amount:[1,2],an:[0,1,4,5],analys:[0,1,2,3],analysi:[0,1,4],analyz:1,ani:[0,1,2],anoth:[1,2],answer:2,anticip:1,anyon:[0,1,2],anyth:[1,2],apach:2,appear:1,appli:[1,2],applic:[1,3],appreci:0,approach:[0,1],appropri:[1,2],approxim:3,ar:[0,1,2,3,4,5],aren:[0,1,2,3],around:1,arrow:2,art:2,articl:[1,5],artifact:0,aspect:0,assign:2,assist:0,assumpt:[1,2],attempt:0,attend:1,attent:1,audienc:1,author:[0,1],autom:0,avail:[0,1,2],avoid:[0,1,2],awai:[1,2],back:[1,3],base:[0,1],basement:5,basic:[1,5],becaus:[1,2],becom:[0,1],been:2,befor:[0,1],begin:1,being:[1,2],belong:[0,1],beneath:1,benefici:2,benefit:[0,1,2,4],berkelei:5,besid:[1,2],best:[0,1,5],better:[1,2],between:[1,2],bias:[1,2],big:[0,1],binari:2,bitbucket:1,blog:5,board:0,bob:1,both:[0,1,2],box:1,brain:1,brief:[1,3],bring:0,broadli:3,brown:5,bryan:1,bug:[1,2,3],build:4,built:1,bundl:1,burden:1,c:[1,5],cabinet:1,cach:1,call:1,camelcas:1,can:[0,1,2,3,4],capabl:1,capit:1,care:1,carefulli:[0,2],carri:[0,1,2,4],categori:2,caus:1,ceas:2,certain:[0,2,3],challeng:[0,1],cham:0,chanc:1,chang:[0,1,2],chapter:[0,1,2,3],charact:1,cheap:0,check:[1,2,3],chicago:1,choic:2,choos:1,choosealicens:2,chosen:1,claim:2,clarifi:1,clariti:1,clean:1,clear:1,clearer:1,clearli:0,click:[],close:1,cloud:1,cluster:0,code:[0,2,4],coexist:2,collabor:[2,4,5],collect:[0,1,2],column:5,com:2,combin:[0,1],come:2,comfort:1,comma:2,command:[0,1,2],comment:[0,1],common:[0,1,2],commun:[1,2,5],compar:[1,2],compel:1,complet:[1,3,4],complex:[0,1],complic:0,compon:1,comput:[0,2,3,5],concept:1,concern:[1,2],concret:1,conda:2,confer:4,consensu:1,consequ:[0,2],consid:[0,1],consist:[1,2],constant:1,constraint:1,consult:[1,4],contact:1,contain:[1,2],container:4,contemporari:0,content:[1,2],context:1,continu:[1,2],contrast:0,contribut:1,contributor:1,control:[2,4],conveni:[1,2],convent:[0,4],convention:1,cookiecutt:1,copi:[1,2],core:[0,3],correct:[0,1,2],correctli:[1,2],corrupt:1,cost:[0,1,2],could:2,coupl:1,cours:[1,5],cover:[0,1,2,3,4],creat:[0,1,2,3],creativ:2,critic:1,crystal:[],csv:2,cultur:1,d:1,dai:[0,1],daili:1,dash:1,data:[0,1,4,5],databas:1,datalab:[0,1,2,3,4,5],date:[1,2],davi:1,de:2,dead:1,debug:3,decid:1,deciph:4,decis:[0,1],dedic:1,deep:1,deeper:0,defer:0,defin:1,definit:1,delet:1,delimit:1,demand:[],depend:2,deploi:0,deriv:2,describ:[1,4],descript:[0,1,2],design:[1,2],desktop:1,detail:[0,1,2,4],determin:[0,2],dev:1,develop:[0,1,2],diagnost:0,diagram:1,dib:[2,3],did:[0,1],didn:2,differ:[0,1,2,4],difficult:[0,1,2],digit:[0,1],direct:1,directori:[0,4],disadvantag:[1,4],disciplin:1,discov:2,discuss:[0,5],displai:1,distinct:[1,2],distinguish:1,distribut:[0,1,2],divid:[0,1],doc:1,document:[0,4],doe:1,doesn:[1,2],don:[0,1,2],done:2,doodl:1,dot:1,dougla:1,down:[1,2],download:1,drive:1,driven:5,dropbox:1,dure:1,each:[0,1,2],earli:1,earlier:[0,1,2],eas:1,easi:[0,1],easier:[0,1,2,4],easili:[1,2],ecosystem:[1,2],edg:1,edit:[1,2],editor:[1,2],educ:1,effect:1,effici:[1,2],effort:[0,1,2,3],either:1,elabor:1,elimin:2,els:[0,1,2],elsewher:[0,1],email:1,embarrass:1,embed:2,emphas:1,enabl:[0,1,4],encourag:[0,1],end:[1,2],engag:1,engin:[0,1],enorm:1,enough:5,ensur:[1,2,4],entri:[1,2],environ:[0,1,4],equival:[1,5],error:[1,3],especi:[0,1,4],essai:1,essay_edit:1,essay_fin:1,essay_final_for_r:1,essenti:[1,3],establish:0,etc:1,ethic:[1,2,5],evalu:4,even:[0,1,2,3],eventu:1,ever:1,everi:[0,1],everyon:1,everyth:1,exactli:1,examin:1,exampl:[0,1,2],excel:[1,5],except:[1,2],exclus:2,execut:2,exist:[0,1,2],expect:[0,1],experi:[0,1,3,4],expert:1,explain:[1,4],explicit:[0,1],explicitli:2,explor:1,express:1,extend:2,extens:1,extern:1,facil:1,facilit:4,fact:1,facto:2,fail:[1,2],faq:2,far:1,fare:2,fast:2,faster:[1,2],fd:1,feather:2,featur:[1,2],fee:1,feedback:1,feel:[1,3],felienn:1,fernando:5,few:[0,1,2,5],field:1,figur:[0,1],file:[0,3,4],filenam:1,fill:[1,2],find:[0,1,2],finish:[1,2],first:1,five:[0,1],flexibl:[0,1,2],focu:1,focus:[0,1],folder:1,follow:[0,1],form:1,format:[0,1],found:1,four:1,fourteen:5,frequent:[1,2],friendli:1,from:[0,1,2,3],fulli:1,fund:1,further:1,futur:[0,1,2],gap:[1,2],gener:[0,1,2],get:[0,1,2],get_:1,git:1,github:[1,2],gitlab:1,give:2,given:4,go:1,goal:[0,1],good:[0,1,2,5],googl:1,got:3,grant:2,graphic:1,great:0,ground:1,group:[0,1],grow:1,guess:1,guid:[1,2,5],guidelin:1,ha:[0,1,2],habit:[0,1,2],had:2,hand:[0,1],handbook:5,handl:1,hard:1,harder:1,hardwar:[0,1,2,4],has_:1,have:[0,1,2,5],haven:1,help:[0,1,2,4,5],here:[0,1,2,5],herman:1,hesit:1,hi:[],hidden:2,hide:1,hierarchi:1,high:[0,1,2],higher:0,highli:1,highlight:4,histori:1,hit:1,hoc:1,host:1,how:[0,1,2,3],howev:1,human:[1,2],i:1,idea:[0,1,2],identifi:[1,4],imag:1,immedi:1,impact:2,impenetr:1,implement:2,impli:1,imposs:1,improv:2,includ:[0,1,2,4],incorrect:2,increment:[1,2],indent:1,independ:[0,4],index:1,indic:1,individu:1,infer:1,inform:[0,1],initi:2,inlin:1,input:[0,1],inspect:[1,2],inspir:5,instal:[0,1,2],instanc:[1,2],instead:1,instruct:[1,3],integr:1,intellig:1,intend:4,interact:2,interest:[0,2],interfac:1,intermedi:[2,3],introduc:1,introduct:[1,2,3],intuit:1,invalid:1,invalu:1,invers:1,investig:1,involv:[0,1],is_:1,isn:[1,2],iso:1,isol:1,issu:[1,5],item:1,iter:2,its:[1,2],ivori:5,j:1,jargon:0,jenni:1,jl:1,join:1,jone:1,jorg:0,journal:[1,5],judici:1,julia:[1,2],jupyt:1,just:[0,1,2],k:1,karlton:1,kebab:1,keep:[0,2],kind:[0,1,2,3],know:[0,1,5],knowledg:3,known:2,lab:[2,3,5],lack:1,lai:1,languag:[0,1,2],laptop:[0,1],larg:0,larger:1,largest:1,last:1,late:1,later:[0,1,2],latex:1,lead:1,learn:[1,2,3],learner:4,least:[0,1],leav:0,legal:2,length:1,less:[1,2],lessen:1,let:1,letter:1,level:[1,2,4],libreoffic:1,licens:[0,1,3],like:[0,1,2,3],limit:1,line:[1,2],link:1,list:[1,2],littl:2,live:5,ll:[0,1,2],load:1,lock:1,log:1,longer:1,loop:1,lose:1,lot:[0,1],low:[0,2],lowercas:1,macdonald:1,machin:[0,1],made:2,mai:[0,1,2,4],mail:1,main:1,maintain:2,major:[1,2],make:[0,2,4],manag:[0,1,4],mandat:2,mani:[0,1,2,3,4,5],markdown:1,markup:1,martin:1,master:3,materi:2,matur:1,md:1,me:[1,2,3],mean:[0,1,2],meaning:1,measur:1,mechan:1,media:[1,2],meet:[0,1],member:[1,2,5],metadata:2,method:1,methodolog:1,meticul:[1,2],microsoft:1,might:[0,1,2,5],mileston:[0,1],mind:1,minim:1,minimum:1,minut:0,miss:1,misunderstand:1,mix:1,model:[1,2],modern:1,modifi:2,modul:[0,1],month:1,more:[0,1,2,3],moreov:1,most:[0,1,2],mostli:[1,2],move:1,much:[0,1],multi:1,multipl:1,munro:[0,1,2,3],must:2,myriad:4,name:[0,2,4],navig:0,neat:1,necessari:[0,1,4],necessarili:[1,2],need:[0,1,2,4,5],neg:1,neglect:1,netscap:1,never:[0,1,2],nevertheless:1,next:[0,1,2,3],non:[1,4],note:[0,2],notebook:[0,1],notic:2,now:[1,2],number:[1,2],numer:1,numpi:1,numref:[],object:1,observ:[1,2],obtain:0,obvious:1,occasion:[1,3],offer:3,offic:1,offici:1,often:[0,1,2,4,5],old:[0,1],older:2,onc:1,one:[0,1,2],onedr:1,ones:[0,1,5],onli:[0,1,2],onlin:5,open:[1,2,5],optim:1,optimist:0,option:1,order:[0,1,2],organ:0,origin:[0,1,2],other:[0,1,2,4,5],our:[1,2],out:[0,1,2,4],outlin:1,output:[0,1],outsid:1,outweigh:[1,2],over:[0,1,2],overal:[0,2,4],overlook:0,overview:[2,3],own:2,packag:[0,1,2,4],pad:1,page:[1,2],pai:1,panda:1,pandoc:1,paper:1,paramet:[1,2],paraphras:1,parquet:2,part:[0,1,2],particular:[0,1],particularli:2,passeng:1,past:[0,1,2],pattern:1,peopl:[0,1,5],pep:1,perceiv:[],perfect:2,perform:[0,1],perhap:[],permiss:2,person:[],perspect:[0,1],peyton:1,phil:1,physic:1,pi:1,pictur:1,piec:1,pile:0,place:0,plain:[1,2],plan:[0,1,2],platform:1,plot:1,point:1,popular:1,posit:1,possess:2,possibl:[0,1,2],potenti:1,practic:[0,4,5],predict:[1,2],prefer:[1,2],prefix:1,preprocess:1,present:[1,2],preserv:0,previou:3,primari:[1,2],principl:1,print:0,prior:4,privaci:1,privat:1,probabl:1,problem:[1,2],process:[0,1,4],produc:[0,1,4],product:2,program:[0,1,2,4],programm:1,progress:3,project:[0,4],promis:[1,2],prone:1,proport:1,propos:1,proprietari:1,protect:2,prototyp:1,provid:[1,2,4],publicli:2,publish:[1,2],punctuat:1,purpos:1,put:1,py:1,python:[0,1,2,3],qualiti:1,quarter:3,quarto:1,queri:3,question:1,quickli:[0,1,2],r:[1,2,3],rail:1,randal:[0,1,2,3],rather:[0,1],ratio:0,rational:1,re:[0,1,2,3],reach:1,reactiv:1,read:[1,2,3],read_data:1,readabl:[1,2],reader:[0,1,2,3,5],readi:3,readm:[2,3],realiz:1,reason:1,recent:1,recommend:[1,2],record:[0,1,2],recov:1,recreat:[0,2],redistribut:0,reduc:1,redund:2,refer:[0,1,2,4],regardless:[0,1],rel:[1,4],relat:[0,1,5],relev:[0,1,2,4],reli:2,remain:1,rememb:[0,1],remot:2,remov:2,renv:2,reorgan:1,repeat:[1,2],repeatedli:1,repetit:0,replac:1,report:1,repositori:1,reproduc:[1,2,3,4,5],requir:[0,1,2,3],research:[0,1,2,3,4,5],resourc:1,respect:[1,2],respons:[1,2],result:[0,1,2,4],retain:2,reus:[0,1],reusabl:1,revisit:0,rewind:0,richer:1,ripgrep:1,rmarkdown:1,robert:1,rotat:1,rough:1,rule:1,run:[0,2],run_simul:1,s:[0,1,2,3,5],sai:1,same:[0,1,4],satisfi:[1,2],save:1,scalabl:1,scale:1,schedul:1,scienc:[1,2,5],scientif:[1,5],scientist:[1,5],scipi:1,scope:0,scratch:0,screen:1,script:[0,1],search:1,section:1,see:[1,2,3],seem:1,select:2,self:0,send:1,sens:2,sent:1,separ:[1,2],sequenc:[1,2],seri:1,serv:[1,2],server:1,servic:1,set:[0,1,2],set_:1,setup:1,sever:[0,1,2,5],shallow:1,share:[0,1,2],sheet:1,ship:1,shorter:1,shot:1,should:[0,1,2,4],show:1,side:1,similarli:1,simon:1,simpl:1,simpler:2,simpli:[],simplifi:1,simul:[0,2],simultan:0,sinc:[0,1,2],singl:[0,1],situat:1,skill:5,skim:1,skip:[0,2],slow:1,slurm:1,small:[0,1,2],smaller:1,smallest:1,snake_cas:1,snakemak:3,snippet:1,so:[0,1,2,4],softwar:[0,1,2,4],solv:1,some:[0,1,2,3],someon:[0,1,2],someth:[0,1,2],sometim:1,soon:2,sort:[0,1],sound:1,sourc:[1,2,5],space:1,span:1,special:1,specif:[0,1,2,3,4],specifi:2,spend:1,spreadsheet:[1,2],sql:3,squash:3,src:1,stabil:1,stabl:2,stackoverflow:1,stage:1,stai:1,standard:[1,2],start:[0,2],state:0,statist:[1,2],stego:1,step:[0,1,4],stick:1,still:[0,1,3],stop:1,storag:[0,2],store:[0,1,2],strength:1,strict:[],structur:[0,2],studi:1,style:1,sub:1,subdirectori:1,subsequ:1,substanti:[1,3],suffici:1,suggest:3,suit:1,summar:1,summari:1,supplement:1,support:[1,2],suppos:1,sure:[0,1,2],surpris:1,survei:1,suspect:1,symbiot:0,symbol:1,sync:1,syntax:1,system:[1,4],t:[0,1,2,3],tabl:1,tabular:[1,2],take:[0,1],taker:1,task:[0,1,2],team:1,technic:[0,1,2,3,4],tediou:0,tell:1,templat:1,ten:1,tend:1,term:[0,2],test:[0,1,2,4],text:[1,2],than:[0,1,2],thei:[0,1,2,3,4],them:[0,1,2,4],thi:[0,1,2,3,4,5],thing:[0,1,5],think:[0,1,2,5],thorough:2,those:2,thought:0,thousand:1,three:[0,1,2],through:[1,2],throughout:1,thu:1,tidi:1,tidyvers:1,time:[0,1,2,3],timelin:[0,1],titl:1,titu:5,toml:2,too:[0,1,2],tool:[0,1,2,3,4],toolkit:[1,3],top:1,touch:5,touchston:[0,4],toward:2,toy_data:1,track:[1,2],train:[1,2],translat:0,transpar:[2,4],tri:1,trove:2,ture:[1,5],turn:[0,1],two:[0,1],txt:1,type:[1,2],typic:1,u:1,uc:[1,5],unambigu:[0,1],uncl:1,uncov:1,under:[1,2],underscor:1,understand:[0,1,2],uniqu:[1,2],unit:1,unix:2,unless:[0,1,2],unnecessarili:2,until:1,untrack:[],up:[1,2],updat:[1,2],upload:0,upper_snake_cas:1,uppercamelcas:1,uppercas:1,us:[0,4],user:[0,1],usual:[0,1,2],valu:[1,2],variabl:1,varieti:[1,2],variou:[0,2],ve:[1,3],verb:1,veri:[0,1],verif:[0,4],verifi:0,versa:1,version:[0,2,4],via:2,vice:1,virtual:[2,4],visual:1,wa:[2,5],wai:[0,1,2,3,4,5],want:[0,1,2,3],we:[1,2,3,5],weak:1,web:1,week:1,weekli:1,well:[0,1,2],were:[0,1,2,4],what:[0,1,2],whatev:1,when:[0,1,2,3,4],whenev:1,where:[1,2],whether:[0,1,2,4],which:[0,1,2,4,5],who:1,wide:[1,2,4],widespread:0,width:1,wikipedia:1,window:1,winter:3,within:1,without:1,won:1,word:1,work:[0,1,2,3],workflow:0,workshop:[1,2,3,4],world:2,worth:[0,1,3],would:2,wouldn:1,write:[0,2,3,4],written:[1,2,5],x:1,xkcd:[0,1,2,3],yaml:2,year:1,you:[0,1,2,3,4,5],your:[0,1,2,3],yourself:[1,2],zero:1,zotero:1},titles:["1. Principles of Reproducibility","2. Core Practices","3. Case-by-case Core Practices","4. Case-by-case Practices","Overview","References"],titleterms:{"case":[2,3],"function":1,For:1,It:1,On:[0,3],action:3,an:2,artifact:[1,2,3],autom:[1,2,3],backup:1,build:3,choos:2,clean:2,cloud:3,code:[1,3],collabor:[0,1],comput:[1,4],configur:2,contain:3,continu:3,control:[1,3],convent:1,core:[1,2],data:[2,3],databas:3,diagram:3,directori:1,document:[1,2,3],effect:2,environ:[2,3],establish:1,everi:2,experi:2,file:[1,2],format:2,github:3,go:3,goal:4,integr:3,issu:3,keep:1,learn:4,licens:2,lint:3,log:3,machin:3,make:[1,3],manag:[2,3],manifest:1,modular:1,name:1,note:1,orchestr:2,organ:[1,2,3],output:3,overview:4,packag:3,plan:3,practic:[1,2,3],prerequisit:4,preserv:[1,2,3],principl:0,project:[1,2,3],readm:1,refer:5,reproduc:0,requir:4,run:1,save:2,scope:1,script:2,shell:2,start:1,structur:1,system:3,test:3,track:3,unit:3,us:[1,2,3],version:[1,3],virtual:3,workflow:[1,2,3],write:1}})
\ No newline at end of file