Revision history for Perl distribution Pheno-Ranker 1.09 2026-10-09T00:00:00Z (Manuel Rueda ) - Added a native desktop application for local patient and cohort analysis, result exploration, reusable projects, and Beacon v2 import - Migrated project documentation from MkDocs to Docusaurus - Replaced bff-pxf-plot PNG output with self-contained HTML reports covering annotation distributions, coverage, and term frequencies - Added CLI label exports and optional ontology label hints in PDF reports 1.08 2025-05-01:00:00Z (Manuel Rueda ) - Refactored internals to split configuration, context, compare, ranking, and graph helpers - Added Matrix Market output (--matrix-format mtx) and graph edge filtering options - Use Perl-versioned Inline cache directories to avoid stale compiled objects on CPAN testers - Canonicalize nested arrays by meaningful content to avoid order-only differences in complex JSON - Renamed configuration keys to indexed_terms, index_regex, and identity_paths; legacy names remain supported - Added default first-level array identities for generic JSON (format: JSON) when identity_paths is absent - bff-pxf-plot: - Improved plot aesthetics and readability while preserving the dependencies - QR-code utils: - Updated PDF template 1.07 2025-06-05:00:00Z (Manuel Rueda ) - Revived --patient-of-interest (--poi) option - Updated Dockerfile to use perl:stable-bookworm - Switched cpan-publish.yml from ubuntu-latest to ubuntu-22.04 - Fixed issue with --prp and BFF - bff-pxf-simulator: - PXF: Fixed 'procedure.term.id' with 'procedure.code.id' 1.06 2025-05-27:00:00Z (Manuel Rueda ) - Replace --max-matrix-items-in-ram by --max-matrix-records-in-ram 1.05 2025-02-17:00:00Z (Manuel Rueda ) - Added key 'zlib_base64_*' to *.ref_binary_hash.json - Optimized ‘ref_binary_hash’ data loading for faster performance 1.04 2025-02-11:00:00Z (Manuel Rueda ) - Set .Inline at user's home dir 1.03 2025-02-04:00:00Z (Manuel Rueda ) - Renamed 'Stats.pm' to 'Metrics.pm' - Switched metrics to Inline C to enhance speed for large binary string vectors 1.02 2025-02-02:00:00Z (Manuel Rueda ) - Renamed 'Align.pm' to 'Compare.pm' - Expanded 'rank.txt' with new columns: REFERENCE-VARS, TARGET-VARS, INTERSECT, INTERSECT-RATE(%), COMPLETENESS(%) - Renamed '--max-number-var' to '--max-number-vars' to prevent mistakes - Moved t/plot.t to xt/ as Python libraries caused issues in GitHub builds - Added "interpretations" to PXF in 'bff-pxf-plot' - Introduced '--retain-excluded-phenotypicFeatures' to include "excluded": true in comparisons - Added '--precomputed-ref-prefix' for pre-computed cohort data - Enabled support for .gz JSON/YAML inputs - Added 'share/diseases' with disease-based reference cohorts - Introduced '--max-matrix-items-in-ram' as option (+ config) to speed up jobs for users with enough RAM 1.01 2025-01-16:00:00Z (Manuel Rueda ) - DockerHub images now support Linux amd64 and arm64 (M-based Macs) 1.00 2024-11-27:00:00Z (Manuel Rueda ) - Added DOI to docs - Added term 'phenotypicFeatures' to PXF in bff-pxf-plot - Changed { id => 'NCIT:NA0000', label => 'NA' } to { id => 'NCIT:C126101', label => 'Not Available' } 0.12 2024-10-18T00:00:00Z (Manuel Rueda ) - Added UTF-8 encoding for writing alignment text files - Added parser to guess labels for variables without a key.label 0.11 2024-09-29T00:00:00Z (Manuel Rueda ) - Added support for BFF pedigrees (excluded by default via regex in config) - Discarded '_id|datasetId' keys using regex in config - Used sprintf in 'Average Path Length' at for CPAN test compliance 0.10 2024-08-07T00:00:00Z (Manuel Rueda ) - Fixed UTF-8 printing issue for primary_key in STDOUT - Added native support for interpretations nested properties up to 2D in PXF 0.09 2024-05-04T00:00:00Z (Manuel Rueda ) - Enhanced the csv2pheno-ranker's guessing mechanism for array fields; now evaluates all rows instead of just the first one - New module added: lib/Pheno/Ranker/Graph.pm - Introduced option --cytoscape-json to generate graphs compatible with Cytoscape - Added option --graph-stats to compute basic statistics using the Graph CPAN module - Updated cpanfile and Makefile.PL to include the Graph module 0.08 2024-04-24T00:00:00Z (Manuel Rueda ) - Added Unicode support to csv2pheno-ranker - Introduced --array-separator option in csv2pheno-ranker with default '\|' - Fixed option --age to be used with BFF/PXF formats only 0.07 2024-04-22T00:00:00Z (Manuel Rueda ) - Excluded keys with {} or [] values (e.g. subject.vitalStatus: {}) - Precompiled regex patterns where possible - Schema validation errors related to weights are now directed to STDERR - Added support for keys with non-word characters (e.g., "Survey.Timestamp.1") 0.06 2024-04-06T00:00:00Z (Manuel Rueda ) - Renamed --primary-key to --primary-key-name and --set-primary-key to --generate-primary-key in csv2pheno_ranker for clarity - Changed from perl:5.36-bullseye to perl:stable-bullseye in Dockerfile - Excluded 'NA', 'NaN', undef, {}, and [] from coverage_stats counts - Froze a few modules in requirements.txt 0.05 2024-03-19T00:00:00Z (Manuel Rueda ) - Implemented sprintf in jaccard function for FreeBSD CPAN test compliance - Added utils/bff_pxf_plot to create PNG with stats - Updated Dockerfile - Ensured termination with an error if primary_key is unset for any object 0.04 2023-12-26T00:00:00Z (Manuel Rueda ) - Added List::MoreUtils to cpanfile/Makefile.PL - Added error when --include-terms does not exist in cohort(s) - Added t/die.t for the above condition (+others) - Refactored code in .t and .pm to enhance readability and maintainability - Spiced up die/warn messages with bold-colored text - Added utils/barcode to deal with QR codes (+Dockerfile and t) - csv2pheno-ranker now accepts .tsv (sep \t) - Fixed stringification of weights (read from YAML) on JSON export - Added flag --similarity-metric-cohort - Added terms 'procedures,exposures' to bff-pxf-simulator 0.03 2023-11-27T00:00:00Z (Manuel Rueda ) - Updated Align.pm for optimized performance with datasets over 5,000 rows - Cleaned up matrix.txt by removing trailing tab characters - Refined STDERR messages for clearer communication - Introduced a TODO in t/sim.t (test 3) for future improvement (fails in ~10% of CPAN) - Streamlined setup by removing Carton instructions from README.md Note: Versions <= 0.02 were primarily for testing deployment on CPAN.