+ - 0:00:00
Notes for current slide
Notes for next slide

Making Data Available Alongside Research

Nicholas Tierney, Monash University
&
Karthik Ram, BIDS, UC Berkeley

University of Washington
Friday 14th February, 2020

bit.ly/njt-data-uw

nj_tierney

1

"Data! data! data!" he cried impatiently. "I can't make bricks without clay."

--Sherlock Holmes (The Adventure of the Copper Beeches by Sir Arthur Conan Doyle)

2

This talk represents work that is currently in progress with Karthik Ram:

"A Realistic Guide to Making Data Available Alongside Code to Improve Reproducibility"

Feedback, discussion, questions encouraged throughout talk!

3

We need data

4

We need data

We need it to do our job

4

We need data

We need it to do our job

(though not strictly true for theory, but you get what I mean)

4

Benefits of Sharing data

🔍 Makes work transparent

✅ Increases trust

🔈 Increases visibility

Independent validation

♻️ Reproducibility

5

Research isn't often shared

It's often really available to the authors

6

Why not share data?

There are indeed good reasons to not share data:

  1. Privacy concerns (e.g., human subjects, locations of critically endangered species)

  2. May put the authors at a competitive disadvantage ( but data can be embargoed for reasonable periods of time)

7

Why not share data?

"If you can't do something right, don't do it"

  • This ^^ is wrong - you can provide something, even if it is just simulated data.

  • Sharing data (in most cases) has a net positive benefit

8

Rowhani-Farid & Barnett, 2016

Out of 160 randomly sampled BMJ papers:

  • 3 included data in the paper
  • 7/157 research articles shared their data sets
  • For 21 clinical trials bound by the BMJ data sharing policy, 24% shared data
9

Stodden, Seiler and Ma, 2018

Science (the journal) made clause for Authors to provide data with papers

Authors evaluated reproducibility of 204 papers after clause issued.

10

Responses to Stodden, Seiler and Ma, 2018

11

Responses to Stodden, Seiler and Ma, 2018

😭

When you approach a PI for the source codes and raw data, you better explain who you are, whom you work for, why you need the data and what you are going to do with it.

12

Responses to Stodden, Seiler and Ma, 2018

🙍

I have to say that this is a very unusual request without any explanation! Please ask your supervisor to send me an email with a detailed, and I mean detailed, explanation.

13

Responses to Stodden, Seiler and Ma, 2018

😢

We do not typically share our internal data or code with people outside our collaboration.

14

Responses to Stodden, Seiler and Ma, 2018

😿

The code we wrote is the accumulated product of years of effort by [redacted] and myself. Also, the data we processed was collected painstakingly over a long period by collaborators, and so we will need to ask permission from them too.

15

Responses to Stodden, Seiler and Ma, 2018

😞

Normally we do not provide this kind of information to people we do not know. It might be that you want to check the data analysis, and that might be of some use to us, but only if you publish your findings while properly referring to us.

16

Responses to Stodden, Seiler and Ma, 2018

🙍

Thank you for your interest in our paper. For the [redacted] calculations I used my own code, and there is no public version of this code, which could be downloaded. Since this code is not very user-friendly and is under constant development I prefer not to share this code

17

Responses to Stodden, Seiler and Ma, 2018

🎉

Our program [redacted] is available here [URL redacted] (documentation and tutorials were included)

18

Responses to Stodden, Seiler and Ma, 2018

🎉

If you go to [URL redacted], under the publications, I have a link to the gitHub repository. I don’t know if I have all of the raw simulated data, but I certainly have the processed data used to make the plots. What do you need? All of the simulated data could of course be regenerated from the code.

19

Responses to Stodden, Seiler and Ma, 2018

🎉

Please find attached a .zip file called [redacted].zip that has the custom MATLAB [redacted] analysis code. If you run Masterrunfigureone.m this will generate several panels from the paper.

20

Responses to Stodden, Seiler and Ma, 2018

🎉

In the next email I will enclose the custom image analysis software. This can also be accessed from [URL redacted] where there is a manual and tutorial.

21

Sharing data?

Plenty of research says it is important

22

Sharing data?

Plenty of research says it is important

Fata sharing should be FAIR (findable, Accessible, Interoperable, and Reusable)

22

Sharing data?

Plenty of research says it is important

Fata sharing should be FAIR (findable, Accessible, Interoperable, and Reusable)

But, unfortunately, these don't precicely tell you how to share data

22

Why not share data?

Socio-Culture Barriers:

  • Misaligned Incentives
  • Cultural Norms
  • Genomics vs Clinical Trials
  • Scooping

Technological Barriers:

  • Where to start?
  • Google Drive?
  • Dropbox?
  • FTP?
23

Another way to think about sharing data

24

Another way to think about sharing data

24

It should instead be an "on-ramp"

It can feel like a wall or a mountain we need to climb.

These require special tools and knowledge.

An on ramp to sharing data

  1. Analysis ready data: Final data used in analysis
  2. README: A Human readable description of the data
  3. Data dictionary: Human readable dictionary of data
  4. Raw data: The original/first data provided
  5. Scripts: To clean raw data ready for analysis
  6. License: How to use and share the data
  7. Citation: How you want your data to be cited
  8. Machine readable meta data: Make your data searchable
25

Analysis ready data: Final data used in analysis

project
└── data
└── crime.csv
26

Analysis ready data: Final data used in analysis

project
└── data
└── crime.csv
  • Dataset(s) in the form used in analysis.
  • Ideally in "tidy data" form.
  • Plain-text format, .csv, .tsv, .txt
  • Binary formats discouraged
  • e.g., .rda, .rds, .sav, .dta
26

README: A Human readable description of the data

project
├── data
| └── crime.csv
└── README.md
  • Top level of the data repository, (optionally for each dataset)
  • Who, what, when, where, why
  • Guides how to understand directory.
  • Handy when no reliable standards
  • .md = take advantage of markdown
27

Data dictionary: Human readable dictionary of data contents

project
├── data
│ ├── crime.csv
│ └── crime-dictionary.csv
└── README.md
  • Human readable description, context, and structure of the data
  • Helps familiarise user with data
  • It should contain:
    • variable names
    • variable labels
    • variable codes, and
    • special values for missing data
28

Data Dictionary: Human readable dictionary of data contents

29

Raw data: The original/first data provided

project
├── data
│ ├── crime.csv
│ └── crime-dictionary.csv
├── data-raw
│ └── crime-raw.dat
└── README.md
  • usually first format of data provided before tidying or cleaning.
  • If the raw data is a practical size to share, share in folder data-raw.
  • Ideally: in form first received, even if binary / proprietary format.
  • (Optionion) include data dictionaries of raw data in data-raw.
30

Scripts: To clean raw data

project
├── data
│ ├── crime.csv
│ └── crime-dictionary.csv
├── data-raw
│ ├── crime-raw.dat
│ ├── clean-crime.R
│ └── other-steps.md
└── README.md
  • Code used to clean and tidy the raw data.
  • clean-crime.R
  • Ideally involves only scripted languages
  • If other practical steps were taken to clean up the data, these should be recorded in a plain text or markdown file.
  • other-steps.md
31

License: How to use and share the data

project
├── data
│ ├── crime.csv
│ └── crime-dictionary.csv
├── data-raw
│ ├── crime-raw.dat
│ ├── clean-crime.R
│ └── other-steps.md
├── README.md
└── LICENSE
  • Data + license clearly establishes how everyone to modify, use, and share data.
  • Two licenses well suited for data sharing:
  1. CCBY: enforce attribution and credit required, no warranty.
  2. CC0: public domain. No ownership or warranty
  • Provide LICENSE file with entire license in the top level of directory.
  • use_cc0_license()
  • use_ccby_license()
32

Citation: How to cite your data

project
├── data
│ ├── crime.csv
│ └── crime-dictionary.csv
├── data-raw
│ ├── crime-raw.dat
│ ├── clean-crime.R
│ └── other-steps.md
├── README.md (reference DOI)
├── CITATION
└── LICENSE
  • A Digital Object Identifier (DOI) uniquely + permanently identifies a digital object ( paper, poster, or software)
  • DOIs are minted by repositories like Dryad or Zenodo for free.
  • Put the DOI in a reference format like BibTex (zenodo does this for you)
33

Citation: example

@software{housing-data,
author = {Tony Pino, Nicholas Tierney},
title = {njtierney/melb-housing-data: Added LICENSE.md file},
month = feb,
year = 2019,
publisher = {Zenodo},
version = {1.0.1},
doi = {10.5281/zenodo.2575545},
url = {https://doi.org/10.5281/zenodo.2575545}
}
34

Machine readable meta data: Make your data searchable

project
├── data
│ ├── crime.csv
│ ├── crime-dictionary.csv
│ └── metadata
│ ├── access.csv
│ ├── attributes.csv
│ ├── biblio.csv
│ ├── creators.csv
│ └── dataspice.json
├── data-raw
│ ├── crime-raw.dat
│ ├── clean-crime.R
│ └── other-steps.md
├── README.md (reference DOI here)
├── CITATION
└── LICENSE
  • Metadata provided in "metadata" folder, for every dataset.
  • Helps ensure data types are preserved.
  • Allows data to be indexed and searched with google datasets via JSON-LD.
  • To create appropriate metadata, we recommend dataspice & codebook
35
library(dataspice)
create_spice(here::here("data"))
prep_attributes()
prep_access()
edit_access()
edit_attributes()
edit_biblio()
edit_creators()
write_spice()
36

Actually sharing the data

Now that you've created your data folder, you need to get it somewhere online

Two options to discuss:

  1. Putting the data online
  2. Sharing as an R package
37

Online repositories: Zenodo & Dryad

38

Zenodo

  • Launched in 2013 in a joint collaboration between openAIRE and CERN
  • Free, archival location to deposit datasets
  • File size limit is 50gb for individual files
  • Able to accommodate larger file sizes upon request
39

Dryad

  • The Dryad Digital Repository takes data from any field of research, and perform human quality control and assistance of the data
  • Can link data with a journal publication, in exchange for a data publishing fee.
40

Linking zenodo and GitHub

You can also link Zenodo with Github

Zenodo updates with new DOI at every "release" (Helps avoid managing many moving pieces)

See this article on github, making your code citable (Thanks to Arfon Smith)

41

Sharing data as an R package

Pros

  • installable
  • documentation
  • share data cleaning
  • great for R users

Cons

  • Size: ! >= 5Mb (CRAN)
  • Doesn't help others outside R
  • No structured metadata
42

Sharing data as an R package

  • Most (but not all!) data shared as an R package, or with an R package is for teaching purposes
43

Sharing data as an R package

  • Most (but not all!) data shared as an R package, or with an R package is for teaching purposes
  • Sharing data like this allows you to create a "research compendium", with centralised code + paper + computing environment + data.
43

Sharing data as an R package

  • Most (but not all!) data shared as an R package, or with an R package is for teaching purposes
  • Sharing data like this allows you to create a "research compendium", with centralised code + paper + computing environment + data.
43

Sharing data as an R package

  • Most (but not all!) data shared as an R package, or with an R package is for teaching purposes
  • Sharing data like this allows you to create a "research compendium", with centralised code + paper + computing environment + data.
  • Note the directory structure based is on R packages
43

Online "data" journals

  • Provides familiar mechanism for citation
  • But journals don't yet have a good way to outline how to share data
  • Often looks like a "mini paper" with the methods, and isn't always about the data, but about collection methods.
  • Can link to a Zenodo or Dryad repository.
44

Online "data" journals

45

Take homes

  • You don't have to do every single thing to publish your data
  • Take small steps - get the data somewhere first, add more detail as you go
46

Future Directions

  • Currently working on a proposal for "datadevtools" - a set of developer tools to facilitate sharing data
  • These tools can then be used to assess "shareability" of data
47

Discussion Questions

  • Do you curate data?
  • What are the common painpoints of curating data / collaborating on data?
  • How do you manage data releases?
  • What are the resistance points to data sharing?
  • Is data shared publicly, is there a process?
  • How do you distribute data?
48

Thanks

  • Karthik Ram
  • Miles McBain
  • Anna Kystalli
  • Daniella Lowenberg
  • Kara woo
  • ACEMS International Mobility Programme
  • Helmsley Charitable Trust
  • Gordon and Betty Moore Foundation
  • Sloan Foundation
49

References

50

Colophon

51

Learning more

paper at github.com/karthik/ddd

bit.ly/njt-data-uw

nj_tierney

njtierney

nicholas.tierney@gmail.com

52

End.

53

"Data! data! data!" he cried impatiently. "I can't make bricks without clay."

--Sherlock Holmes (The Adventure of the Copper Beeches by Sir Arthur Conan Doyle)

2
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow