MooersLab
This site contains the public repositories of the Dr. Blaine Mooers Lab, Department of Biochemistry and Molecular Biology, College of Medicine, University of Oklahoma Health Sciences Center, Oklahoma City, Oklahoma, USA. My lab determines the structures of biomolecular molecules and their complexes with drugs using mostly X-ray crystallography and sometimes small angle X-ray scattering, a method that does not require crystals. We grow crystals using advanced experimental design methods and collect X-ray diffraction data in-house and frequently at the Stanford Synchrotron Radiation LightSource and sometimes at the four other major light sources in the US. We also do structure-based drug design using supercomputers.
We are not computer scientists, but we do write some code from time-to-time. We made some software tools to ease the writing of PyMOL scripts for making molecular images. These tools are available for the top 19 text editors and for the Jupyter, Colab, and R Markdown notebooks. All of these text editors can make your work lighter and have many wonderful features, but Emacs is our favorite because it is by far the most customizable, thanks to Emacs Lisp.
The repositories are grouped by category. Some repositories are listed in several categories. This listing is still a work in progress. Many repositories have yet to be added. Seventeen repos are forks to other people's repositories. Go to the repositories tab to see the full list of repositories.
Index of repositories
ACA talks
Bash related
Bayeisan Data Analysis
- JointProb R Markdown and jupyter notebooks for the Saturday JointProb study group.
Blog
Clojure
- quizzes about clojure These are useful for improving command recall after a break in using Clojure for several months.
Crystallographic computing
CCTBX related
For use in notebooks
- Jupyterlab cctbx snippets CCTBX snippets for JupyterLab with the jupyterlab-snippets extension or the jupyterlab-snippets-mutlimenus extension.
- Jupyterlab cctbx plus snippets The variant of the jupyterlabcctbxsnips library with comments to guide editing of the snippets.
- Colab cctbx snippets Colab snippets.
For use in text editors
- cctbxsnips-Emacs CCTBX snippets for the yasnippet snippet system in for Emacs.
- cctbxsnips-SublimeText3 CCTBX snippets for Sublime Text 3 (ST3).
- cctbxsnips-VSC CCTBX snippets for Visual Studio Code (VSC).
- cctbxsnips-UltiSnips CCTBX snippets for Vim or NeoVim via UltiSnips plugin.
- cctbxsnips-neosnippets CCTBX snippets for Vim or NeoVim via neosnippets plugin.
- cctbxsnips-Snipmate CCTBX snippets for Vim or NeoVim via snipmate plugin.
- cctbxsnips-Atom CCTBX snippets for Atom.
Curvefiting software
- List of curve-fitting software This list includes both proprietary and free software.
Emacs related
- Configuration for Emacs30 to support structured editing
- Compiling Emacs30 on Ventura (macOS 13.2) with tree-sitter This protocol compiles Emacs from source with tree-sitter support for structured editing of computer code on macOS.
- Compiling Emacs30 on Ubuntu22.04 LTS with tree-sitter This protocol compiles Emacs with tree-sitter support on Ubuntu.
- crafted-emacs user config My user configuration file (config.el) for the crafted-emacs profile. I did install use-package and used it to install several packages. The base profile has the Doom theme, Vertico completion stack, and eglot. I added my org-agenda config and my favorite key bindings. I am currently luvin it.
- latex-emacs29 configuration A configuration file enhancing the use of LaTeX in Gnu Emacs version 29.0.5. Includes org-mode configuration.
- latex-emacs28 configuration Similar to above but for Gnu Emacs version 28.
- latex-emacs30 configuration Similar to above but for Gnu Emacs version 30.
- scimax user.el Scimax is the Emacs configuration that John Kitchin is developing to support reproducible research by scientists with Gnu Emacs. The user.el file for scimax enables scimax users to add keybindings and packages. I added features from latex-emacs and config.org.
- config.org My default configuration file for GNU Emacs version 30.
- Writing log template in Org-mode Template for tracking your actions, decisions, and plans for any serious writing project that takes more than one session to finish. The LaTeX version is listed in the LaTeX section for use on Overleaf or in Emacs.
- Org-mode manuscript template The manuscript will be exported to PDF after being run through LaTeX. This is for the first submission. This is for the lovers of org-mode. The export from org to PDF is fast and painless in Emacs.
- Slides about workflow in LaTeX presented to the Berlin Emacs Meetup August 2022. Not recorded. It was a 90-minute presentation.
- snippets for latex-mode in Emacs My LaTeX code snippets for yasnippets.
- Quizzes about Emacs to improve recall of keybindings Ten minutes boosting your recall on a particular topic can save 10, 100, or 1000 hours of Google searches, espcially if you are prone to getting side-tracked in the Google-verse.
- Slides from talk about GhostText, Data Science Workshop, July 2022 GhostTexT rocks! It enables the editing of textboxes on web sites with Emacs. You can use GhostText to bring the full power of Emacs to Overleaf (Important: use the legacy version rendering of the text area in Overleaf to get text impoted into a LaTeX buffer).
- Video link to talk about GhostText, Oklahoma Data Science Workshop, July 2022
- emacsconf 2021 talk about rendering molecular graphics with PyMOL in org literate programming files Video and comments.
- emacsconf 2022 talk about using Emacs to edit Jupyter cells via GhostText and atomic-chrome Video and comments.
- EmacsATX Meetup Talk, 4 May 2022: functional programming in Emacs lisp Slides.
Jupyter and Colab related
PyMOL specific
- taggedpymolpysnips Support for literate programming in JuptyerLab Lab with tagged snippets with the elyra-snippets extension and with PyMOL.
- jupyterlabpymolpysnips PyMOL Python snippets for use in JupyterLab with the jupyterlab-snippets extension.
- colabOpenSourcePyMOLpySnips PyMOL Python snippets for use in Colab with open source PyMOL.
- colabPyMOLpySnips PyMOL Python snippets for use in Colab with the incentive PyMOL.
- emacsconf 2022 talk about using Emacs to edit Jupyter cells via GhostText and atomic-chrome
CCTBX specific
- Jupyterlab cctbx snippets CCTBX snippets for JupyterLab with the jupyterlab-snippets extension or the jupyterlab-snippets-mutlimenus extension.
- Jupyterlab cctbx plus snippets The variant of the jupyterlabcctbxsnips library with comments to guide editing of the snippets.
- Colab cctbx snippets Colab snippets.
LaTeX related
Note that I currently write alot in Emacs on 750words.com via GhostText. I configured the atomic-chrome package for Emacs to go into LaTeX mode when GhostText connects to 750words. I can also use Emacs to write and edit text in Overleaf via atomic-chrome and GhostText. This is a very cool way of extending Emacs to websites that have weaker support for editing text.
- LaTeX tips
- Configuration for Emacs30 to support structured editing
- latex-emacs29 configuration A configuration file enhancing the use of LaTeX in Gnu Emacs version 29.0.5. This is the current release version of Gnu Emacs. Includes org-mode configuration.
- latex-emacs28 configuration Similar to above but for Gnu Emacs version 28.
- latex-emacs30 configuration Similar to above but for Gnu Emacs version 30.
- Slides about workflow in LaTeX presented to the Berlin Emacs Meetup August 2022. Not recorded. It was 90-minute lecture.
- slideshowTemplateInLaTeX Slideshow template in Beamer makes slides that do not look like they were made in LaTeX.
- posterInLaTeX Uses beamer to make a poster via a simple design. Enables whipping together a poster a few hours. It is much easier than using powerpoint.
- LaTeX manuscript template Generic template for the first submission as a PDF.
- Writing log template in LaTeX Place to track progress and plans behind a manuscript.
- Annotated bibliography Template in LaTeX Every writing project needs one of these.
- Diary for 2023 in LaTeX Each day is a section. Each month is a chapter. Has an automatically generated index (most markdowns cannot generate indices). Very feature-rich and ready to use.
- snippets for latex-mode in Emacs My LaTeX code snippets for yasnippets.
- The writer's creed Guidelines for greater productivity as a writer.
- bib2item3 Python script to convert bibtex.bib file to bibitems in tex file format. Bibitems are required by some publishers. They are a pain to create manually.
Molecular Graphics related
Collection of links for a 15-hour course on Molecular Graphics
PyMOL
- pymolrc My pymolrc file.
- pymolsnips A large collection of PyMOL macro language (pml) code snippets. Contains link to a webpage with extensive instructions on installing 19 text editors.
- pymolshortcuts A large collection of functions mapped to aliases or shortcuts. This colleciton of functions is very useful for non-coders.
- EasyPyMOL Support for horizontal scripting in PyMOL.
- orgpymolpysnips Support for literate programming in org-mode with PyMOL.
- rstudiopymolpysnips Support for literate programming in Rstuido with PyMOL.
- taggedpymolpysnips Support for literate programming in JuptyerLab Lab with tagged snippets with the elyra-snippets extension and with PyMOL.
- jupyterlabpymolpysnips PyMOL Python snippets for use in JupyterLab with the jupyterlab-snippets extension.
- colabOpenSourcePyMOLpySnips PyMOL Python snippets for use in Colab with open source PyMOL.
- colabPyMOLpySnips PyMOL Python snippets for use in Colab with the incentive version of PyMOL.
- PyMOL wall hangings Protocol for making oversized images to be framed and hung on a wall.
R statistical program
- rstudiopymolpysnips Support for literate programming in Rstuido with python code for PyMOL.
Small Angle Scattering
Time management
- TimeSpent Time tracking by project with Google Sheets.
Supercomputing related (includes high performance computing (HPC), cluster computing, cloud computing)
- Bash functions for Schooner at OSCER
- Emacs configuration file for schooner supercomputer
- Multiple file transfer with sshpass and scp
- Vim configuration file for the schooner supercomputer at OU-Norman
- Vim configuration file for SSRL SMB cluster
- Tutorial for biologists on using the supercomputer at OU-Norman
Vim (and Neovim)
- Vim configuration file Current vimrc file for Mac OSX 10.15
- Vim configuration file for schooner supercomputer
- Vim configuration file for SSRL SMB cluster
- Neovim configuration file
- qvim Quiz about Vim commands to improve your recall of the commands after a break from using Vim.
Writing productivity tools
- The writer's creed Guidelines for greater productivity.
- Writing Progress tracker by project for 2023 in Excel and Libre Office
- Writing contract template This contract is in Microsoft Word, markdown, LaTeX, and org-mode.
- Writing Log template in LaTeX. LaTeX beginers can use this document easily on Overleaf without any configuration.
- Writing Log template in Org-mode Org-mode is a powerful analog of markdown that can interpret LaTeX code blocks. It is vastly more capable than markdown. Org-mode is best edited in Emacs (Sorry, Oveleaf cannot yet work with Org-mode), but VS Code has some support for org-mode files.
- Emacsconf 2022 talk about GhostText on YouTube, December 2022 Includes demonstration of using Emacs to edit a document in Overleaf.
- TimeSpent Hourly time tracking by project with Google Sheets. This is useful for making monthly time reports.
YouTube Videos of relevance to these repos
- Snippets in Jupyter Notebooks, OKC Python, 10 May 2019
- Why develop a snippet library for Jupyter in your subject domain? JupyterConn 2020
- Reproducible molecular graphics with Org-mode, EmacsConf 2021
- Edit live Jupyter notebook cells with Emac, EmacsConf 2022
MooersLab/MooersLab is a README.md
(this file) appears on his GitHub profile