/infx

Access to InfectX/TargetInfectX screening data from R

Primary LanguageRGNU General Public License v3.0GPL-3.0

lifecycle Travis-CI Build Status AppVeyor Build Status Coverage status

Access to InfectX/TargetInfectX screening data from R. A browser-based view of the data is available here.

Installation

You can install the development version of infx from Github by running

source("https://install-github.me/nbenn/infx")

Alternatively, if you have the remotes package available and are interested in the latest release, you can install from Github using install_github() as

# install.packages("remotes")
remotes::install_github("nbenn/infx@*release")

InfectX

InfectX and its successor project TargetInfectX are large-scale high throughput screening experiments focused on the human infectome of a set of viral and bacterial pathogens. In order to identify host-provided components involved in pathogen entry and host colonization, several RNA interference screens were carried out on HeLa cells, using siRNA libraries from vendors including Dharmacon, Quiagen and Ambion. Of the many performed screens, currently the data of kinome-wide screens for five bacterial pathogens (Bartonella henselae, Brucella abortus, Listeria monocytogenes, Salmonella typhimurium, and Shigella flexneri) and three viruses (Adenovirus, Rhinovirus, and Vaccinia virus) is publicly available[1]. Additionally, several genome-wide screens will follow suit in the coming months.

All collected data, including raw imaging data, CellProfiler derived feature data and infection scoring at single cell resolution, alongside extensive metadata, is hosted by the laboratory information management system openBIS. This R package provides access to the openBIS JSON-RPC API, enabling listing of data organization objects, searching for and downloading of data sets.

OpenBIS

Only a brief introduction on how to work with openBIS is given here. For more in-depth information on how data is organized in openBIS and how it can be accessed using this package, please refer to the vignette "Introduction to infx". For an extensive look at what parts of the API are currently implemented and how to extend the package to support further functionality, have a look at the vignettes "OpenBIS API coverage" and "JSON object handling". Documentation of exported functions is available from within the R help system or from here.

For every API call, a valid login token is required. Tokens can be created using login_openbis() and tested for validity with is_token_valid().

tok <- login_openbis()

is_token_valid(tok)
#> [1] TRUE

Using the valid login token, openBIS can now be queried, for example for a list of all projects that are available to the given user, using list_projects().

projects <- list_projects(tok)
print(projects, length = 10L)
#> ┌─█─Project 
#> │ ├─permId = 20130710131815818-2788266 
#> │ ├─spaceCode = INFECTX_PUBLISHED 
#> │ ├─code = ADENO_TEAM 
#> │ ├─description =  
#> │ ├─registrationDetails = █─EntityRegistrationDetails 
#> │ │                       └─... 
#> │ └─id = 39 
#> ├─█─Project 
#> ...

Finally, the login token should be destroyed, using logout_openbis().

logout_openbis(tok)
is_token_valid(tok)
#> [1] FALSE

While this client has been thoroughly tested with the openBIS instance hosted by InfectX and certain aspects are geared towards high content screening application of openBIS, it is in no way limited to usage with InfectX data. The function login_openbis() accepts a host_url argument which is stored as host_url attribute with the created login token. Any method that issues an API call subsequently uses the login token's host_url attribute in order to construct the API endpoint url. As a small example for this functionality, the demo openBIS instance, maintained by the openBIS development team, is queried for available projects.

tok <- login_openbis(user = "test_observer",
                     pwd = "test_observer",
                     host_url = "https://openbis.elnlims.ch")

projects <- list_projects(tok)
print(projects, length = 10L)
#> ┌─█─Project 
#> │ ├─permId = 20150126115738287-33 
#> │ ├─spaceCode = MATERIALS 
#> │ ├─code = BACTERIA 
#> │ ├─description =  
#> │ ├─registrationDetails = █─EntityRegistrationDetails 
#> │ │                       └─... 
#> │ └─id = 3 
#> ├─█─Project 
#> ...

logout_openbis(tok)

Acknowledgments

This work is partially funded by SystemsX.ch, the Swiss Initiative for Systems Biology via grants 51RT-0_126008 and 51RTP0_151029 for the Research and Technology Development (RTD) projects InfectX and TargetInfectX respectively. Further funding is provided by the Seminar for Statistics at ETH Zurich.

[1] BMC Genomics 2014 15:1162