Overview
MetaLib isn't a plugin you open from a menu โ it's POKY's shared
reference-compound library, plus the local cache directory (also named
MetaLib) that several plugins use to keep large datasets out of the POKY
package itself. Instead of shipping megabytes of BMRB-derived spectra and shift tables
with every install, a plugin downloads what it needs from MetaLib the first time it's
used and reuses the local copy after that.
Three plugins currently use this convention: A-SIMA (its full BMRB-derived metabolite library), P-Mix (its compound library for mixture design), and LigLib (its lignin & cell-wall model-compound database). Any future plugin needing a large reference dataset can follow the same pattern rather than inventing a new one.
How the Cache Works
Each MetaLib-consuming plugin follows the same three steps:
- Resolve a local cache directory โ normally a
MetaLibfolder created next to the currently open POKY project, created on demand if it doesn't exist yet. - Download on first need โ if the data the plugin wants isn't in the cache yet, it's fetched from MetaLib and written into the cache directory.
- Reuse the cached copy thereafter โ later launches read straight from the local copy with no network access, until the plugin is told to refresh (or the cached file is deleted/moved, forcing a fresh download).
Some plugins cache their whole library up front; others additionally fetch per-compound data lazily, only once that specific compound is actually opened โ this keeps the initial download small even though the full hosted collection is large.
MetaLib folder under the user's home directory if no project is open, so it
can still be browsed standalone.
What Each Plugin Stores There
- A-SIMA โ its full BMRB-derived metabolite library: compound names, BMRB IDs, structures, and experimental/simulated peak lists. See A-SIMA's Metabolite Library below.
- P-Mix โ a compound library (name, BMRB ID, formula, molecular weight, and more) used to build candidate mixtures, plus per-compound peak-list data fetched only once a compound is added to a mixture.
- LigLib โ 532 lignin/cell-wall model compounds (2024-08 NMR database edition): trivial/systematic names, category, linkage code, full 13C/1H shift tables per solvent, and (for a subset) SMILES and an A-SIMA BMRB-ID cross-reference.
A-SIMA's Metabolite Library
A-SIMA is MetaLib's original and largest consumer. Its library covers 3,295 compounds across 3,629 entry IDs (3,409 experimental, 220 theoretical), sourced from the Biological Magnetic Resonance Bank (BMRB):
- 2D-HSQC data: 1,155 entries (822 experimental, 333 simulated)
- 1D data: 3,320 entries, all simulated (creatable from BMRB NMR-STAR files directly inside A-SIMA)
- Categorization: 1,368 compounds are color-coded by class โ acids, bases/neutrals, alcohols, amino acids, nucleosides/nucleotides/neurotransmitters, steroids, and plants/other โ each also tagged with tier-1 KEGG pathway categories and biospecimen origin (blood, urine, cerebrospinal fluid, etc.)
Cross-Referencing Between Libraries
Because A-SIMA's library and LigLib's lignin database are both ultimately BMRB-derived, a compound can legitimately appear in both. LigLib cross-references A-SIMA's library by exact BMRB ID: 248 of LigLib's 532 compounds are also present in A-SIMA's library, letting you check a LigLib match against A-SIMA's independent peak-list/shift data for the same compound. See LigLib's Shift Table Viewer section for where that BMRB ID is shown.
Scope & Limitations
- MetaLib-backed plugins need internet access the first time they're used (or the first time a not-yet-cached compound is opened); after that, cached files are read locally.
- Each plugin defines its own file schema under MetaLib โ there is no single unified "MetaLib format," only a shared hosting/caching convention.
- Cached files aren't auto-refreshed. If a hosted library is updated, delete the
corresponding file from the local
MetaLibfolder (or use the plugin's refresh option, where offered) to force a re-download. - Cache location is normally tied to the current POKY project directory, so the same
machine can end up with multiple independent
MetaLibcaches across different projects.