Overview
When you ask POKY LLM (see AI Chat Assistant) a question about real chemical shift statistics, residue/structure data, or secondary structure predictions, it can recognize the question as a database question, write a read-only SQL query against PACSYLLM, run it, and ground its answer in the actual numbers returned β rather than answering from general training knowledge, which has no way to know the real distribution of shifts in this specific dataset.
What is PACSYLLM?
PACSYLLM is the current database behind PACSY (Protein structure And Chemical Shift, developed by Prof. Woonghee Lee), a database of assigned NMR chemical shifts correlated against matched PDB structures. Each entry pairs a BMRB chemical shift deposition with its corresponding PDB structure (chain-by-chain), giving per-residue chemical shifts alongside real 3D coordinates, secondary structure, structure-quality metrics, and several shift-based structural predictions (LACS referencing correction, TALOS-N, PECAN, and CheSPI) for the same residue.
This lets questions be answered from real, correlated experimental data rather than from a single textbook average β e.g. filtering by residue type, atom, secondary structure class, or disorder-related keywords in the entry's title/metadata, and computing an actual average, standard deviation, or count across the matching entries.
The current snapshot (29 September 2026) holds 10,881 PDB/BMRB protein chain
pairs with residue data, 7.9 million assigned chemical shifts and
222 million atomic coordinates. Every stored shift was re-derived from its
original NMR-STAR file and checked against the atom inventory of its residue type. The
2012 PACSY table names (SEQ_DB, A_CS_DB, A_STRC_DB, β¦)
are kept as read-only views, so SQL written for the original PACSY still works.
Searchable data
Two broad kinds of questions work well: aggregate/statistical questions computed across many entries, and single-entry lookups that retrieve one entry's data as-is.
Aggregate & statistical questions
Averages, standard deviations, and counts computed across many entries.
- Chemical shifts β per residue type and atom (e.g. "average CA shift for alanine"), the core use case. Can be conditioned on secondary structure to compare populations (e.g. "average CA shift for isoleucine in a helix versus a coil") and/or asked with LACS referencing correction applied instead of the raw deposited value (e.g. "...using LACS reference correction") β see the LACS entries under Single-entry lookups below for what that correction is.
- Entry metadata β experiment method, pH, temperature, pressure (e.g. "how many entries are solid-state NMR").
- Secondary structure & disorder predictions β TALOS-N, PECAN, and CheSPI per-residue predictions, including TALOS-N's RCI-S2 order parameter (e.g. "average helix propensity for tryptophan").
- Structure geometry β STRIDE secondary structure, phi/psi/omega, solvent accessibility (e.g. "average SASA for glycine residues").
- Fold/family classification β SCOP and CATH lookups, searched by the fold's description text rather than its short classification code (e.g. "how many entries belong to the immunoglobulin fold", "what is the CATH classification for BMRB 6457?"). An entry can have both a SCOP and a CATH classification β they're independent databases, not alternates for the same thing, and PACSYLLM stores whichever it could match for each.
- Structure quality β MolProbity clash score, Ramachandran outliers (e.g. "average clash score for solution NMR vs. solid-state NMR entries").
- Experiments run β which NMR experiments were used per entry.
- Authors β who deposited/submitted an entry (e.g. "list BMRB entries submitted by Woonghee Lee").
- Citations β the primary publication of an entry: DOI, PubMed ID, title, journal and year (e.g. "what is the DOI of the primary citation for BMRB 36181?", "how many entries have a primary citation published in 2015?").
- Sequences β sequence motifs and chain lengths (e.g. "how many entries contain the sequence motif CPGC?").
Single-entry lookups
Ask for a specific entry's data returned as-is, not averaged.
- Raw NMR-STAR file β "get me the original BMRB file for entry X."
- POKY resonance list β the same shift table format shown in POKY's Resonances tab, for a given entry.
- Simulated N-HSQC / C-HSQC / NCA / NCO peak lists β back-calculated 2D peak positions for an entry: N-HSQC and C-HSQC (amide and aliphatic H/heteronucleus pairs), and NCA / NCO (backbone N(i)-CA(i) and N(i)-carbonyl(i-1) pairs) (e.g. "can I get the NHSQC peak list for BMRB 6457?").
- LACS-corrected versions of the above β the same resonance list / N-HSQC / C-HSQC / NCA / NCO peak lists, with LACS's referencing correction already applied, for any entry where LACS could compute one (see below).
- LACS referencing offsets & flagged outliers β what LACS corrected (or flagged) for a specific entry.
- Cyrange well-ordered regions β which residue ranges were well-ordered across an NMR ensemble for a specific entry.
- Ensemble backbone RMSD β how much an entry's NMR models deviate from each other, after superimposing on the entry's Cyrange well-ordered core: per residue and atom type (N, CA, C, HN, O individually, or combined per residue), or per model (which single model deviates most from the ensemble average). Only available for entries that have a Cyrange well-ordered region to superimpose on. Each residue's RMSD is also tagged with whether it was itself part of that Cyrange core, so you can directly compare the two (e.g. "is RMSD higher outside BMRB 17378's Cyrange core?") without a separate lookup.
- Potential multiple-conformer detection β an exploratory clustering signal for whether an entry's ensemble looks like it may contain more than one distinct conformation (e.g. "does BMRB 17378 show signs of multiple conformers?", "which entries show the clearest signs of multiple conformers?"). This is a screening signal, not a validated determination β see below.
Simulated NOESY peak lists
POKY LLM can also simulate a NOESY-type peak list for one entry on request: 2D H,H NOESY, 3D 15N-edited NOESY-HSQC, or 3D 13C-edited NOESY-HSQC. These are computed from the entry's actual 3D atomic coordinates, not from a real experiment β every proton pair within 5 Γ of each other (averaged across every model in the NMR ensemble) becomes a simulated cross peak, restricted to medium- and long-range pairs (residues 2 or more apart in sequence β no trivial same-residue or adjacent-residue peaks). Peak intensity is back-calculated from the standard 1/rβΆ NOE cross-relaxation relationship, in arbitrary (not experimentally calibrated) units.
- "Can you simulate the 2D NOESY peak list for BMRB 17378?"
- "I need the 3D NOESY-NHSQC (15N-edited) peak list for BMRB 17378."
Structure-calculation file formats
For an entry already in the database, POKY LLM can also generate several structure-calculation input file formats, computed on demand from that entry's own data:
- FASTA and CYANA .seq β the sequence, one-letter or three-letter-per-line.
- CYANA .prot β the chemical shift list.
- CYANA .upl and XPLOR-NIH .tbl (distance) β NOE-derived distance restraints, from the same 5 Γ simulated-NOESY geometry described above.
- CYANA .aco and XPLOR-NIH .tbl (dihedral) β phi/psi angle restraints from TALOS-N's Strong-confidence predictions, with a fixed ±30° tolerance.
Plotting a query result
POKY LLM only ever replies with text β it cannot render an image directly. If your question asks for a plot, graph, chart, or visualization of a PACSYLLM result (e.g. "can you plot the CA RMSD per residue for BMRB 25916?"), it instead writes a short, self-contained Python script that plots it, with the real values already fetched from the database embedded directly in the code (not re-derived or guessed). Paste the script into Google Colab, POKY's own built-in Poky Notepad, or another AI assistant that can execute Python, to see the actual image.
Usage
Nothing to configure β just ask. Open AI Chat Assistant (AI), make sure POKY LLM is selected as the provider, and ask your question in plain language. If it looks like a database question, POKY LLM automatically:
- Writes a SQL
SELECTquery against the PACSYLLM schema. - Runs it read-only against the database.
- Answers using the real numbers returned, noting if the query failed or found nothing rather than guessing an answer anyway.
If your question isn't a database question (e.g. it's about POKY software usage), this step is skipped entirely and POKY LLM answers the normal way β see AI Chat Assistant.
Example questions
- "What's the general chemical shift for CA for Alanine from IDPs?"
- "What is the average CA chemical shift for isoleucine in a helix versus a coil?"
- "Same, but using LACS reference correction."
- "How many entries in the database are solid-state NMR?"
- "What's the average helix propensity for tryptophan?"
- "Break down entries by experiment method."
- "Can I get the NHSQC peak list for BMRB 6457?"
- "Can you simulate the 2D NOESY peak list for BMRB 17378?"
- "Give me the CYANA .seq file for BMRB 17378."
- "Which model of BMRB 17378 deviates most from the ensemble average?"
- "Does BMRB 17378 show signs of having multiple conformers?"
- "Can you plot the CA RMSD per residue for BMRB 17378?"
Asking good questions
Each question becomes one SQL query. These habits make that query match what you mean:
- Name the entry and, for complexes, the chain. Many BMRB entries pair with several PDB chains (BMRB 17378, for example, has a 105-residue chain A and a 6-residue peptide chain B). "For BMRB 17378 chain A, β¦" avoids statistics that silently mix both chains.
- Say which secondary-structure source you want. "STRIDE" (from the coordinates, per model) and "TALOS-N", "PECAN" or "CheSPI" (predicted from the shifts) are different things. For structure-based statistics, add "model 1".
- Give value ranges to exclude outliers. Shifts are stored as deposited, so averages include the occasional gross error (for example a mis-entered CΞ±). "β¦counting only shifts between 45 and 65 ppm" gives a robust number.
- Say "entries" or "residues" explicitly. "How many entries list an HNCACB experiment" and "how many experiment rows" are different counts.
- Spell out coded values. Some columns are flags with fixed values: the STRIDE
edge flag is
'Y'/'N', secondary-structure codes are single letters (H, E, C, T, G, B, I). Writing "edge flag is 'N'" prevents a filter that silently matches nothing. - Keep questions interactive in size. Queries stop after 15 seconds, and at most 50 rows are shown. Corpus-wide pairings (every residue against every other) and bulk exports do not fit; split them, for example one residue type at a time.
- Check the query when it matters. Ask "show me the SQL you would use to β¦" to see the exact statement, and re-run it yourself in any SQL client if you need a citable number.
Cookbook
Recipes for common analyses, each tested on the production system on 30 September 2026. Several reproduce published PACSY analyses in one sentence. Values will change slightly as the database is updated.
| Task | Ask | What you get |
|---|---|---|
| Backbone shift statistics by secondary structure (Lee et al. 2012) | "What are the mean and standard deviation of the alanine backbone N chemical shift in each secondary structure type?" | Mean, SD and count per STRIDE class (helix 121.84 Β± 4.25 ppm, n = 22,854; strand 125.00 ppm; coil 124.83 ppm), in about 20 s. |
| Robust average without deposition errors | "What are the mean alanine CA shifts in helices from STRIDE model 1, counting only shifts between 45 and 65 ppm?" | 54.72 ppm from 22,039 shifts. |
| Assignment aid: expected shift range under conditions (the 2012 PACSY example) | "What is the average alanine CA chemical shift in helices of all-alpha (SCOP class a) proteins with 80 to 120 residues at pH 3 to 5, using model 1 and only helix residues whose edge flag is 'N'?" | 54.38 ppm from 99 residues, with the filters listed. Formerly seven input filters and twelve output fields in PACSY Analyzer. |
| Referencing survey (Fritzsching et al. 2016) | "What percentage of entries with LACS offsets have a CA offset larger than 1 ppm in magnitude?" | 8.01%, in under 5 s. Per-entry offsets: "What are the LACS offsets for BMRB X?" |
| Residue type from a CΞ±/CΞ² pair (PLUQ-style) | "How many aspartate residues have a CA shift between 55.55 and 56.05 ppm and a CB shift between 41.95 and 42.45 ppm?" | A count per residue type (Asp 239, Asn 9). Ask one residue type at a time: the same question over all residue types exceeds the 15 s limit. |
| Find structures behind an unusual shift (Dai et al. 2014) | "Which histidine residues have a CE1 chemical shift between 136.5 and 137.5 ppm? List the BMRB ID, PDB ID, residue number and shift." | A table of matching residues (first 50 shown). Narrow the range to see all matches. |
| One protein's secondary structure, from the structure and from the shifts | "For BMRB 6457, what fraction of residues are helix, strand and coil according to STRIDE model 1, and what are the average TALOS-N helix, sheet and coil populations?" | STRIDE fractions and TALOS-N populations side by side (TALOS-N 0.245 / 0.318 / 0.437). |
| Exposure trend, as a plot (Lee et al. 2012) | "Plot the average alanine HA chemical shift versus hydrophobicity (hdo_pbt, binned in steps of 10) for helix and strand residues." | A runnable Python plot script with the values embedded; paste it into Poky Notepad or Colab. |
| Ensemble precision and core | "For BMRB 17378 chain A, how many residues lie inside the Cyrange well-ordered core?" Β· "Which model of BMRB 17378 deviates most from the ensemble average?" Β· "Can you plot the CA RMSD per residue for BMRB 17378?" | 86 core residues; model 8 (2.10 Γ ); an RMSD plot script from a fixed tool. |
| Conformational heterogeneity (screening) | "Which entries show the clearest signs of multiple conformers?" | Entries with a reported split, with p-value and RMSD separation. Treat as candidates to inspect, not as established states. |
| Literature for an entry | "What is the DOI, journal and year of the primary citation for BMRB 36181?" | doi:10.1074/jbc.RA118.003579, J Biol Chem, 2018. Not every entry has a DOI on record. |
| Sequence search | "How many entries contain the sequence motif CPGC?" | 8 entries; ask to list them for the BMRB and PDB IDs. |
| Files for assignment and structure calculation | "Can I get the NHSQC peak list for BMRB 6457?" Β· "Can you simulate the 2D NOESY peak list for BMRB 17378?" Β· "Give me the CYANA .seq file for BMRB 17378." | Stored peak lists verbatim; NOESY lists and CYANA/XPLOR-NIH inputs generated by fixed programs (the entry's longest chain by default). |
| See the query | "Show me the SQL you would use to count entries measured below pH 4." | The SQL statement and its result (709 entries). |
Scope & limitations
- Answers come back as text, not a file. Single-entry lookups (raw NMR-STAR, peak lists, resonance lists β see Searchable data above) return their content inline in the chat, not as a saved file β copy it out manually, or use BMRB entry lookup in PECAN/CheSPI if you specifically need a downloaded NMR-STAR file to feed into another tool.
- Free-text fields are inconsistent. Experiment method, title, and keywords are copied as-is from the original PDB/BMRB deposition and vary in wording and casing β POKY LLM is instructed to search these with partial keyword matching rather than exact comparison, but an unusual phrasing can still be missed.
- Only what's been correlated. PACSYLLM covers BMRB entries with a matched PDB structure β it is not the entirety of BMRB or the PDB individually. Residue-level data are built for protein chains only: 656 nucleic-acid chains in the entry list have no residues, shifts or structure statistics. Short peptides made largely of non-standard residues have no TALOS-N predictions.
- Limits per question. A query stops after 15 seconds and at most 50 rows are shown in the answer. Very large analyses (corpus-wide pairings, bulk exports) need to be split or run as SQL outside the chat.
- Deposited values are used as-is. Unrestricted averages include occasional deposition errors; some legacy sample conditions are implausible (e.g. temperatures that appear to be in Β°C). Missing-value codes such as 9999 are stored as empty, not as numbers.
- Generated SQL is checked for form, not meaning. A statement that runs can still apply a filter differently than intended (see Asking good questions).
- One question, one query. Each question is answered with a single SQL query; it doesn't (yet) chain multiple queries together for a multi-step analysis.
Safety & privacy
The query POKY LLM writes is validated before it runs (must be a single read-only
SELECT, no data-modifying statements, only known tables) and executes through a
dedicated database account that can only read PACSYLLM β it cannot insert, update, delete, or
modify anything, no matter what the generated query says. Query generation, execution and the
answer all run on POKY's own server with the self-hosted model; no question or query is sent to a
third-party AI provider. Questions and answers are deleted from the server after two weeks, and
there is no per-user query history. The only outbound request is an optional web search: if a
question is not answered from the database (the query fails or returns nothing) and the local
POKY documentation does not cover it either, POKY LLM may send a short keyword query derived from
the question to DuckDuckGo.