Tool: GSE Matrix Cleaner: In-browser streaming tool to clean & normalize large GEO Series Matrices
Hi all,
When working with Series Matrix files downloaded from NCBI Gene Expression Omnibus (GEO), a recurring frustration is dealing with preliminary data hygiene:
- Stripping dozens of metadata comment lines (
!Series_...) at the top of the file. - Inconsistent missing value encodings (
NA,null, hyphens, or blank cells). - Memory allocation crashes (
cannot allocate vector of size ...) in RStudio when loading 1GB+ matrices into memory on standard workstations.
To streamline this preprocessing step, I developed a lightweight, local-first web utility: GSE Matrix Cleaner (https://byqing.com/gse).
Architecture & Capabilities
- 2-Pass Stream Parsing: Reads DOM
Fileobjects in 5MB slices via Web Workers, bypassing V8 heap limits on large 50,000+ row matrices.- Pass 1: Accumulates column-wise library sizes and transcript rate sums (for TPM/FPKM scaling) without retaining numeric cells in memory.
- Pass 2: Applies quality filters, mathematical normalizations, and serializes the cleaned matrix directly into Blob chunks.
- Client-Side Privacy: All computation occurs 100% locally in the browser thread. No genomic sequence or clinical expression data is ever uploaded to any cloud or remote server (HIPAA / GDPR compliant by design).
- Downstream Integration: Exports clean, standard CSV matrices that load directly into
limma,DESeq2, orWGCNAwithread.csv(..., row.names=1). - Quality Control Reports: Automatically generates an interactive, color-coded HTML QC report documenting all dropped rows and imputed values for lab record keeping.
Algorithms Supported
- Missing Value Imputation: Drop row, replace with 0, or calculate row-wise mean.
- Log Transformation:
Log2(x + 1)with negative-value safeguards. - Low-variance and low-expression threshold filtering.
- Advanced Normalization: Column-wise CPM, TPM, FPKM (via custom or reference gene lengths), and row-wise Z-score standardization / Min-Max scaling.
The tool is live and freely available to test without registration: Live Web Tool: https://byqing.com/gse
I would welcome any feedback, bug reports on unusual matrix formats, or suggestions for additional normalization methods!
• 66 views
•
link
0 answers
No answers yet.
Log in to answer this question.