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

A Discussion on Issues around Making Data Available Alongside Research

Nicholas Tierney, Monash University
&
Karthik Ram, Berkeley Institute of Data Science, UC Berkeley

Sage Bionetworks
Wednesday 12th February, 2020


njt-sage.netlify.com

nj_tierney

1 / 54

"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 / 54

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 / 54

We need data

4 / 54

We need data

We need it to do our job

4 / 54

We need data

We need it to do our job

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

4 / 54

Benefits of Sharing data

🔎 Makes work transparent

✅ Increases trust

🔈 Increases visibility

Independent validation

♻️ Reproducibility

5 / 54

Research isn't often shared

It's often really available to the authors

6 / 54

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
7 / 54

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.

8 / 54

Your Turn:

What are the resistance points to data sharing at Sage Bionetworks?

Is data shared publicly?

What is the data sharing process?

9 / 54

Responses to Stodden, Seiler and Ma, 2018

10 / 54

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.

11 / 54

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.

12 / 54

Responses to Stodden, Seiler and Ma, 2018

🙍

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

13 / 54

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.

14 / 54

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.

15 / 54

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

16 / 54

Responses to Stodden, Seiler and Ma, 2018

🎉

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

17 / 54

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.

18 / 54

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.

19 / 54

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.

20 / 54

Sharing data?

Plenty of research says it is important

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

These don't precicely tell you how to share data

21 / 54

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)

22 / 54

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

23 / 54

Another way to think about sharing data

Mountain

24 / 54

Another way to think about sharing data

Mountain

Ramp

24 / 54

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 contents
  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 / 54

Analysis ready data: Final data used in analysis

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

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 / 54

README: A Human readable description of the data

project
├── data
| └── crime.csv
└── README.md
  • Top level of the data repository, (optionally for each dataset)
  • The who, what, when, where, why, of your data.
  • Guides user how to understand this directory.
  • Handy when no reliable standards
  • .md allows you to take advantage of markdown
27 / 54

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 / 54

Data Dictionary: Human readable dictionary of data contents

29 / 54

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 any tidying or cleaning.
  • If the raw data is a practical size to share, it should be shared in a folder called data-raw.
  • Should be in the form that was first received, even if it is in binary or some proprietary format.
  • Option to include data dictionaries of the raw data can be provided in data-raw.
30 / 54

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 / 54

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 / 54

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 / 54

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 / 54

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
  • Helps ensure data types are preserved.
  • Allows data to be indexed and searched online with google datasets search using JSON-LD.
  • To create appropriate metadata, we recommend metadata generators such as dataspice or codebook
  • Metadata should be provided in a folder called "metadata", which should be provided for every dataset.
35 / 54
library(dataspice)
create_spice(here::here("data"))
prep_attributes()
prep_access()
edit_access()
edit_attributes()
edit_biblio()
edit_creators()
write_spice()
36 / 54

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 / 54

Your Turn:

How does Sage Bionetworks distribute data?

38 / 54

Online repositories: Zenodo & Dryad

39 / 54

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
40 / 54

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.
41 / 54

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)

42 / 54

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
43 / 54

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
44 / 54

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.
44 / 54

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.
44 / 54

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
44 / 54

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.
45 / 54

Online "data" journals

Some example data journals:

  • Nature: Scientific Data
  • Data in Brief
  • Data
46 / 54

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
47 / 54

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
48 / 54

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?
49 / 54

Thanks

  • Karthik Ram
  • Miles McBain
  • Anna Kystalli
  • Daniella Lowenberg
  • ACEMS International Mobility Programme
  • Helmsley Charitable Trust
  • Gordon and Betty Moore Foundation
  • Sloan Foundation
50 / 54

References

51 / 54

Colophon

52 / 54

Learning more

paper (on github)

talk

nj_tierney

njtierney

nicholas.tierney@gmail.com

53 / 54

End.

54 / 54

"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 / 54
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