{"id":21699526,"url":"https://github.com/Zheng206/ComBatFamQC","last_synced_at":"2025-07-18T10:31:36.966Z","repository":{"id":264690409,"uuid":"879451202","full_name":"Zheng206/ComBatFamQC","owner":"Zheng206","description":"Streamline interactive batch effect diagnostics, harmonization, and post-harmonization downstream analysis to greatly simplify the data harmonization process and improve transparency and reproducibility. ","archived":false,"fork":false,"pushed_at":"2025-07-12T23:19:49.000Z","size":252119,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-13T01:14:53.412Z","etag":null,"topics":["diagnostic-tool","harmonization","rshinyapp"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zheng206.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null}},"created_at":"2024-10-27T23:31:23.000Z","updated_at":"2025-03-23T19:05:17.000Z","dependencies_parsed_at":"2025-04-10T16:30:54.787Z","dependency_job_id":"99267671-a98b-47f4-9978-a16a7d25b6d0","html_url":"https://github.com/Zheng206/ComBatFamQC","commit_stats":null,"previous_names":["zheng206/combatfamqc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Zheng206/ComBatFamQC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zheng206%2FComBatFamQC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zheng206%2FComBatFamQC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zheng206%2FComBatFamQC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zheng206%2FComBatFamQC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zheng206","download_url":"https://codeload.github.com/Zheng206/ComBatFamQC/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zheng206%2FComBatFamQC/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265742199,"owners_count":23820807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diagnostic-tool","harmonization","rshinyapp"],"created_at":"2024-11-25T20:02:22.601Z","updated_at":"2025-07-18T10:31:36.958Z","avatar_url":"https://github.com/Zheng206.png","language":"R","funding_links":[],"categories":["R"],"sub_categories":[],"readme":"# ComBatFamQC\n\n \u003c!-- badges: start --\u003e\n  [![R-CMD-check](https://github.com/Zheng206/ComBatFamQC/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/Zheng206/ComBatFamQC/actions/workflows/R-CMD-check.yaml) [![Codecov test coverage](https://codecov.io/gh/Zheng206/ComBatFamQC/graph/badge.svg)](https://app.codecov.io/gh/Zheng206/ComBatFamQC)\n  \u003c!-- badges: end --\u003e \n\n\n\nThe **ComBatFamQC** package is a powerful tool designed to streamline \u003cspan style=\"color:purple;\"\u003einteractive batch effect diagnostics\u003c/span\u003e, \u003cspan style=\"color:green;\"\u003eharmonization\u003c/span\u003e, and \u003cspan style=\"color:blue;\"\u003epost-harmonization downstream analysis\u003c/span\u003e. This package is specifically tailored to provide both \u003cu\u003einteractive qualitative visualization\u003c/u\u003e and \u003cu\u003estatistical testing for batch effects diagnostics\u003c/u\u003e, as well as to offer various easily-used \u003cu\u003ebuilt-in harmonization techniques\u003c/u\u003e to facilitate a better harmonization process.\n\nAdditionally, the package provides \u003cu\u003elife span age trends of brain structures\u003c/u\u003e and \u003cu\u003eresidual datasets\u003c/u\u003e, eliminating specific covariates' effects to better conduct post-harmonization downstream analysis. For the final delivery, the package offers interactive visualizations through R Shiny for batch effect diagnostics and age trend visualization. For users who wish to save a copy of the diagnostic report, the package also includes an option to generate a Quarto report (if Quarto is installed). Furthermore, it integrates the harmonization process and can provide a harmonized dataset, a fitted ComBat model, a residual dataset, a fitted regression model, and more.\n\nTo make the harmonization process more accessible to users from diverse backgrounds, two unified command-line interfaces have been developed for different stages of the processing pipeline (located in the **inst** folder):\n\n-   **CombatQC_CLI.R**: Batch Effect Diagnostics \u0026 Harmonization Stage\n    -  Offers interactive diagnostics for batch effects\n    -  Export the batch effect diagnosis report\n    -  Performs data harmonization to adjust for batch effects  \n-   **post_CLI.R**: Post-Harmonization Stage\n    -   Visualizes age trends across brain structures over the lifespan\n    -   Generates a residual dataset with unwanted covariate effects removed\n\nNote: Detailed information and tutorials can be found: https://zheng206.github.io/ComBatQC-Web/\n\n## Diagram\n![ComBatFamQC Diagram](/inst/figure/ComBatFamQC.png)\n\n## Package Features\n\nThe ComBatFamQC package offers the following five key functionalities:\n\n1. \u003cu\u003e**Interactive Batch Effect Diagnostics \u0026 Harmonization**\u003c/u\u003e\n\n-   **Batch Effect Diagnostics**: ComBatFamQC provides two types of batch effect diagnostics methods for both individual batch effects and global batch effects: 1) *Qualitative Visualization* and 2) *Statistical Testing*. It simplifies the process of performing statistical analyses to detect potential batch effects and provides all relevant statistical test results for batch effect visualization and evaluation.\n\n-   **Harmonization**: ComBatFamQC also provides four types of commonly used harmonization techniques, integrated through the [ComBatFamily](https://github.com/andy1764/ComBatFamily) package developed by **Dr. Andrew Chen**, for users to consider. The four harmonization techniques include: \n    -   Original ComBat (Johnson et al., 2007)\n    -   Longitudinal ComBat (Beer et al., 2020)\n    -   ComBat-GAM (Pomponio et al., 2020)\n    -   CovBat (Chen et al., 2021)\n\n-   **Interactive Visualization through R Shiny**: The ComBatFamQC package comes with an interactive visualization tool built on R Shiny, providing an intuitive user interface to explore and evaluate batch effects, as well as conduct interactive harmonization if needed. The output is organized into multiple tabs, which includes:\n\n    -   **Data Overview**: Complete data overview and exploratory analysis\n    -   **Summary**: Sample Size and Covariate Distribution\n    -   **Residual Plot**: Additive and Multiplicative Batch Effect\n    -   **Diagnosis of Global Batch Effect**: PCA, T-SNE and MDMR\n    -   **Diagnosis of Individual Batch Effect**:\n        -   *Statistical Tests for Additive Batch Effect*: Kenward-Roger (liner mix model), ANOVA, Kruskal-Wallis\n        -   *Statistical Tests for Multiplicative Batch Effect*: Fligner-Killeen, Levene's Test, Bartlett's Test\n    -   **Harmonization** Interactive Harmonization if needed\n\n2. \u003cu\u003e**Post-Harmonization Downstream Analysis**\u003c/u\u003e\n\n-   **Age Trajectory** \\\n    Generate age trend of each brain structure (ROI), adjusting sex and ICV. Customized centiles are enabled as well.\n    -  **Age Trend Plots**\n    -  **Age Trend Table** \n\n-   **Residual Generation** \\\n    Generate residual data set, removing specific covariates' effetcs.\n\n\n## Installation\n\n```{r}\nif (!require(\"devtools\", quietly = TRUE)) {\n    install.packages(\"devtools\")   \n}\n\nlibrary(devtools)\n\ndevtools::install_github(\"Zheng206/ComBatFamQC\", build_vignettes = TRUE)\n\n```\n\n## Tutorial\n\n```{r}\nvignette(\"ComBatQC\")\nvignette(\"Post-Harmonization\")\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZheng206%2FComBatFamQC","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FZheng206%2FComBatFamQC","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZheng206%2FComBatFamQC/lists"}