GWASLab is a Python library and CLI tool for comprehensive processing, quality control, harmonization, visualization, and downstream analysis of GWAS summary statistics. The core object is the `Sumstats` class, which wraps a pandas DataFrame with metadata, status codes, and methods for common operations such as basic QC (`basic_check()`), genome build inference, rsID assignment, allele harmonization, liftover, and format conversion (TSV, VCF, LDSC, PLINK, etc.). The architecture follows a modular design: a pure-calculation `algorithm` subpackage (numpy/scipy only) for effect-size conversions, fine-mapping (ABF), meta-analysis, and power calculations; a `qc` layer for pipeline orchestration with a decorator (`@with_logging`) that enforces column validation, tool availability, and logging; a `hm` layer for variant lookup and harmonization using VCF/BCF and caching (Parquet); a `viz` layer with dozens of plot types (Manhattan, QQ, regional, Miami, forest, phenogram, Sankey) using matplotlib; and an `extension` layer for integrating external tools like LDSC, PRS-CS, SuSiE, and GWAS Catalog API. The CLI (`gwaslab_cli`) exposes subcommands for all major workflows. External dependencies include `pysam`, `polars`, `pyarrow`, `h5py`, `adjustText`, and system tools (`bcftools`, `plink`, `R`). The library is actively developed with extensive test coverage (200+ test files) and bundled reference data for HapMap3, chain files, and cytoband annotations.
Redash is a full-stack business intelligence platform that enables users to connect to multiple data sources, write and schedule queries, build interactive visualizations, and create dashboards with alerting and sharing capabilities. The backend is a Python Flask application with SQLAlchemy for database access, Redis for caching and task queuing, and RQ for background job execution. The frontend is a React single-page application using Ant Design, Plotly, D3, and Leaflet, organized into pages for queries, dashboards, alerts, data sources, and administration. The system exposes a RESTful API for all operations and supports authentication via password, Google OAuth, SAML, LDAP, JWT, and API keys. The architecture follows a modular plugin pattern for query runners and visualizations. Over 35 query runners (e.g., PostgreSQL, BigQuery, Snowflake, MongoDB, Prometheus) are registered via a common base class, each implementing run_query, get_schema, and configuration_schema. The visualization library (viz-lib) is a separate package that registers chart types (line, bar, pie, map, table, cohort, sankey, etc.) with editors and renderers. Dashboards use a grid layout with widgets that can display visualizations, text, or embedded content. Alerts evaluate query results against conditions and send notifications to destinations like Slack, email, PagerDuty, and webhooks. Key data flows: users write SQL or use query runners to fetch data from connected sources; results are cached and can be visualized; dashboards aggregate multiple visualizations with parameter bindings; scheduled queries refresh results and trigger alerts. The system also supports embedding visualizations in external sites and public sharing of dashboards. While primarily an application, the extensive query runner and visualization plugin systems make it a flexible platform for data exploration and operational reporting.
YouPlot is a command-line tool for creating plots in the terminal using Unicode characters. It reads delimited data from stdin or files, parses it into headers and series, and generates various plot types (barplot, histogram, lineplot, scatter, density, boxplot, count) using the UnicodePlot backend. The tool follows Unix conventions, designed for use in data pipelines with options to pass through input data and output plots to stderr/stdout. It features progressive mode for real-time data visualization and supports configuration via CLI flags, config files, and sensible defaults.
This repository is a curated Markdown knowledge base — an "awesome list" — cataloging 300+ externally hosted tools, articles, Twitter threads, dashboards, and educational resources for on-chain cryptocurrency investigations, blockchain forensics, and crypto OSINT. It is classified as data_research only as the closest available fit; in reality it is neither a software application nor a data pipeline. The repository contains zero source code, no ETL scripts, no notebooks, no APIs, and no tests. The entire substance lives in README.md, organized into sections: data-analysis tools, visualization tools, clusterizers (AML clustering), hacks databases, VR/3D visualizations, Monero resources, a knowledge hub of methodology articles, and a list of investigators to follow.
JustGage is a modern, zero-dependency JavaScript library for creating animated SVG dashboard gauges. It is a complete rewrite of the legacy RaphaelJS-based v1.x, using native SVG APIs and ES6+ class-based architecture. The library provides a highly customizable gauge with support for donut, differential, pointer, target lines, custom sectors, and multiple animation easing functions. The source is organized into modular components: core gauge logic (`src/core/JustGage.js`), configuration handling (`src/core/config.js`), a requestAnimationFrame-based animator (`src/core/GaugeAnimator.js`), a native SVG renderer with a Raphael-like wrapper (`src/rendering/svg.js`), and utility modules for colors, formatting, DOM, and general helpers. The build system uses esbuild to produce ESM, CJS, and UMD outputs, and tests are run with the Node.js native test runner and jsdom. The codebase demonstrates good engineering practices: separation of concerns, comprehensive test coverage (unit, integration, edge cases), and CI/CD pipelines. However, the main `JustGage` class is large (857 lines) and contains some duplicated geometry/path logic between gauge types, and the SVG renderer is tightly coupled to gauge geometry via a constant import. Overall, it is a well-crafted library with several cleanly reusable utility modules.
Kaleido is a Python library for static image export of Plotly figures (PNG, SVG, PDF, etc.) by rendering them in a headless Chrome browser via the DevTools protocol. The library provides both async and sync APIs, with an optional singleton server mode for reuse across calls. It manages a pool of browser tabs for parallel rendering, supports chunked JSON transfer for large figures (>10MB), and includes profiling capabilities. The architecture is centered around the `Kaleido` class, which orchestrates browser lifecycle, tab allocation, and rendering through `_KaleidoTab` instances. The library is consumed by Plotly.py and can be used standalone or via CLI tools (`kaleido_mocker`, `kaleido_get_chrome`). Dependencies include `choreographer` (Python-DevTools bridge), `orjson`, and `logistro`. The test suite includes extensive integration tests with hundreds of Plotly figure mocks covering a vast range of trace types and layout features.
C3.js is a D3-based charting library that provides a high-level, configurable API for generating interactive SVG charts directly in the browser. The library supports a wide range of chart types including line, bar, area, pie, donut, gauge, scatter, spline, step, and the specialized Stanford diagram. It handles data ingestion from multiple formats (JSON, CSV, TSV, rows, columns) and offers features such as zooming, subcharts (brush), legends, tooltips, grid lines, regions, and animated transitions. The core is driven by a single configuration object passed to c3.generate(), which controls all visual and behavioral aspects. Architecturally, C3.js follows a classic prototype-extension pattern: the ChartInternal class holds the rendering logic, and each chart type and API method is added via prototype extensions. The public API is exposed through a Chart instance returned by the factory function. The library is self-contained, depending only on D3.js (v5) and runs entirely client-side. It includes polyfills for older browsers (SVGPathSeg, String.padEnd, Object.assign) and has been tested with Jasmine/Karma in a headless browser environment. The codebase exhibits good modularity within a single-bundle approach: internal modules (e.g., data conversion, color scales, axis rendering, tooltip) are logically separated in the source directory. However, the bundled output is monolithic, making tree-shaking difficult. The project is well-documented with sample pages and a documentation site built with Middleman (Ruby). Maintenance has been stable but slow; the latest version is 0.7.20 with no major releases in recent years. The dependency on D3 v5 (instead of v7) and the presence of IE-specific polyfills indicate some technical drift. Despite this, the code is functional, well-tested, and still widely used. It demonstrates a strong real-world application of D3 for reusable chart components.
This is the core implementation of UMAP (Uniform Manifold Approximation and Projection), a scikit-learn-compatible library for non-linear dimensionality reduction. The repository provides a well-structured modular architecture with core classes UMAP, ParametricUMAP (TensorFlow-based), and AlignedUMAP for jointly embedding multiple related datasets. It features a rich set of numba-accelerated distance functions, sparse matrix support, spectral initialization, and a sophisticated optimization engine. Although primarily a library, the repo includes extensive Jupyter notebooks and documentation demonstrating research workflows (parametric UMAP with reconstruction, hyperparameter animation, global loss tuning). The codebase is actively maintained, with ongoing work to remove deprecated patterns such as fastmath, but retains some technical debt (unresolved FIXMEs, sparse test coverage in some areas, and dependency on older scikit-learn APIs). Overall, it is a high-quality, reusable library with clear separation of concerns, making it suitable for integration into data science pipelines and for study of manifold learning techniques.
This is a monorepo for a web-based vector graphics editor (similar to Figma) built with React, Canvas2D, and TypeScript. It features a core editor with drawing tools, layers, path editing, undo/redo, SVG import/export, and real-time multiplayer collaboration (via Yjs/Hocuspocus). The architecture includes a standalone editor app, a deprecated multiplayer variant, a backend (NestJS + Prisma + PostgreSQL) for authentication and file storage, and a workbench for team management. Shared packages provide geometry utilities, UI components, icons, and Skia PathKit WASM bindings. The codebase demonstrates strong engineering patterns (command pattern, event emitter, strategy pattern) and provides several reusable components, especially the geometry library and UI components. However, there is significant code duplication between the standalone and multiplayer apps, and the multiplayer app is deprecated, indicating some drift risks. The backend is functional but has minimal stubs and a hardcoded JWT secret.
This repository is a curated list of awesome Jupyter projects, libraries, and resources. It serves as a reference for developers and data scientists seeking tools to enhance their Jupyter experience, including runtimes, visualization libraries, collaboration tools, and more. The list is organized into thematic categories (e.g., Runtimes/Frontends, Collaboration/Education, Visualization) for easy navigation and discovery. The repository includes maintenance workflows to ensure the quality and consistency of the list. A GitHub Actions workflow runs awesome-lint and remark-lint to validate the format of the list and keep it alphabetized. Another workflow tracks GitHub traffic statistics. The project follows standard contribution guidelines and is licensed under Creative Commons Attribution-ShareAlike 4.0. While the repository itself does not contain executable code or data, it provides significant value as a discovery tool for the Jupyter ecosystem. The maintained workflows demonstrate good practices for keeping awesome lists clean and consistent, which can be reused in similar projects. The content is regularly updated, as evidenced by recent commits, indicating active maintenance.
Container Tool Kit (CTK) is a web application that provides a visual editor for Docker Compose and Kubernetes manifest files. Users can create and manage projects by dragging and dropping services, volumes, and networks onto a canvas, editing node configurations through detailed forms, and viewing the resulting YAML/JSON in a synchronized code editor. The backend is built with FastAPI and PostgreSQL, handling project persistence, user authentication (JWT-based), manifest generation (including calling kompose for Kubernetes), and project import from remote YAML URLs. The frontend is a React/TypeScript single-page application using jsPlumb for the interactive canvas, Formik for form management, and Monaco Editor for code editing. The application supports both anonymous and authenticated usage, with features like autosave, visibility toggles, and pagination for project lists.
This is an R/Bioconductor package for making enriched heatmaps, primarily used in epigenomics to visualize enrichment of genomic signals (e.g., histone modifications, DNA methylation) around target regions (e.g., transcription start sites). The package provides a workflow: normalize signals to a matrix via `normalizeToMatrix()`, then draw a heatmap with `EnrichedHeatmap()`, which is a subclass of ComplexHeatmap. It includes specialized annotation (`anno_enriched()`), row ordering by enrichment scores, smoothing, and support for categorical signals. The architecture leverages S3 classes (normalizedMatrix) and integrates with GenomicRanges for genomic interval operations. It is well-documented with vignettes and a pkgdown site, and includes Rcpp for performance-critical distance calculations. While the package is actively maintained, there are some signs of technical drift such as deprecated arguments and an old CI configuration.
maftools is an R/Bioconductor package for the analysis and visualization of somatic mutations in cancer genomics, primarily using Mutation Annotation Format (MAF) files. It provides a comprehensive suite of functions for reading, summarizing, and plotting mutation landscapes (oncoplots, lollipop plots, rainfall plots), detecting driver genes, analyzing mutational signatures via NMF, assessing tumor heterogeneity (MATH score), comparing cohorts, and integrating copy number alterations from GISTIC or ASCAT. The package also includes tools for converting other formats (ANNOVAR, ICGC) to MAF, querying cancer hotspots directly from BAM files via a C backend, and detecting sample swaps. It is widely used by cancer researchers and relies on Bioconductor infrastructure, with extensive bundled reference data (COSMIC signatures, cancer hotspots, TCGA burden). While primarily a software library, its heavy use of precompiled research data and domain-specific pipelines gives it a hybrid character. The codebase is well-structured with S4 classes and data.table for performance, though some functions have long parameter lists and a few deprecated modules.
Kanaries/Rath is an open-source augmented analytics BI platform that automates exploratory data analysis, causal discovery, and dashboard creation. It is a full-stack application with a React/TypeScript frontend (Vite, MobX, shadcn/ui) and multiple Python microservices (causal inference, narrative insight generation, database connectors). The system ingests data from files, databases (PostgreSQL, ClickHouse, MySQL, etc.), and REST APIs, then provides automated visualization (mega-automation), semi-automated exploration, causal analysis (PC, FCI, GES, XLearner), and interactive dashboard building. It also includes custom Vega renderers (WebGL, Painter) for high-performance chart rendering and an Electron desktop wrapper. While primarily an application, it contains significant data research components such as causal discovery algorithms, statistical insight detection, and text pattern extraction, making it a hybrid tool for both data exploration and advanced analytics.
modV is a desktop application for real-time audio-visual synthesis and effects processing. Built with Electron, Vue.js, and WebGL, it provides a modular environment where users can create chains of visual modules (2D, 3D, shader-based) that react to audio, MIDI, or user-defined parameters. The application features a dual-store Vuex architecture (main and worker processes) to keep the UI responsive while handling intensive graphics and audio processing in a background thread. Key capabilities include audio feature extraction via Meyda, MIDI input mapping, a plugin system for extensibility, and a preset system with seamless state switching. The project emphasizes real-time performance and flexibility for VJs, artists, and live visual performers.
This repository is a control system for AlfaZeta FlipDot display panels, electromagnetic dot matrix displays that physically flip dots to show images. It provides both Processing (Java) and Node.js implementations that convert image data to the specific binary format required by the displays and transmit it via serial/USB or Ethernet connections. The system includes a virtual display buffer for drawing animations and games, with examples like Tetris, clock effects, and procedural visualizations. When no physical hardware is connected, it operates as a simulator. The architecture separates core display logic, hardware communication, configuration, and example content into modular components.
EasySpider is a visual, no-code web scraping tool that combines an Electron desktop application, a Chrome browser extension, and a Python execution engine. Users design scraping workflows via a flowchart-based UI (Vue.js) where they define steps like opening pages, clicking elements, extracting data, looping, and conditional branching. The task definitions are saved as JSON graphs. The Python backend (ExecuteStage) loads these graphs and drives Chrome using Selenium with an undetected-chromedriver fork to evade bot detection. Extracted data can be written to CSV, Excel, JSON, or MySQL. The tool also includes OCR support (ddddocr), custom JavaScript/Python execution, and Cloudflare bypass capabilities. The architecture is a hybrid desktop app with a local HTTP server (Express) that spawns executor processes and communicates via WebSocket. The Chrome extension assists in element selection and XPath generation. While the tool is functional and popular (44k+ stars), the codebase exhibits significant duplication (e.g., identical task files across platform directories, duplicated Bootstrap and content scripts), hardcoded paths, monolithic executor scripts, and mixed-language strings. Several experimental modules (LLM, federated learning) are present but not integrated. The project is actively maintained with recent commits and packaging scripts, but technical debt and drift (Bootstrap 4, Vue 2, pinned Python dependencies) are moderate.
This repository is a comprehensive educational resource for linear algebra and matrix computations, serving as the companion code for the book "Book 4: The Power of Matrices" from the "Iris Flower Book" series. It contains Jupyter notebooks and Streamlit apps that visualize core concepts from vectors and matrices to eigenvalue decomposition, SVD, and data projections. The code is pedagogical, using synthetic data and the Iris dataset to illustrate mathematical ideas through interactive plots and heatmaps. It is not a production application or data pipeline but a teaching tool. The repository is well-organized by chapter, though code is duplicated across notebooks rather than modularized, reflecting its educational nature.
This repository powers the personal finance blog 'OfDollarsAndData.com'. It is primarily a data research collection, consisting of hundreds of R scripts that import, clean, and analyze financial and economic datasets to produce publication-ready charts, tables, and interactive calculators for blog posts. The data lineage is clear: raw data is downloaded or read from external sources (Shiller S&P 500, FRED, BLS, Survey of Consumer Finances, YCharts, etc.) in import/ scripts, transformed and saved as RDS files in build/ scripts, and then consumed by analysis/ scripts that generate plots with a consistent ggplot theme. The repository also includes a webdev folder containing a WordPress theme with custom widgets and calculator embedding logic. While the codebase is not a packaged application and lacks testing or CI, the analysis is thorough and well-structured for its purpose. The hybrid nature includes both data research R scripts and web development PHP/JS code, but the dominant character is data research.
GraphvizOnline is a client-side Single Page Application (SPA) designed for editing and rendering Graphviz DOT language diagrams directly within the browser. The architecture is purely frontend, utilizing the Ace Editor library for syntax highlighting and `viz.js` (Graphviz compiled to JavaScript/WebAssembly) for rendering. The application manages state via URL parameters and hash fragments, enabling shareable links and presentation modes without backend dependencies. It functions as a self-contained static web tool, relying on bundled dependencies for core functionality.