lpr_check()/checkPackRat(): diagnostic function that validates project state, checks file integrity, and reports optional dependency statuslpr_*aliases for all 12 exported functions (e.g.,lpr_init,lpr_export,lpr_query_ot) — easier tab-completion and discoverability; both CamelCase andlpr_*names work identically- New vignette:
new_ux_featuresdemonstrating check and alias usage
- Moved
plotgardenerandhttrfrom Imports to Suggests withrequireNamespace()guards, reducing the install footprint for users who don't need locus zoom plots or MouseMine queries buildPacket()zip creation now tries thezipR package first, then falls back to systemzip, with an informative error if neither is available- Expanded README with install instructions for all 4 genome builds (hg38, hg19, mm39, mm10) and
lpr_*quick-start examples
- Consolidated duplicate helpers (
.render_genes,.standardize_chrom) and%||%operator into single definitions - Added
zipto Suggests
- Locus zoom chromosome matching: Added
.standardize_chrom()helper that normalizes chromosome columns in scan and signal tables before rendering. Strips "chr" prefix fromchromvalues so they matchpgParamsconvention (derived fromregions.csv). Previously, data with "chr3" inchromwould silently produce an empty Manhattan/signal panel because it didn't match "3" frompgParams. - Missing
.standardize_chrom()function: The function was referenced ingenerateLocusZoomPlot()but absent from source, causing errors on fresh installs. Now defined inplotZoom.R.
generateLocusZoomPlot()now checks forGenomicFeaturespackage availability before attempting gene track rendering, with a clear install message on failure- Added
GenomicFeaturesto Suggests in DESCRIPTION
- Users with
Seqinfo>= 1.0.0 (Bioconductor 3.21+) should ensureGenomeInfoDb>= 1.46.0 is installed. OlderGenomeInfoDbversions conflict with theSeqinfopackage split, causingplotGenes()to fail with an opaqueseqinfomethod dispatch error. Upgrade via:mamba install -c bioconda bioconductor-genomeinfodb=1.46.2orBiocManager::install("GenomeInfoDb")
buildPacket(): new exported function that zips the contents of.locusPackRat/output/into a single shareable archive with an auto-generatedREADME.mdsummarizing project metadata, supplementary data sources, and included filesbuildPacket(include_supplementary): optionally bundles raw supplementary CSVs from.locusPackRat/supplementary/into the zip. AcceptsFALSE(default),TRUE(all tables), or a character vector of specific table names. Files are placed in asupplementary/subdirectory. Warns on missing table names.- Auto-generated README in packets includes an "Included Supplementary Files" table when supplementary CSVs are bundled
- Vignette
genenetwork_qtl: chunks now evaluate by default with cached API fallback when GeneNetwork2 is unavailable - Vignette
single_cell_integration: conditional evaluation no longer requires a pre-existing project directory; only Seurat and ggplot2 are needed
- Vignette
locusPackRat_workflow: added "Building Shareable Packets" section withbuildPacket()usage and "Including Supplementary CSVs" examples
- Exported
buildPacket()in NAMESPACE - Added
data-rawto.Rbuildignore
- Known Drugs query: Fixed invalid
mechanismsOfAction { actionType }field in GraphQL query; now usesmechanismOfActionat the KnownDrug row level (matches current Open Targets API schema) - Known Drugs query: Added
size: 500parameter for complete results (default page size truncated output) - Pharmacogenomics query: Fixed
variantFunctionalConsequence(nowSequenceOntologyTermobject) and drug fields (now nested underdrugs: [DrugWithIdentifiers!]!); rewrote parser for correct extraction - Expression parser: Fixed
lapplyiterating over data.frame columns instead of rows whenfromJSONauto-simplifies; now produces ~180 tissue rows per gene instead of 3 empty rows - Mouse Phenotypes parser: Applied same data.frame-to-list-of-rows guard to prevent column iteration bug; renamed
targetFromSourceIdtotargetInModelEnsemblIdto match current schema - DepMap parser: Fixed column explosion (177 wide-format columns instead of 6) by extracting only expected columns from auto-simplified data.frame
- QTL credible set gene linking: Expanded
id_mapto include all ensembl IDs from QTL response (not just project genes), fixing 0/179 match issue in region mode - Locus zoom plot path:
output_filenow accepts only a filename; full paths are reduced tobasename()with a warning, preventing nested.locusPackRat/output/<path>/file.pdfoutput
generateLocusZoomPlot()supports PNG output via file extension; locus zoom plots display inline inregion_qtl_opentargetsvignette- Reduced batch size to 5 genes when querying heavy data types (mouse_phenotypes, known_drugs) to avoid API timeouts
- Increased API timeout from 60s to 120s for Open Targets queries
- Improved parser dual-path handling: data.frame vs list-of-lists detection is now consistent across all data type parsers
- Audit script now uses name-based file lookup instead of newest-file heuristic, includes row-count validation and locus zoom plot test
- Vignette
genenetwork_qtl: defensiveintersect(names(...), expected_cols)column subsetting - Vignette
region_qtl_opentargets: locus zoom chunks conditionally evaluated when Bioconductor annotation packages are available - Vignette
single_cell_integration: all chunks conditionally evaluated when Seurat and ggplot2 are installed (fixes R CMD check failure on systems without Seurat) - Vignette
locusPackRat_workflow: synced VignetteIndexEntry with YAML title
- Added
Seurat,TxDb.Hsapiens.UCSC.hg38.knownGene,org.Hs.eg.dbto Suggests - Added
chr_clean,study_locus_id,study_target_gene_id, andqtl_gene_idtoglobalVariables()(fixes R CMD check NOTEs) - Added
.specifyand.locusPackRatpatterns to.Rbuildignore
queryOpenTargetsQTL(): Query eQTL, pQTL, and sQTL credible sets from the Open Targets Genetics portal, with locus-to-gene (L2G) prediction scores- Expanded
queryOpenTargets()data types: now supportsdiseases,constraints,tractability,expression,mouse_phenotypes,homologues,interactions,known_drugs,depmap, andpharmacogenomics - Genome build messaging:
initPackRat()now displays a prominent note reminding users that all data must match the project's genome build, with guidance on usingrtracklayer::liftOver()for coordinate conversion
region_qtl_opentargets: Region-level QTL analysis using Open Targets eQTL/pQTL datagenenetwork_qtl: GeneNetwork2 integration for BXD/DO/HMDP QTL studiessingle_cell_integration: Single-cell RNA-seq integration via Tabula Muris and Seurat
- Removed
ComplexUpsetdependency (replaced with base R alternatives)
- Added plotgardener citation to locus zoom plot output
listPackRatTables(full_info = TRUE)now reports column types, value ranges, and sample counts
listPackRatTables(): parameterfullInforenamed tofull_infofor API consistency
- Testing infrastructure with testthat
- Documentation examples for all exported functions
- Input validation improvements in
addRatTable()(validates table_name characters) - Match statistics reporting in
initPackRat()(shows matched/unmatched genes) - GitHub Actions CI for automated R CMD check
- Overlap detection in
addRatTable()withoverlap_modeparameter for region-based linking removeRatTable()function for removing supplementary tables from projects- Column abbreviation feature for Excel output prefixes (avoids column name collisions)
- Legacy genome support: hg19 and mm10 now available alongside hg38 and mm39
queryMouseMine()now uses httr for more reliable API communication- Automatic formatting for MouseMine and OpenTargets data in Excel sheet outputs
- Row stripping in
makeGeneSheet()only occurs with >= 2 rows present - Fix for handling multiple regions in
generateLocusZoomPlot() - Rare error fix in OpenTargets query response handling
- Updated QTL mapping vignette
- Improved function documentation and column name descriptions
- Initial support for locus zoom plot generation via plotgardener
- Query functions for external databases (MouseMine, OpenTargets)
- Project-based workflow with persistent storage
- Project directory structure generation
- Vignette for basic workflow
- Initial package release
- Core functions:
initPackRat(),addRatTable(),makeGeneSheet() - Support for human and mouse genomes (hg38, mm39)