table1.cc Blog

Reproducible and Efficient Creation of ‘Table 1’ Summary Tables for Research Papers

How We Handle Research Data to Ensure Privacy

Trust is a critical component of scientific collaboration including the use of research tools. In a previous post, we reviewed how table1.cc enforces encryption of all web traffic. In this post, we will review in detail how we handle the exchange of data in the table1.cc system.

Submitting data to table1.cc

What happens when you submit a data set via our website? After pasting data from a spreadsheet into the submit form and hitting submit, your data is immediately encrypted. Table1.cc uses Let’s encrypt as our encryption certificate provider. This means that all data is transferred securely and cannot be accessed by any third party intermediary. The same happens with your desired settings you select when generating your Table 1 automatically (Figure 1, upper left).

Figure 1. Simplified scheme of the secure table1.cc website architecture. Communication between web browser, the Flask web server, Python and tableone (within Heroku). See text for additional details.

Figure 1. Simplified scheme of the secure table1.cc website architecture. Communication between web browser, the Flask web server, Python and tableone (within Heroku). See text for additional details.

Research Data processing on the table1.cc application

What happens when the encrypted data reaches the table1.cc server? Table1.cc runs on the Heroku platform, a cloud service that runs a sandboxed environment (Figure 1, right outer rectangle). One of the characteristic design aspects of Heroku is that it uses a so-called ‘ephemeral’ file system. Ephemeral means that our underlying file system cannot store any data permanently within this Heroku sandbox. To emphasize this point, the table1.cc application is not capable of permanently storing data which means that any data you submit to us will automatically be discarded once the task is completed!

Generation of Table 1 via the tableone Python module

In the next step, the SSL-encrypted data is received and process via a software called Flask. Flask is a Python web server framework which handles this communication between the user and application code. Because Flask is pure Python code, communicating with other Python software modules is straightforward:

Rendering Table 1 within the Browser window

Next, Python and tableone automatically generate the table summarizing you data of interest. Subsequently, this table is rendered into HTML, and then returned to the user. The user’s web browser then translates HTML into a human readable table on the website (Figure 1, lower left).

Bottom Line

Table1.cc is designed from the bottom up to avoid storing any necessary data. This becomes most obvious by the complete absence of any database storage within its architecture. All data communication from and to the user is exclusively transmitted via enforced SSL encryption so you can feel confident that your research data remains absolutely confidential.

You can learn more about how automation with table1.cc can boost your research productivity here.

If you are curious, give it a try here and follow us on Twitter @table1cc.