An English-first mass spectrometry knowledge wiki for beginners and returning practitioners. It connects foundational concepts, instrument principles, experimental methods, and computational reasoning. It is not a publication feed.
Site: https://mzwiki.unimz.org · Repository: https://github.com/UniMZ/mzwiki
Forty-two English Guides and 90 terminology entries, each with a matched Chinese translation. The original eight-Guide sequence is retained; topic navigation groups the expanded collection.
- What mass spectrometry measures
- m/z, charge & isotopes
- How molecules become ions
- Mass analyzers & resolution
- Fragmentation & tandem MS
- Read a spectrum step by step
- Acquisition: full scan, DDA, DIA & targeted
- From raw data to reliable results
- Sample preparation & recovery
- Liquid chromatography for MS
- Blanks, carryover & contamination
- Quantitative measurement & calibration
- Experimental design & replication
- QC, batch effects & normalization
- Bottom-up proteomics: from sample to protein evidence
- Peptide identification and protein inference
- PTM analysis and site localization
- Small-molecule annotation: from features to identity
- Lipidomics: match structural detail to evidence
- Ion mobility and collision cross section
- Crosslinking MS: from peptide pairs to structural restraints
- Glycoproteomics: evidence and ambiguity
- Phosphoproteomics: enrichment, localization and quantification
- Mass spectrometry imaging: principles and interpretation
- Single-cell proteomics: measurement and statistics
- Spectrum prediction and machine-learning generalization
- Benchmarking computational mass spectrometry
- Open data formats and analysis provenance
- Ion detection & signal formation
- Profile, centroid & signal processing
- LC-MS feature detection and peak integration
- Cross-run alignment and feature correspondence
- Spectral library search: from query to defensible match
- Molecular networking: read connections as evidence
- Missing-data handling
- Differential-abundance analysis
- GC-MS: electron ionization and retention indices
- Mixed spectra and spectral deconvolution
- Molecular-formula inference from mass and isotope evidence
- Stable-isotope tracing: from labeling patterns to metabolic questions
- PCA and scaling: explore variation without overclaiming
- Pathway enrichment: connect measured changes to biological hypotheses
The interface and project documentation are English. EN / ZH switches between separate views of the same article and preserves matching section anchors. Search defaults to English and can search Chinese or both languages.
Requires Python 3.10+; the build and link checks use only its standard library. There is no package installation step and no remote asset dependency.
python3 scripts/build.py
python3 scripts/check.py
python3 -m http.server 8000 --bind 127.0.0.1Open http://127.0.0.1:8000. The generated site is committed at the repository root for GitHub Pages. Do not open HTML through file://: search loads its static index over HTTP.
Optional browser checks require Python Playwright and Chromium:
python3 scripts/browser_check.pyStart the local server first. Set MZWIKI_BASE_URL and MZWIKI_CHROMIUM to override the defaults. The checks exercise every article at desktop/mobile sizes, search, language switching, navigation, and reading without JavaScript. Screenshots are saved outside the repository to /tmp/mzwiki-checks.
content/articles.json: ordered guide metadata, translation titles, prerequisites, related guides, and reference keys.content/en/*.html,content/zh/*.html: trusted article-body HTML fragments. Edit these, not the generated pages.content/terms.jsonandcontent/terms/{en,zh}/*.html: the separate Terminology collection and paired term bodies.terms/,zh/terms/: generated terminology index and paired term pages.content/term-topics.json: ordered editorial topics and exactly one topic assignment per term.content/references.json: shared bibliography with verified source identifiers.scripts/build.py: shared templates, homepage, article pages, sitemap, and search-index generation.assets/: shared CSS, small progressive-enhancement script, favicon, and generated search index.guides/,zh/guides/: generated paired article pages.about/,search/,index.html,404.html: generated supporting pages.
Run the build and checks after each edit and commit the generated output with its source. Article HTML is trusted maintainer content, not user-supplied input. Search renders queries and result text using DOM text APIs.
The charge/isotope worked spectrum is simulated, not experimental. Its assumptions and source constants are in content/examples/charge-isotope-spectrum.json. Validate its arithmetic without additional packages:
python3 scripts/check_science.pyThe committed SVG and PNG are generated by scripts/render_spectrum.py using Matplotlib (an optional figure-authoring dependency). Normal site builds need no Matplotlib installation. To regenerate the figure in a writable temporary cache, then rebuild:
MPLCONFIGDIR=/tmp/mzwiki-mpl XDG_CACHE_HOME=/tmp/mzwiki-font-cache python3 scripts/render_spectrum.py
python3 scripts/build.py
python3 scripts/check.py
python3 scripts/check_science.pyKeep figure inputs, plotted labels, article tables, and both translations synchronized. The numeric checks verify published values and language parity; they do not establish the model's validity for real measurements.
The ionization guide has nine constructed ion-form examples in tests/fixtures/ionization.json. After building, check their forward and inverse calculations, ionic constants, and both article tables:
python3 scripts/check_ionization.pyTerminology entries are a separate collection from the numbered Guides. Their metadata defines ordered references, related_guides, and related_terms. Guide pages derive reciprocal term links from that metadata; Guide source prose remains unchanged. Search records include kind: "guide" or kind: "term", and the search page can filter by collection and language.
After building, validate the supplied terminology fixtures and paired examples:
python3 scripts/check_terms.pyThe structural checker includes both collections, citation numbering, generated-body consistency, and exact sitemap coverage. Browser checks cover the term index, same-term language switches, collection filters, cross-links, and reading without JavaScript.
The analyzer Guide and Mass analyzer/Transient entries use the constructed cases in review/analyzers/analyzer-arithmetic-fixtures.json. Validate the ten models and paired published examples with:
python3 scripts/check_analyzers.pyThe fragmentation Guide and its three terms use tests/fixtures/fragmentation.json. Validate all thirteen mass/charge, neutral-loss, residue-gap and isolation-window cases with:
python3 scripts/check_fragmentation.pyThe acquisition Guide and its three terms use tests/fixtures/acquisition.json. Check all sixteen serial schedules, budgets, selection rules, isolation intervals and XIC calculations with:
python3 scripts/check_acquisition.py
python3 scripts/check_data_analysis.py
python3 scripts/check_reading_bridge.py
python3 scripts/check_expansion.py
python3 scripts/check_advanced_expansion.py
python3 scripts/check_signal.py
python3 scripts/check_terminology.pyThis version supports Deploy from a branch → main → / (root). The repository root contains index.html, .nojekyll, and CNAME (mzwiki.unimz.org). Preserve the custom domain. No credentials or DNS changes are needed in this repository.
The build output is already committed; no Jekyll or Actions build is required. If the existing Pages configuration uses GitHub Actions or a different source folder, a repository administrator must select main and / (root) or configure an approved deployment workflow. Do not claim publication solely because a push succeeds: inspect the Pages build/deployment and the live domain.
Each guide includes prerequisites, worked examples, limitations, references, and related concepts. Sources favor standards, official documentation, and primary methodological publications. The homepage spectrum is an original schematic, not measured data. Foundational examples are educational, not validated operating procedures. Scientific and translation improvements are welcome through issues and pull requests; see CONTRIBUTING.md.
This reconstructed first edition has a new commit history; it is not the inaccessible earlier implementation commit. No private workspace or Notion content is included. No analytics, external fonts, or client-side accounts are used.
/terms/ is the default By topic directory; /terms/az/ is the complete A–Z directory. Native links preserve the chosen view in the URL, including refresh, Back/Forward and JavaScript-disabled browsing. Both views derive from the same term metadata. Titles use case-insensitive natural ordering, with slug as a stable tie-break. Topic ordering and membership come from content/term-topics.json; adding a term also requires an assignment there. Sidebar and mobile terminology navigation use the same topics and link to both directories.
The directory uses compact multi-column text lists on desktop and single-column lists on narrow screens. Article reading typography is unchanged. az is reserved for the browsing route and cannot be used as a term slug.
The computational learning expansion is preserved in review/expansion-computational-learning/. After building, run python3 scripts/check_computational_integration.py to check the supplied source hashes, metadata, generated bodies, citations and paired anchors. Scientific review of this packet was supplied separately; the integration checks do not replace it.