## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup, echo = FALSE------------------------------------------------------ library(BinaryDosage) ## ----setup_files, message = FALSE, warning = FALSE---------------------------- bdose_full <- file.path(tempdir(), "full.bdose") if (requireNamespace("vcfppR", quietly = TRUE)) { vcftobd(vcffile = system.file("extdata", "set1a.vcf.gz", package = "BinaryDosage"), bdose_file = bdose_full) } else { updatebd(bdfiles = system.file("extdata", "vcf1a.bdose", package = "BinaryDosage"), bdose_file = bdose_full) } bd_full <- getbdinfo(bdose_full) cat("Subjects:", nrow(bd_full$samples), "\n") cat("SNPs: ", nrow(bd_full$snps), "\n") ## ----subject_merge, message = FALSE, warning = FALSE-------------------------- bdose_a <- file.path(tempdir(), "set_a.bdose") bdose_b <- file.path(tempdir(), "set_b.bdose") bdose_out <- file.path(tempdir(), "merged_subjects.bdose") sids <- bd_full$samples$sid subsetbd(bdfiles = bdose_full, bdose_file = bdose_a, subjectids = sids[1:30]) subsetbd(bdfiles = bdose_full, bdose_file = bdose_b, subjectids = sids[31:60]) mergebd(bdose_files = c(bdose_a, bdose_b), bdose_file = bdose_out) bd_a <- getbdinfo(bdose_a) bd_b <- getbdinfo(bdose_b) bd_out <- getbdinfo(bdose_out) cat("File A subjects:", nrow(bd_a$samples), "\n") cat("File B subjects:", nrow(bd_b$samples), "\n") cat("Merged subjects:", nrow(bd_out$samples), "\n") cat("Merged SNPs: ", nrow(bd_out$snps), "\n") ## ----subject_order------------------------------------------------------------ knitr::kable(bd_out$samples, caption = "Subjects in merged file") ## ----snp_merge, message = FALSE, warning = FALSE------------------------------ bdose_snp_a <- file.path(tempdir(), "snp_a.bdose") bdose_snp_b <- file.path(tempdir(), "snp_b.bdose") bdose_snp_out <- file.path(tempdir(), "merged_snps.bdose") locs <- bd_full$snps$location subsetbd(bdfiles = bdose_full, bdose_file = bdose_snp_a, locations = locs[1:5]) subsetbd(bdfiles = bdose_full, bdose_file = bdose_snp_b, locations = locs[6:10]) mergebd(bdose_files = c(bdose_snp_a, bdose_snp_b), bdose_file = bdose_snp_out) bd_snp_a <- getbdinfo(bdose_snp_a) bd_snp_b <- getbdinfo(bdose_snp_b) bd_snp_out <- getbdinfo(bdose_snp_out) cat("File A SNPs: ", nrow(bd_snp_a$snps), "\n") cat("File B SNPs: ", nrow(bd_snp_b$snps), "\n") cat("Merged SNPs: ", nrow(bd_snp_out$snps), "\n") cat("Merged subjects:", nrow(bd_snp_out$samples), "\n") ## ----snp_order---------------------------------------------------------------- knitr::kable(bd_snp_out$snps, caption = "SNPs in merged file") ## ----cleanup, include = FALSE------------------------------------------------- unlink(c(bdose_full, paste0(bdose_full, ".bdi"), bdose_a, paste0(bdose_a, ".bdi"), bdose_b, paste0(bdose_b, ".bdi"), bdose_out, paste0(bdose_out, ".bdi"), bdose_snp_a, paste0(bdose_snp_a, ".bdi"), bdose_snp_b, paste0(bdose_snp_b, ".bdi"), bdose_snp_out, paste0(bdose_snp_out, ".bdi")))