{
  "_id": "6ad0b4bcb0a1b4b4099d71f3",
  "Package": "detectPanel",
  "Type": "Package",
  "Title": "Leakage-Aware Discovery of Small Biomarker Panels",
  "Version": "0.1.3",
  "Author": "Fuhao Jiang [aut, cre]",
  "Maintainer": "Fuhao Jiang <emr39515@gmail.com>",
  "Authors@R": "c(\nperson(given = \"Fuhao\", family = \"Jiang\",\nemail = \"emr39515@gmail.com\",\nrole = c(\"aut\", \"cre\"))\n)",
  "Description": "Discovers small binary-classification biomarker panels\nfrom count or expression matrices while prioritizing\ndetectability, expression stability, and univariate\ndiscrimination. Candidate filtering and panel selection can be\nrepeated inside nested cross-validation to reduce information\nleakage. The package provides shared resampling splits,\nexhaustive small-panel search, logistic model fitting with an\nautomatic ridge fallback for unstable separation-prone fits,\nout-of-fold evaluation, selection-frequency summaries, and\noptional 'DESeq2' differential-expression support. The nested\nmodel-selection workflow follows Varma and Simon (2006)\n<doi:10.1186/1471-2105-7-91>, and the optional\ndifferential-expression analysis uses Love, Huber, and Anders\n(2014) <doi:10.1186/s13059-014-0550-8>.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/Emr-27/detectPanel",
  "BugReports": "https://github.com/Emr-27/detectPanel/issues",
  "Encoding": "UTF-8",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-15 11:05:59 UTC",
    "User": "root"
  },
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-09-15 11:00:41 UTC",
  "RemoteUrl": "https://github.com/cran/detectPanel",
  "RemoteRef": "HEAD",
  "RemoteSha": "60a22f15f64c3c9b8ac8f3d62d8f644096e36482",
  "_user": "cran",
  "_type": "src",
  "_file": "detectPanel_0.1.3.tar.gz",
  "_fileid": "https://r2.ropensci.org/93cb63720e486331ab3174e4f201966d085d4203618fdd897113c7aae44005c4",
  "_filesize": 174457,
  "_sha256": "93cb63720e486331ab3174e4f201966d085d4203618fdd897113c7aae44005c4",
  "_expires": "2027-01-23T11:10:09.000Z",
  "_created": "2026-10-15T11:05:59.000Z",
  "_published": "2026-10-15T11:10:52.506Z",
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/38724489807",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 116388432424,
      "time": 206,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11967976307"
    },
    {
      "job": 116388432227,
      "time": 208,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11967677180"
    },
    {
      "job": 116387001315,
      "time": 214,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11968210549"
    },
    {
      "job": 116388432269,
      "time": 114,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11968170921"
    },
    {
      "job": 116388432369,
      "time": 126,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11968245962"
    },
    {
      "job": 116388432497,
      "time": 139,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11968600744"
    }
  ],
  "_upstream": "https://github.com/cran/detectPanel",
  "_commit": {
    "id": "60a22f15f64c3c9b8ac8f3d62d8f644096e36482",
    "author": "Fuhao Jiang <emr39515@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.1.3\n",
    "time": 1789470041
  },
  "_maintainer": {
    "name": "Fuhao Jiang",
    "email": "emr39515@gmail.com",
    "login": "emr-27",
    "description": "",
    "uuid": 310090852
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2.0",
      "role": "Depends"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "DESeq2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "pheatmap",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-38",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.1.3",
      "date": "2026-09-15"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "emr-27",
      "count": 1,
      "uuid": 310090852
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 630,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 477,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/detectPanel"
  },
  "_devurl": "https://github.com/emr-27/detectpanel",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/detectPanel.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/emr-27/detectpanel",
  "_realowner": "emr-27",
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.1.3",
      "date": "2026-09-15"
    }
  ],
  "_exports": [
    "confusion_metrics",
    "detectPanel",
    "discover_panel",
    "evaluate_markers",
    "exclude_features",
    "export_results",
    "fit_panel",
    "flag_pca_outliers",
    "make_repeated_stratified_splits",
    "nested_validate_panels",
    "plot_marker_expression",
    "plot_marker_roc",
    "plot_panel_heatmap",
    "plot_volcano",
    "predict.detectPanel_result",
    "preselect_markers",
    "run_deseq2",
    "score_detectability",
    "search_panels",
    "transform_assay",
    "validate_assay_data"
  ],
  "_help": [
    {
      "page": "detectPanel-package",
      "title": "Leakage-Aware Discovery of Small Biomarker Panels",
      "topics": [
        "detectPanel-package"
      ]
    },
    {
      "page": "confusion_metrics",
      "title": "Compute Confusion-Matrix Metrics",
      "topics": [
        "confusion_metrics"
      ]
    },
    {
      "page": "detectPanel",
      "title": "Discover, Validate, and Refit a Biomarker Panel",
      "topics": [
        "detectPanel",
        "discover_panel",
        "plot.detectPanel_result",
        "print.detectPanel_result",
        "summary.detectPanel_result"
      ]
    },
    {
      "page": "export_results",
      "title": "Export detectPanel Results",
      "topics": [
        "export_results"
      ]
    },
    {
      "page": "fit_panel",
      "title": "Fit and Predict with a Biomarker Panel",
      "topics": [
        "fit_panel",
        "predict.detectPanel_fit",
        "print.detectPanel_fit",
        "summary.detectPanel_fit"
      ]
    },
    {
      "page": "flag_pca_outliers",
      "title": "Flag Potential PCA Outliers Without Deleting Samples",
      "topics": [
        "flag_pca_outliers"
      ]
    },
    {
      "page": "resampling-search",
      "title": "Shared Resampling Splits and Exhaustive Panel Search",
      "topics": [
        "make_repeated_stratified_splits",
        "print.detectPanel_search",
        "search_panels"
      ]
    },
    {
      "page": "nested_validate_panels",
      "title": "Nested Validation of Biomarker Panel Discovery",
      "topics": [
        "nested_validate_panels",
        "plot.detectPanel_nested",
        "print.detectPanel_nested",
        "summary.detectPanel_nested"
      ]
    },
    {
      "page": "plotting",
      "title": "Diagnostic Plotting Helpers",
      "topics": [
        "plot_marker_expression",
        "plot_marker_roc",
        "plot_panel_heatmap",
        "plot_volcano"
      ]
    },
    {
      "page": "predict.detectPanel_result",
      "title": "Predict samples using a fitted detectPanel result",
      "topics": [
        "predict.detectPanel_result"
      ]
    },
    {
      "page": "run_deseq2",
      "title": "Optional DESeq2 Differential-Expression Adapter",
      "topics": [
        "run_deseq2"
      ]
    },
    {
      "page": "marker-selection",
      "title": "Score and Preselect Candidate Biomarkers",
      "topics": [
        "evaluate_markers",
        "preselect_markers",
        "score_detectability"
      ]
    },
    {
      "page": "data-preparation",
      "title": "Validate, Filter, and Transform Assay Data",
      "topics": [
        "exclude_features",
        "transform_assay",
        "validate_assay_data"
      ]
    }
  ],
  "_readme": "https://github.com/cran/detectPanel/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "labeling",
    "lifecycle",
    "R6",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "nested-validation.Rmd",
      "filename": "nested-validation.html",
      "title": "Leakage-aware biomarker panel discovery",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why nested validation is necessary",
        "Synthetic example",
        "Interpreting the two models",
        "Candidate fallback"
      ],
      "created": "2026-09-15 11:00:41",
      "modified": "2026-09-15 11:00:41",
      "commits": 1
    }
  ],
  "_score": 2.6989700043360187,
  "_indexed": false,
  "_nocasepkg": "detectpanel",
  "_universes": [
    "cran"
  ],
  "_indexurl": "https://emr-27.r-universe.dev/detectPanel",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.3",
      "date": "2026-10-15T11:08:57.000Z",
      "distro": "resolute",
      "commit": "60a22f15f64c3c9b8ac8f3d62d8f644096e36482",
      "fileid": "https://r2.ropensci.org/7ee7ba35d1d4f52f765107d38e8ba36d7ceb9dc56d387a9a75b5779cee587b44",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38724489807"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.3",
      "date": "2026-10-15T11:09:07.000Z",
      "distro": "resolute",
      "commit": "60a22f15f64c3c9b8ac8f3d62d8f644096e36482",
      "fileid": "https://r2.ropensci.org/05d6ca749823ccb90d6d726c5768f7334ddc8a936593dff0ab4967a79518736f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38724489807"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.3",
      "date": "2026-10-15T11:08:12.000Z",
      "commit": "60a22f15f64c3c9b8ac8f3d62d8f644096e36482",
      "fileid": "https://r2.ropensci.org/e01faa0d4f5bc0664573a34d49b237fc2c286eaef8b58d7dcb57effb04bfb60f",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38724489807"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.3",
      "date": "2026-10-15T11:07:30.000Z",
      "commit": "60a22f15f64c3c9b8ac8f3d62d8f644096e36482",
      "fileid": "https://r2.ropensci.org/c3fcf0e15362730b72895decab9834f3a33a569c0a9dc9af68e548c22f6eea1c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38724489807"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.3",
      "date": "2026-10-15T11:07:44.000Z",
      "commit": "60a22f15f64c3c9b8ac8f3d62d8f644096e36482",
      "fileid": "https://r2.ropensci.org/c0b0620e8a2b2debeca321d95367318ec9c506965c5eeabc81509af691b0aa60",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38724489807"
    }
  ]
}