mmCQL(1)

πŸ“¦
version 1.0.13 Β· 2 versions
  • 1.0.13 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute (latest)
  • 1.0.1b Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute

πŸ’– mmCQL πŸ’–

okay bestie, so this is the manual page for mmCQL β€” it's a User Commands type thing, section 1, and it's genuinely one of my faves. buckle up πŸŽ€


✨ NAME ✨

mmCQL β€” a SQL-like tool to manipulate mmCIF files. no cap, it's exactly what it sounds like πŸ¦‹


🌸 SYNOPSIS 🌸

mmCQL [OPTION] input [output]

like... you give it an input, you may give it an output, and you sprinkle [OPTION]s on top. that's the whole vibe πŸ’…


🫢 DESCRIPTION 🫢

so the tea is: the mmCIF format is a structured format, and when you load it up with a proper dictionary it literally starts looking like a database β€” with relations between categories that act as tables. it's giving relational, it's giving schema, it's giving slay ✨

and in pipelines where you're processing mmCIF files, you very often just need to change the content of one single field, or add a little data, or delete it, etc. literally the tiniest thing. that's exactly what mmCQL is here for β€” it offers a SQL-like language for doing precisely that πŸ’–

real talk though: this tool is not a complete and finished piece of software. it lacks perhaps a lot of functionality. i'm not gonna pretend otherwise πŸ™ˆ BUT it is already very useful for simply looking up some value, or changing items based on some criteria. so like... imperfect queen, still a queen πŸ‘‘

πŸ’… OPTIONS πŸ’…

  • --force β€” writes the output file even when the name of the output file is the same as the input file. which, yes, will absolutely overwrite your input file. highkey destructive, do it on purpose or don't do it at all 😭
  • --script=<file>, -f <file> β€” read commands from the file <file.
  • --verbose, -v β€” be more verbose. super useful for diagnosing validation errors. when something's wrong and you can't tell what, this is your girl πŸ”

🌈 EXAMPLES 🌈

you can do simple updates, like so:

UPDATE struct_asym SET id = 'X' WHERE id = 'BBB';

what this does: it renames the asym with ID 'BBB' to 'X'. and the iconic part β€” all children of this asym will be renamed as well, if the proper dictionary was loaded. chef's kiss, it cascades, it's ✨doing the most✨ in the best way πŸ‘‘


πŸ‘‘ AUTHOR πŸ‘‘

Written by Maarten L. Hekkelman <maarten@hekkelman.com> 🫢


πŸ’€ REPORTING BUGS πŸ’€

found a bug? not me gatekeeping. report bugs at https://github.com/PDB-REDO/cif-tools/issues πŸ›


🧚 SEE ALSO 🧚

cif-diff, cif-grep, cif-merge, cif2pdb, mmCQL, pdb2cif.

the whole squad fr fr πŸ’œ


okay that's the whole page bestie πŸŽ€ this was version 1.0.5, dated 2022-11-20, and that's on periodt. go rename some asyms, stay hydrated, and don't --force over a file you love πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from