Collecting data with JATOS

JATOS, a modest abbreviation for Just Another Tool for Online Studies, is much more than that – it’s a powerful, open source study hosting and data collection service that’s super-easy to use and provides many useful features. Among these are an excellent integration with Amazon Mechanical Turk and support for group studies in which participants interact online. lab.js integrates seamlessly with JATOS, so that studies can be set up in seconds.


Importing a study to JATOS

To import a study to JATOS, please export it using the JATOS integration from the builder interface. This will provide you with a zip archive that JATOS can import directly. Here’s the procedure in well under a minute:


There is no step two!

Seriously, JATOS is that awesome. You can run your study directly from the Worker and Batch Manager interface, which provides links you can distribute to participants.

With what we’ve discussed so far, however, we’ve only scratched the surface of what JATOS can do – it’s much more than a mere study runner: It will help you with participant and data management, and provides comprehensive privacy features for critical data. Please check out the JATOS paper and the online documentation for more information about its many capabilities.


Post-processing the data

Data access and download are available in JATOS via the results interface. For studies built with lab.js, JATOS stores the raw, JSON-encoded data. The following snippet for R imports this data format for analysis. In the resulting data.frame, the JATOS participant ID is available through the srid column.

# This code relies on the pacman, tidyverse and jsonlite packages
require(pacman)
p_load('tidyverse', 'jsonlite')

# Read the text file from JATOS ...
read_file('jatos_results.txt') %>%
  # ... split it into lines ...
  str_split('\n') %>% first() %>%
  # ... filter empty rows ...
  discard(function(x) x == '') %>%
  # ... parse JSON into a data.frame
  map_dfr(fromJSON, flatten=T) -> data

# Optionally save the resulting dataset
#write_csv(data, 'labjs_data_output.csv')