Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
9d116ea
Add TensorQTL support to eQTL mapping function and update README
charliewang123 Jun 18, 2025
db710a7
Update README.md
BrunildaBalliu Jun 18, 2025
4d5a2f2
Update README.md
BrunildaBalliu Jun 18, 2025
0f4b5fc
Noted Python requirement
charliewang123 Jun 19, 2025
6bd829e
Added TreeBH functions
azh05 Jun 19, 2025
f6ee0ea
Updated correct default parameters for simulate_data
charliewang123 Jun 20, 2025
ae17358
Updated README.md and eQTL_mapping.R
charliewang123 Jun 26, 2025
4691726
Update README.md
charliewang123 Jun 27, 2025
9321110
Completed action items for this week
charliewang123 Jul 6, 2025
3c99518
Update eQTL_mapping.R and simulate_data.R
charliewang123 Jul 15, 2025
2fa9551
Merge branch 'treebh' into charlie_branch
azh05 Jul 18, 2025
427842d
Updated README.md
azh05 Jul 18, 2025
ed0c620
Updated README with TreeBH section and Updated TreeBH file reading
azh05 Jul 18, 2025
a4668a0
Update eQTL_mapping.R
charliewang123 Jul 18, 2025
f28b5e1
Merge branch 'charlie_branch' of https://github.com/BalliuLab/FastGxC…
charliewang123 Jul 18, 2025
472c566
Update README.md
charliewang123 Jul 21, 2025
6fd2897
Multiple Testing Changes
charliewang123 Jul 25, 2025
58832ae
Update treeQTL.R
charliewang123 Jul 29, 2025
345af83
Update README.md
charliewang123 Sep 7, 2025
ea97839
Reset treeQTL function to version from main
charliewang123 Sep 18, 2025
807ced9
Update treeQTL.R
charliewang123 Sep 18, 2025
0f53953
Update eQTL_mapping.R
charliewang123 Sep 22, 2025
3876b55
Update treeQTL.R
charliewang123 Sep 22, 2025
8489b06
Debug multiple testing
charliewang123 Sep 22, 2025
d42d3f0
Update DESCRIPTION
charliewang123 Sep 30, 2025
a091807
Update functions
charliewang123 Sep 30, 2025
a044b92
Delete R/R.Rproj
charliewang123 Sep 30, 2025
c09d7c8
Delete R.Rproj
charliewang123 Sep 30, 2025
a5f5c58
Merge branch 'charlie_branch' of https://github.com/BalliuLab/FastGxC…
charliewang123 Sep 30, 2025
4876b57
Bug changes
charliewang123 Oct 2, 2025
5a0e744
Brief Cleaning of Files
charliewang123 Oct 7, 2025
8ff60f1
Change back
charliewang123 Oct 7, 2025
a1f615f
debug
charliewang123 Oct 7, 2025
186244a
Suppress Warnings
charliewang123 Oct 8, 2025
79aacfa
Update parameters and empty conditional
charliewang123 Oct 8, 2025
f83b89c
Update treeQTL.R
charliewang123 Oct 8, 2025
841c700
Git ignore
azh05 Oct 13, 2025
1799ce4
Added new treeBH implementations
azh05 Oct 13, 2025
115e1fc
FIxing Namespace errors
azh05 Oct 13, 2025
d71183f
Fix bug
azh05 Oct 14, 2025
eb3673b
Update eQTL_mapping.R
charliewang123 Oct 25, 2025
a3cabed
Update treeQTL.R
charliewang123 Oct 25, 2025
71d7830
Update treeQTL.R
charliewang123 Oct 27, 2025
c6a0270
Update treeQTL.R
charliewang123 Nov 6, 2025
71d9618
Update treeQTL.R
charliewang123 Nov 7, 2025
fe64164
Update treeQTL.R
charliewang123 Nov 7, 2025
ffab0ff
fread
azh05 Nov 26, 2025
eee400e
Update eQTL_mapping.R
charliewang123 Feb 20, 2026
09d6b9f
Merge branch 'charlie_branch' of https://github.com/BalliuLab/FastGxC…
charliewang123 Feb 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.Rproj.user
.Rhistory
.RData
.Ruserdata
.DS_Store
30 changes: 21 additions & 9 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
Package: FastGxC
Title: Efficient and Powerful Software for Simulating Data and Detecting Context-specific eQTL Effects in Multi-context Genomic Studies
Version: 0.0.0.9000
Version: 0.0.1
Authors@R:
person("Lena", "Krockenberger", , "lkrocken@g.ucla.edu", role = c("aut", "cre"),
comment = c(ORCID = "0009-0002-5987-5496"))
Description: Functions to run FastGxC decomposition and subsequent context-specific eQTL mapping with multiple testing adjustment. This software also can be used to simulate data and run eQTL mapping on toy examples.
Suggests:
Description: Functions to run FastGxC decomposition and subsequent context-specific eQTL mapping with multiple testing adjustment. This software can also simulate data and run eQTL mapping on toy examples.
License: MIT + file LICENSE
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.3
Depends: R (>= 4.2.0)
Imports:
devtools,
dplyr,
data.table,
MatrixEQTL,
mvtnorm,
reshape2,
magrittr,
TreeQTL
License: `use_mit_license()`, `use_gpl3_license()` or friends to pick a
license
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.2
reticulate,
Rcpp
LinkingTo:
Rcpp
Suggests:
qvalue,
TreeQTL,
TreeBH,
knitr,
rmarkdown,
testthat (>= 3.0.0)
Config/testthat/edition: 3
13 changes: 13 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,18 @@ export(eQTL_mapping_step)
export(get_eGenes_multi_tissue_mod)
export(get_eSNPs_multi_tissue_mod)
export(get_pvals_and_fam_p_mod)
export(install_deps)
export(simulate_data)
export(to_TreeBH_input)
export(treeBH_step)
export(treeQTL_step)
importFrom(Rcpp,sourceCpp)
importFrom(data.table,fread)
importFrom(data.table,getDTthreads)
importFrom(data.table,setDTthreads)
importFrom(dplyr,distinct)
importFrom(dplyr,group_by)
importFrom(dplyr,mutate)
importFrom(dplyr,select)
importFrom(magrittr,"%>%")
useDynLib(FastGxC, .registration = TRUE)
31 changes: 31 additions & 0 deletions R/RcppExports.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Generated by using Rcpp::compileAttributes() -> do not edit by hand
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#' Check if groups are properly nested in hierarchy
checkNested <- function(groups, L) {
.Call(`_FastGxC_checkNested`, groups, L)
}

#' Hierarchical Group P-value Calculation
#' The getGroupPvalues function computes aggregated p-values for each group in a hierarchical
#' structure by combining p-values from lower levels using specified aggregation methods.
#' @param pvals NumericVector containing p-values for individual hypotheses
#' @param groups CharacterMatrix defining the group hierarchy structure
#' @param N Integer specifying the number of hypotheses
#' @param L Integer specifying the number of levels in the hierarchy
#' @param test CharacterVector specifying the aggregation method(s)
getGroupPvalues <- function(pvals, groups, N, L, test) {
.Call(`_FastGxC_getGroupPvalues`, pvals, groups, N, L, test)
}

#' Hierarchical Group Selection for Multiple Testing
#' The getGroupSelections function applies hierarchical multiple testing correction.
#' @param group_pvals NumericMatrix containing aggregated p-values
#' @param groups CharacterMatrix defining the group hierarchy structure
#' @param q NumericVector containing the q-value thresholds for each level
#' @param N Integer specifying the number of hypotheses
#' @param L Integer specifying the number of levels in the hierarchy
getGroupSelections <- function(group_pvals, groups, q, N, L) {
.Call(`_FastGxC_getGroupSelections`, group_pvals, groups, q, N, L)
}

46 changes: 46 additions & 0 deletions R/deps.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# R/deps.R

#' Install FastGxC dependencies
#'
#' Installs CRAN, Bioconductor, and source packages required by FastGxC.
#' This includes optional packages like qvalue, TreeQTL, and TreeBH.
#'
#' @param ask Logical, whether to ask before installing (default: TRUE if interactive).
#' @export
install_deps <- function(ask = interactive()) {
# --- Core CRAN packages (should already install via Imports:) ---
cran_pkgs <- c("devtools","dplyr","data.table","MatrixEQTL",
"mvtnorm","reshape2","magrittr","reticulate")
to_install <- cran_pkgs[!cran_pkgs %in% rownames(installed.packages())]
if (length(to_install)) {
msg <- paste("Installing missing CRAN packages:", paste(to_install, collapse = ", "))
if (!ask || utils::menu(c("Yes","No"), title = msg) == 1) {
install.packages(to_install)
}
}

# --- Bioconductor package: qvalue ---
if (!requireNamespace("qvalue", quietly = TRUE)) {
message("Installing Bioconductor package: qvalue")
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install("qvalue")
}

# --- Source-only package: TreeQTL ---
if (!requireNamespace("TreeQTL", quietly = TRUE)) {
message("Installing TreeQTL from source tarball")
utils::install.packages("http://bioinformatics.org/treeqtl/TreeQTL_2.0.tar.gz",
repos = NULL, type = "source")
}

# --- Source-only package: TreeBH ---
if (!requireNamespace("TreeBH", quietly = TRUE)) {
message("Installing TreeBH from source tarball")
utils::install.packages("https://github.com/user-attachments/files/21328935/TreeBH_1.0.tar.gz",
repos = NULL, type = "source")
}

message("All FastGxC dependencies are installed or already present.")
}
Loading