gtexr

gtexr: A convenient R interface to the Genotype-Tissue Expression (GTEx) Portal API - Published in JOSS (2025)

https://github.com/ropensci/gtexr

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: pubmed.ncbi, ncbi.nlm.nih.gov, joss.theoj.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

api-wrapper bioinformatics eqtl gtex r sqtl
Last synced: 6 months ago · JSON representation ·

Repository

An R interface to the GTEx Portal API

Basic Info
Statistics
  • Stars: 11
  • Watchers: 1
  • Forks: 3
  • Open Issues: 3
  • Releases: 4
Topics
api-wrapper bioinformatics eqtl gtex r sqtl
Created almost 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation Codemeta

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# gtexr 



[![Codecov test coverage](https://codecov.io/gh/ropensci/gtexr/branch/main/graph/badge.svg)](https://app.codecov.io/gh/ropensci/gtexr?branch=main) [![R-CMD-check](https://github.com/ropensci/gtexr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ropensci/gtexr/actions/workflows/R-CMD-check.yaml) [![Deploy to shinyapps.io](https://github.com/ropensci/gtexr/actions/workflows/shinyapps-deploy.yaml/badge.svg)](https://github.com/ropensci/gtexr/actions/workflows/shinyapps-deploy.yaml) [![CRAN status](https://www.r-pkg.org/badges/version/gtexr)](https://CRAN.R-project.org/package=gtexr) [![CRAN downloads](https://cranlogs.r-pkg.org/badges/gtexr)](https://CRAN.R-project.org/package=gtexr) [![CRAN downloads](https://cranlogs.r-pkg.org/badges/grand-total/gtexr)](https://CRAN.R-project.org/package=gtexr) [![Repo Status](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/684_status.svg)](https://github.com/ropensci/software-review/issues/684) [![status](https://joss.theoj.org/papers/cacfc67c0fd0bd3ff269e68ef8ad795c/status.svg)](https://joss.theoj.org/papers/10.21105/joss.08249)



The goal of gtexr is to provide a convenient R interface to the [GTEx Portal API V2](https://gtexportal.org/api/v2/redoc#tag/GTEx-Portal-API-Info). 

The [Genotype-Tissue Expression (GTEx) project](https://www.gtexportal.org/home/) is a comprehensive public resource for studying tissue-specific gene expression and regulation in human tissues. Through systematic analysis of RNA sequencing data from 54 non-diseased tissue sites across nearly 1000 individuals, GTEx provides crucial insights into the relationship between genetic variation and gene expression. This data is accessible through the [GTEx Portal API](https://gtexportal.org/api/v2/redoc#tag/GTEx-Portal-API-Info), enabling programmatic access to human gene expression data.

New to R but want to explore the available data? Try out the interactive no-code ⭐[shiny app](https://7hocgq-rmgpanw.shinyapps.io/gtexr/)⭐.

## Installation

You can install this package from CRAN:

``` r
install.packages("gtexr")
```

Or you can install the development version of gtexr from either [GitHub](https://github.com/ropensci/gtexr) with:

``` r
# install.packages("pak")
pak::pak("ropensci/gtexr") # source - GitHub
```

... or [R Universe](https://ropensci.r-universe.dev/builds) with:

``` r
install.packages("gtexr", repos = "https://ropensci.r-universe.dev")
```

## Available functionality

- **GTEx Portal API Info** – Retrieve general service information about the GTEx API.  
- **Admin Endpoints** – Access maintenance messages and news updates from GTEx.  
- **Static Association Endpoints** – Query precomputed eQTL and sQTL associations across tissues.  
- **Dynamic Association Endpoints** – Perform on-the-fly eQTL and sQTL calculations.  
- **Biobank Data Endpoints** – Retrieve metadata on biobank samples.
- **Datasets Endpoints** – Access various GTEx dataset information, as well as variant annotation and linkage disequilibrium data.
- **Expression Data Endpoints** – Obtain expression levels across tissues, including gene, exon, junction, and transcript-level data.  
- **Histology Endpoints** – Retrieve tissue histology image data.  
- **Reference Genome Endpoints** – Query reference genome features, including genetic coordinates for genes, transcripts and exons, as well as reported phenotype associations for a region.  

## Examples

Get general information about the GTEx service:

```{r}
library(gtexr)
get_service_info() |>
  tibble::glimpse()
```

Retrieve eQTL genes for whole blood tissue:[^1]

[^1]: Note the warning raised if the number of items returned by a function call exceeds the requested page size. Argument `itemsPerPage` is set to 250 by default, but may be increased to ensure that all items are retrieved in one go.

```{r get-eqtl-genes}
get_eqtl_genes("Whole_Blood")
```

Retrieve significant eQTLs for one or more genes:

```{r get-significant-single-tissue-eqtls}
get_significant_single_tissue_eqtls(gencodeId = c(
  "ENSG00000132693.12",
  "ENSG00000203782.5"
))
```

## Citing gtexr

If you find gtexr useful, please consider citing both GTEx and gtexr. Citation details are available [here](https://docs.ropensci.org/gtexr/authors.html#citation).

Example publications citing gtexr include:

- [Schwartz R, Warwick AN, et al. Genetic Distinctions Between Reticular Pseudodrusen and Drusen: A Genome-Wide Association Study. Am J Ophthalmol. 2025 Mar 8:S0002-9394(25)00119-9. doi: 10.1016/j.ajo.2025.03.007. Epub ahead of print. PMID: 40064387](https://pubmed.ncbi.nlm.nih.gov/40064387/)

## Community guidelines

Feedback, bug reports, and feature requests are welcome; file issues or seek support [here](https://github.com/ropensci/gtexr/issues). If you would like to contribute to the package, please see our [contributing guidelines](https://docs.ropensci.org/gtexr/CONTRIBUTING.html).
  
Please note that this package is released with a [Contributor Code of Conduct](https://ropensci.org/code-of-conduct/). By contributing to this project, you agree to abide by its terms.

Owner

  • Name: rOpenSci
  • Login: ropensci
  • Kind: organization
  • Email: info@ropensci.org
  • Location: Berkeley, CA

JOSS Publication

gtexr: A convenient R interface to the Genotype-Tissue Expression (GTEx) Portal API
Published
May 28, 2025
Volume 10, Issue 109, Page 8249
Authors
Alasdair Neil Warwick ORCID
University College London Institute of Cardiovascular Science, London, UK, NIHR Biomedical Research Centre, Moorfields Eye Hospital NHS Foundation Trust
Benjamin Zuckerman ORCID
Centre for Rheumatic Diseases, King's College London, London, UK
Chuin Ying Ung ORCID
Guy's and St Thomas' NHS Foundation Trust
Robert Luben ORCID
NIHR Biomedical Research Centre, Moorfields Eye Hospital NHS Foundation Trust, University College London Institute of Ophthalmology, London, UK
Abraham Olvera-Barrios ORCID
NIHR Biomedical Research Centre, Moorfields Eye Hospital NHS Foundation Trust, University College London Institute of Ophthalmology, London, UK
Editor
Arfon Smith ORCID
Tags
api-wrapper bioinformatics gtex eqtl sqtl

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- email: alasdair.warwick.19@ucl.ac.uk
  family-names: Warwick
  given-names: Alasdair Neil
  orcid: "https://orcid.org/0000-0002-0800-2890"
- family-names: Zuckerman
  given-names: Benjamin
  orcid: "https://orcid.org/0000-0002-0077-6074"
- family-names: Ung
  given-names: Chuin Ying
  orcid: "https://orcid.org/0000-0001-8487-4589"
- family-names: Luben
  given-names: Robert
  orcid: "https://orcid.org/0000-0002-5088-6343"
- family-names: Olvera-Barrios
  given-names: Abraham
  orcid: "https://orcid.org/0000-0002-3305-4465"
doi: 10.5281/zenodo.15521906
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - email: alasdair.warwick.19@ucl.ac.uk
    family-names: Warwick
    given-names: Alasdair Neil
    orcid: "https://orcid.org/0000-0002-0800-2890"
  - family-names: Zuckerman
    given-names: Benjamin
    orcid: "https://orcid.org/0000-0002-0077-6074"
  - family-names: Ung
    given-names: Chuin Ying
    orcid: "https://orcid.org/0000-0001-8487-4589"
  - family-names: Luben
    given-names: Robert
    orcid: "https://orcid.org/0000-0002-5088-6343"
  - family-names: Olvera-Barrios
    given-names: Abraham
    orcid: "https://orcid.org/0000-0002-3305-4465"
  date-published: 2025-05-28
  doi: 10.21105/joss.08249
  issn: 2475-9066
  issue: 109
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 8249
  title: "gtexr: A convenient R interface to the Genotype-Tissue
    Expression (GTEx) Portal API"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.08249"
  volume: 10
title: "gtexr: A convenient R interface to the Genotype-Tissue
  Expression (GTEx) Portal API"

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "gtexr",
  "description": "A convenient R interface to the Genotype-Tissue Expression (GTEx) Portal API. For more information on the API, see <https://gtexportal.org/api/v2/redoc>.",
  "name": "gtexr: Query the GTEx Portal API",
  "relatedLink": [
    "https://docs.ropensci.org/gtexr",
    "https://CRAN.R-project.org/package=gtexr"
  ],
  "codeRepository": "https://github.com/ropensci/gtexr",
  "issueTracker": "https://github.com/ropensci/gtexr/issues",
  "license": "https://spdx.org/licenses/MIT",
  "version": "0.1.0.9000",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.4.2 (2024-10-31)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Alasdair",
      "familyName": "Warwick",
      "email": "alasdair.warwick.19@ucl.ac.uk",
      "@id": "https://orcid.org/0000-0002-0800-2890"
    },
    {
      "@type": "Person",
      "givenName": "Benjamin",
      "familyName": "Zuckerman",
      "@id": "https://orcid.org/0000-0002-0077-6074"
    },
    {
      "@type": "Person",
      "givenName": "Abraham",
      "familyName": "Olvera-Barrios",
      "@id": "https://orcid.org/0000-0002-3305-4465"
    },
    {
      "@type": "Person",
      "givenName": "Chuin Ying",
      "familyName": "Ung",
      "@id": "https://orcid.org/0000-0001-8487-4589"
    },
    {
      "@type": "Person",
      "givenName": "Robert",
      "familyName": "Luben",
      "@id": "https://orcid.org/0000-0002-5088-6343"
    }
  ],
  "copyrightHolder": [
    {
      "@type": "Person",
      "givenName": "Alasdair",
      "familyName": "Warwick",
      "email": "alasdair.warwick.19@ucl.ac.uk",
      "@id": "https://orcid.org/0000-0002-0800-2890"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Alasdair",
      "familyName": "Warwick",
      "email": "alasdair.warwick.19@ucl.ac.uk",
      "@id": "https://orcid.org/0000-0002-0800-2890"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "curl",
      "name": "curl",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=curl"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "httptest2",
      "name": "httptest2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=httptest2"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 3.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "cli",
      "name": "cli",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cli"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "dplyr",
      "name": "dplyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=dplyr"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "httr2",
      "name": "httr2",
      "version": ">= 1.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=httr2"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "purrr",
      "name": "purrr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=purrr"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "tibble",
      "name": "tibble",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tibble"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "tidyr",
      "name": "tidyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyr"
    },
    "SystemRequirements": null
  },
  "fileSize": "417.409KB",
  "releaseNotes": "https://github.com/ropensci/gtexr/blob/master/NEWS.md",
  "readme": "https://github.com/ropensci/gtexr/blob/main/README.md",
  "contIntegration": [
    "https://github.com/ropensci/gtexr/actions/workflows/pkgdown.yaml",
    "https://app.codecov.io/gh/ropensci/gtexr?branch=main",
    "https://github.com/ropensci/gtexr/actions/workflows/R-CMD-check.yaml",
    "https://github.com/ropensci/gtexr/actions/workflows/shinyapps-deploy.yaml"
  ],
  "keywords": [
    "api-wrapper",
    "bioinformatics",
    "gtex",
    "r",
    "eqtl",
    "sqtl"
  ]
}

GitHub Events

Total
  • Create event: 4
  • Release event: 3
  • Issues event: 14
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 4
  • Push event: 28
  • Fork event: 1
Last Year
  • Create event: 4
  • Release event: 3
  • Issues event: 14
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 4
  • Push event: 28
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 12
  • Total pull requests: 0
  • Average time to close issues: 9 days
  • Average time to close pull requests: N/A
  • Total issue authors: 3
  • Total pull request authors: 0
  • Average comments per issue: 1.92
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 8
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 0
  • Average time to close issues: 9 days
  • Average time to close pull requests: N/A
  • Issue authors: 3
  • Pull request authors: 0
  • Average comments per issue: 1.92
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 8
  • Bot pull requests: 0
Top Authors
Issue Authors
  • github-actions[bot] (8)
  • rmgpanw (3)
  • salernos (1)
Pull Request Authors
Top Labels
Issue Labels
bug (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 534 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
cran.r-project.org: gtexr

Query the GTEx Portal API

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 534 Last month
Rankings
Dependent packages count: 28.1%
Dependent repos count: 34.7%
Average: 49.8%
Downloads: 86.6%
Last synced: 6 months ago

Dependencies

.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.5.0 composite
  • actions/checkout v4 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/test-coverage.yaml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
DESCRIPTION cran
  • cli * imports
  • dplyr * imports
  • httr2 * imports
  • purrr * imports
  • rlang * imports
  • tibble * imports
  • tidyr * imports
  • httptest2 * suggests
  • testthat >= 3.0.0 suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v4 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/shinyapps-deploy.yaml actions
  • actions/checkout v2 composite
  • rmgpanw/shinyapps-deploy-github-action v1.13-alpha.3 composite