Skip to contents

Download openSNP genotype data for a user


fetch_genotypes(url, rows = 100, filepath = NULL, quiet = TRUE, ...)



(character) URL for the download. See example below of function use.


(integer) Number of rows to read in. Useful for getting a glimpse of the data. Negative and other invalid values are ignored, giving back all data. Default: 100


(character) If none is given the file is saved to a temporary file, which will be lost after your session is closed. Save to a file if you want to access it later.


(logical) Should download progress be suppressed. Default: TRUE


Further args passed on to download.file()


data.frame for a single user, with four columns:

  • rsid (character)

  • chromosome (integer)

  • position (integer)

  • genotype (character)


Beware, not setting the rows parameter means that you download the entire file, which can be large (e.g., 15MB), and so take a while to download depending on your connection speed. Therefore, rows is set to 10 by default to sort of protect the user.

Internally, we use download.file() to download each file, then read.table() to read the file to a data.frame.

See also


if (FALSE) { # \dontrun{
# get a data.frame of the users data
data <- users(df = TRUE)
head(data[[1]]) # users with links to genome data
mydata <- fetch_genotypes(
  url = data[[1]][1, "genotypes.download_url"],
  file = "~/myfile.txt"

# see some data right away

# Or read in data later separately
read.table("~/myfile.txt", nrows = 10)
} # }