summaryrefslogtreecommitdiffstats
path: root/2021/captions
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2021/captions/emacsconf-2021-molecular--reproducible-molecular-graphics-with-org-mode--blaine-mooers--main.vtt628
-rw-r--r--2021/captions/molecular.md212
2 files changed, 840 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-molecular--reproducible-molecular-graphics-with-org-mode--blaine-mooers--main.vtt b/2021/captions/emacsconf-2021-molecular--reproducible-molecular-graphics-with-org-mode--blaine-mooers--main.vtt
new file mode 100644
index 00000000..06d92f3a
--- /dev/null
+++ b/2021/captions/emacsconf-2021-molecular--reproducible-molecular-graphics-with-org-mode--blaine-mooers--main.vtt
@@ -0,0 +1,628 @@
+WEBVTT
+
+00:00.880 --> 00:00:02.446
+Hi, I'm Blaine Mooers.
+
+00:00:02.446 --> 00:00:04.160
+I'm going to be talking about
+
+00:00:04.160 --> 00:00:07.919
+the use of molecular graphics in Org
+
+00:07.919 --> 00:00:08.880
+for the purpose of doing
+
+00:00:08.880 --> 00:00:11.840
+reproducible research in structural biology.
+
+00:00:11.840 --> 00:00:13.722
+I'm an associate professor of biochemistry
+
+00:00:13.722 --> 00:00:15.768
+and microbiology at the University of Oklahoma
+
+00:00:15.768 --> 00:00:17.760
+Health Sciences Center in Oklahoma City.
+
+00:00:17.760 --> 00:00:19.600
+My laboratory uses X-ray crystallography
+
+00:00:19.600 --> 00:00:21.920
+to determine the atomic structures
+
+00:00:21.920 --> 00:00:23.439
+of proteins like this one
+
+00:00:23.439 --> 00:00:26.080
+in the lower left, and of nucleic acids
+
+00:26.080 --> 00:27.840
+important in human health.
+
+00:27.840 --> 00:00:29.591
+This is a crystal of an RNA,
+
+00:00:29.591 --> 00:00:31.359
+which we have placed in this
+
+00:00:31.359 --> 00:00:33.200
+X-ray diffraction instrument.
+
+00:00:33.200 --> 00:00:35.600
+And after rotating the crystal
+
+00:00:35.600 --> 00:00:38.000
+in the X-ray beam for two degrees,
+
+00:00:38.000 --> 00:00:40.480
+we obtain this following diffraction pattern,
+
+00:00:40.480 --> 00:00:43.280
+which has thousands of spots on it.
+
+00:43.280 --> 00:00:47.840
+We rotate the crystal for over 180 degrees,
+
+00:47.840 --> 00:00:51.760
+collecting 90 images to obtain all the data.
+
+00:00:51.760 --> 00:00:56.000
+We then process those images
+
+00:56.000 --> 00:00:57.752
+and do an inverse Fourier transform
+
+00:00:57.752 --> 00:00:59.920
+to obtain the electron density.
+
+00:00:59.920 --> 00:01:01.888
+This electron density map has been
+
+00:01:01.888 --> 00:01:04.344
+contoured at the one-sigma level.
+
+00:01:04.344 --> 00:01:06.116
+That level's being shown by
+
+00:01:06.116 --> 00:01:08.640
+this blue chicken wire mesh.
+
+00:01:08.640 --> 00:01:10.152
+Atomic models have been fitted
+
+00:01:10.152 --> 00:01:11.119
+to this chicken wire.
+
+00:01:11.119 --> 00:01:14.240
+These lines represent bonds between atoms,
+
+00:01:14.240 --> 00:01:16.240
+atoms are being represented by points.
+
+00:01:16.240 --> 00:01:18.640
+And atoms are colored by atom type,
+
+00:01:18.640 --> 00:01:21.280
+red for oxygen, blue for nitrogen,
+
+00:01:21.280 --> 00:01:23.040
+and then in this case,
+
+01:23.040 --> 00:01:24.720
+carbon is colored cyan.
+
+00:01:24.720 --> 00:01:27.203
+We have fitted a drug molecule
+
+00:01:27.203 --> 00:01:29.360
+to the central blob of electron density
+
+00:01:29.360 --> 00:01:32.400
+which corresponds to that active site
+
+01:32.400 --> 00:01:35.759
+of this protein, which is RET Kinase.
+
+00:01:35.759 --> 00:01:37.439
+It's important in lung cancer.
+
+00:01:37.439 --> 00:01:40.079
+When we're finished with model building,
+
+00:01:40.079 --> 00:01:41.339
+we will then examine
+
+00:01:41.339 --> 00:01:43.006
+the result of the final structure
+
+00:01:43.006 --> 00:01:45.200
+to prepare images for publication
+
+00:01:45.200 --> 00:01:47.439
+using molecular graphics program.
+
+01:47.439 --> 00:01:48.108
+In this case,
+
+00:01:48.108 --> 00:01:50.000
+we've overlaid a number of structures,
+
+00:01:50.000 --> 00:01:53.600
+and we're examining the distance between
+
+01:53.600 --> 00:01:55.680
+the side chain of an alanine
+
+00:01:55.680 --> 00:01:58.880
+and one or two drug molecules.
+
+00:01:58.880 --> 00:02:00.719
+This alanine sidechain actually blocks
+
+00:02:00.719 --> 00:02:02.159
+the binding of one of these drugs.
+
+00:02:02.159 --> 00:02:03.439
+The most popular program
+
+02:03.439 --> 02:06.320
+for doing this kind of analysis
+
+02:06.320 --> 00:02:07.280
+and for preparing images
+
+00:02:07.280 --> 00:02:09.520
+for publication is PyMOL.
+
+02:09.520 --> 02:11.440
+PyMOL was used to prepare these images
+
+02:11.440 --> 02:14.720
+on the covers of these featured journals.
+
+02:14.720 --> 00:02:17.520
+PyMOL is favored because
+
+00:02:17.520 --> 00:02:19.520
+it has 500 commands
+
+00:02:19.520 --> 00:02:22.128
+and 600 parameter settings
+
+00:02:22.128 --> 00:02:23.360
+that provide exquisite control
+
+00:02:23.360 --> 00:02:24.959
+over the appearance of the output.
+
+00:02:24.959 --> 00:02:28.480
+PyMOL has over 100,000 users,
+
+02:28.480 --> 00:02:30.000
+reflecting its popularity.
+
+00:02:30.000 --> 00:02:31.599
+This is the GUI for PyMOL.
+
+00:02:31.599 --> 00:02:35.120
+It shows in white the viewport area
+
+00:02:35.120 --> 00:02:36.080
+where one interacts
+
+00:02:36.080 --> 00:02:37.840
+with the loaded molecular object.
+
+00:02:37.840 --> 00:02:41.920
+We have rendered the same RET kinase
+
+02:41.920 --> 00:02:49.788
+with a set of preset parameters
+
+00:02:49.788 --> 00:02:51.200
+that have been named "publication".
+
+00:02:51.200 --> 00:02:52.720
+The other way of applying
+
+02:52.720 --> 00:02:54.319
+parameter settings and commands
+
+00:02:54.319 --> 00:02:56.720
+is to enter them at the PyMOL prompt.
+
+00:02:56.720 --> 00:03:00.159
+Then the third way is to load and run scripts.
+
+00:03:00.159 --> 00:03:03.120
+PyMOL is actually written in C for speed,
+
+00:03:03.120 --> 00:03:06.159
+but it is wrapped in Python for extensibility.
+
+03:06.159 --> 03:09.680
+In fact, there are over 100 articles
+
+03:09.680 --> 00:03:11.599
+about various plugins and scripts
+
+00:03:11.599 --> 00:03:12.400
+that people have developed
+
+00:03:12.400 --> 00:03:15.120
+to extend PyMOL for years.
+
+03:15.120 --> 00:03:16.480
+Here's some examples
+
+00:03:16.480 --> 00:03:18.959
+from the snippet library that I developed.
+
+03:18.959 --> 03:21.280
+On the left is a default
+
+03:21.280 --> 03:24.640
+cartoon representation of a RNA hairpin.
+
+03:24.640 --> 03:27.040
+I find this reduced representation
+
+03:27.040 --> 00:03:30.799
+of the RNA hairpin to be too stark.
+
+03:30.799 --> 00:03:32.319
+I prefer these alternate ones
+
+00:03:32.319 --> 00:03:33.840
+that I developed.
+
+03:33.840 --> 03:37.519
+So, these three to the right of this one
+
+03:37.519 --> 00:03:39.519
+are not available through
+
+00:03:39.519 --> 00:03:40.720
+pull downs in PyMOL.
+
+00:03:40.720 --> 00:03:42.748
+So why developed a PyMOL
+
+00:03:42.748 --> 00:03:44.879
+snippet library for Org?
+
+03:44.879 --> 00:03:47.040
+Well, Org provides great support
+
+00:03:47.040 --> 00:03:48.560
+for literate programming,
+
+00:03:48.560 --> 00:03:49.840
+where you have code blocks
+
+00:03:49.840 --> 00:03:52.000
+that contain code that's executable,
+
+00:03:52.000 --> 00:03:53.040
+and the output is shown
+
+00:03:53.040 --> 00:03:54.959
+below that code block.
+
+03:54.959 --> 00:03:56.720
+And then you can fill
+
+00:03:56.720 --> 00:03:58.959
+the surrounding area in the document
+
+03:58.959 --> 00:04:00.799
+with the explanatory prose.
+
+00:04:00.799 --> 00:04:02.000
+Org has great support
+
+00:04:02.000 --> 00:04:04.480
+for editing that explanatory prose.
+
+00:04:04.480 --> 00:04:08.080
+Org can run PyMOL through PyMOL's Python API.
+
+04:08.080 --> 00:04:11.280
+One of the uses of such an Org document
+
+00:04:11.280 --> 00:04:14.487
+is to assemble a gallery of draft images.
+
+00:04:14.487 --> 00:04:16.563
+We often have to look at
+
+00:04:16.563 --> 00:04:19.840
+dozens of candidate images
+
+00:04:19.840 --> 00:04:22.000
+with the molecule in different orientations,
+
+00:04:22.000 --> 00:04:23.520
+different zoom settings,
+
+04:23.520 --> 00:04:25.032
+different representations,
+
+00:04:25.032 --> 00:04:27.280
+different colors, and so on.
+
+00:04:27.280 --> 00:04:30.639
+And to have those images along with…,
+
+00:04:30.639 --> 00:04:31.840
+adjacent to the code
+
+04:31.840 --> 00:04:33.680
+that was used to generate them,
+
+00:04:33.680 --> 00:04:37.199
+can be very effective for
+
+04:37.199 --> 00:04:39.680
+further editing the code
+
+00:04:39.680 --> 00:04:40.880
+and improving the images.
+
+00:04:40.880 --> 00:04:44.080
+Once the final images have been selected,
+
+04:44.080 --> 00:04:46.320
+one can submit the code
+
+00:04:46.320 --> 00:04:48.479
+as part of the supplemental material.
+
+00:04:48.479 --> 00:04:52.400
+Finally, one can use the journal package
+
+04:52.400 --> 00:04:54.608
+to use the Org files as
+
+00:04:54.608 --> 00:04:57.120
+an electronic laboratory notebook,
+
+00:04:57.120 --> 00:04:59.600
+which is illustrated with molecular images.
+
+00:04:59.600 --> 00:05:01.039
+This can be very useful
+
+00:05:01.039 --> 00:05:04.080
+when assembling manuscripts
+
+05:04.080 --> 00:05:05.440
+months or years later.
+
+00:05:05.440 --> 00:05:08.320
+This shows the YASnippet pull down
+
+05:08.320 --> 00:05:12.720
+after my library has been installed.
+
+00:05:12.720 --> 00:05:15.360
+I have an Org file open,
+
+00:05:15.360 --> 00:05:17.120
+so I'm in Org mode.
+
+05:17.120 --> 00:05:20.880
+We have the Org mode submenu,
+
+05:20.880 --> 00:05:23.919
+and under it, all my snippets
+
+00:05:23.919 --> 00:05:26.880
+are located in these sub-sub-menus
+
+05:26.880 --> 00:05:30.880
+that are prepended with pymolpy.
+
+00:05:30.880 --> 00:05:33.840
+Under the molecular representations menu,
+
+00:05:33.840 --> 00:05:36.479
+there is a listing of snippets.
+
+00:05:36.479 --> 00:05:38.563
+The top one is for the ambient occlusion effect,
+
+00:05:38.563 --> 00:05:39.840
+which we're going to apply
+
+00:05:39.840 --> 00:05:41.039
+in this Org file.
+
+00:05:41.039 --> 00:05:44.240
+So these lines of code were inserted after,
+
+00:05:44.240 --> 00:05:48.479
+as well as these flanking lines
+
+05:48.479 --> 00:05:50.240
+that define the source block,
+
+00:05:50.240 --> 00:05:53.280
+were inserted by clicking on that line.
+
+05:53.280 --> 00:05:55.120
+Then I've added some additional code.
+
+00:05:55.120 --> 00:05:56.880
+So, the first line defines
+
+00:05:56.880 --> 00:05:59.039
+the language that we're using.
+
+00:05:59.039 --> 00:05:59.768
+We're going to use
+
+00:05:59.768 --> 00:06:02.639
+the jupyter-python language.
+
+06:02.639 --> 00:06:04.560
+Then you can define the session,
+
+00:06:04.560 --> 00:06:06.400
+and the name of this is arbitrary.
+
+00:06:06.400 --> 00:06:09.680
+Then the kernel is our means
+
+00:06:09.680 --> 00:06:11.360
+by which we gain access
+
+00:06:11.360 --> 00:06:14.880
+to the Python API of PyMOL.
+
+06:14.880 --> 00:06:17.039
+The remaining settings apply to the output.
+
+00:06:17.039 --> 00:06:18.319
+To execute this code
+
+00:06:18.319 --> 00:06:21.199
+and to get the resulting image,
+
+00:06:21.199 --> 00:06:25.120
+you put the cursor inside this code block,
+
+00:06:25.120 --> 00:06:26.560
+or on the top line,
+
+00:06:26.560 --> 00:06:29.840
+and enter Control c Control c (C-c C-c).
+
+06:29.840 --> 00:06:32.240
+This shows the resulting image
+
+00:06:32.240 --> 00:06:33.600
+has been loaded up.
+
+00:06:33.600 --> 00:06:37.280
+It takes about 10 seconds for this to appear.
+
+06:37.280 --> 00:06:38.479
+So the downside of this is
+
+00:06:38.479 --> 00:06:40.729
+if you have a large number of these,
+
+00:06:40.729 --> 00:06:43.919
+the Org file can lag quite a bit
+
+00:06:43.919 --> 00:06:45.120
+when you try to scroll through it,
+
+00:06:45.120 --> 00:06:48.319
+so you need to close up these result drawers,
+
+00:06:48.319 --> 00:06:50.960
+and only open up the ones
+
+00:06:50.960 --> 00:06:53.199
+that you're currently examining.
+
+00:06:53.199 --> 00:06:54.319
+These are features I think
+
+06:54.319 --> 06:56.240
+are important in practical work.
+
+06:56.240 --> 00:06:59.840
+So, the plus is, a feature that's present,
+
+00:06:59.840 --> 00:07:01.120
+minus is absent.
+
+00:07:01.120 --> 00:07:03.199
+I think tab stops and tab triggers
+
+00:07:03.199 --> 00:07:04.800
+are really important.
+
+07:04.800 --> 00:07:05.680
+Triggers are important for
+
+00:07:05.680 --> 00:07:06.720
+the fast assertion code,
+
+00:07:06.720 --> 00:07:08.639
+tab stops are important for
+
+07:08.639 --> 00:07:10.560
+complete, accurate editing of code.
+
+00:07:10.560 --> 00:07:12.735
+I already addressed the rendering speed
+
+00:07:12.735 --> 00:07:14.560
+and scrolling issue.
+
+00:07:14.560 --> 00:07:15.759
+I think the way around this
+
+00:07:15.759 --> 00:07:19.199
+is just to export the Org document to a PDF file
+
+00:07:19.199 --> 00:07:23.360
+and do your evaluation of different images
+
+00:07:23.360 --> 00:07:25.199
+by examining them in the PDF
+
+00:07:25.199 --> 00:07:26.560
+rather than the Org file.
+
+00:07:26.560 --> 00:07:30.400
+The path to PDF is lightning fast in Emacs
+
+00:07:30.400 --> 00:07:32.240
+compared to Jupyter,
+
+00:07:32.240 --> 00:07:35.280
+where it's cumbersome in comparison.
+
+00:07:35.280 --> 00:07:38.400
+This is a snapshot of my initialization file.
+
+00:07:38.400 --> 00:07:41.840
+These parts are relevant to doing this work.
+
+00:07:41.840 --> 00:07:43.039
+A full description of them
+
+00:07:43.039 --> 00:07:46.319
+can be found in the README file
+
+07:46.319 --> 00:07:48.639
+of this repository on GitHub.
+
+00:07:48.639 --> 00:07:49.456
+I'd like to thank the
+
+00:07:49.456 --> 00:07:51.840
+Nathan Shock Data Science Workshop
+
+00:07:51.840 --> 00:07:54.319
+for feedback during presentations
+
+00:07:54.319 --> 00:07:56.160
+I've made about this work.
+
+00:07:56.160 --> 00:07:57.628
+And I would also like to thank
+
+00:07:57.628 --> 00:08:00.240
+the following funding sources for support.
+
+00:08:00.240 --> 00:08:03.879
+I will now take questions. Thank you.
+
+00:08:03.879 --> 00:08:03.986
+[captions by Blaine Mooers and Bhavin Gandhi]
diff --git a/2021/captions/molecular.md b/2021/captions/molecular.md
new file mode 100644
index 00000000..739d561f
--- /dev/null
+++ b/2021/captions/molecular.md
@@ -0,0 +1,212 @@
+<a name="transcript"></a>
+# Transcript
+
+[[!template text="Hi, I'm Blaine Mooers." start="00:00:00.880" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to be talking about" start="00:00:02.446" video="mainVideo" id=subtitle]]
+[[!template text="the use of molecular graphics in Org" start="00:00:04.160" video="mainVideo" id=subtitle]]
+[[!template text="for the purpose of doing" start="00:00:07.919" video="mainVideo" id=subtitle]]
+[[!template text="reproducible research in structural biology." start="00:00:08.880" video="mainVideo" id=subtitle]]
+[[!template text="I'm an associate professor of biochemistry" start="00:00:11.840" video="mainVideo" id=subtitle]]
+[[!template text="and microbiology at the University of Oklahoma" start="00:00:13.722" video="mainVideo" id=subtitle]]
+[[!template text="Health Sciences Center in Oklahoma City." start="00:00:15.768" video="mainVideo" id=subtitle]]
+[[!template text="My laboratory uses X-ray crystallography" start="00:00:17.760" video="mainVideo" id=subtitle]]
+[[!template text="to determine the atomic structures" start="00:00:19.600" video="mainVideo" id=subtitle]]
+[[!template text="of proteins like this one" start="00:00:21.920" video="mainVideo" id=subtitle]]
+[[!template text="in the lower left, and of nucleic acids" start="00:00:23.439" video="mainVideo" id=subtitle]]
+[[!template text="important in human health." start="00:00:26.080" video="mainVideo" id=subtitle]]
+[[!template text="This is a crystal of an RNA," start="00:00:27.840" video="mainVideo" id=subtitle]]
+[[!template text="which we have placed in this" start="00:00:29.591" video="mainVideo" id=subtitle]]
+[[!template text="X-ray diffraction instrument." start="00:00:31.359" video="mainVideo" id=subtitle]]
+[[!template text="And after rotating the crystal" start="00:00:33.200" video="mainVideo" id=subtitle]]
+[[!template text="in the X-ray beam for two degrees," start="00:00:35.600" video="mainVideo" id=subtitle]]
+[[!template text="we obtain this following diffraction pattern," start="00:00:38.000" video="mainVideo" id=subtitle]]
+[[!template text="which has thousands of spots on it." start="00:00:40.480" video="mainVideo" id=subtitle]]
+[[!template text="We rotate the crystal for over 180 degrees," start="00:00:43.280" video="mainVideo" id=subtitle]]
+[[!template text="collecting 90 images to obtain all the data." start="00:00:47.840" video="mainVideo" id=subtitle]]
+[[!template text="We then process those images" start="00:00:51.760" video="mainVideo" id=subtitle]]
+[[!template text="and do an inverse Fourier transform" start="00:00:56.000" video="mainVideo" id=subtitle]]
+[[!template text="to obtain the electron density." start="00:00:57.752" video="mainVideo" id=subtitle]]
+[[!template text="This electron density map has been" start="00:00:59.920" video="mainVideo" id=subtitle]]
+[[!template text="contoured at the one-sigma level." start="00:01:01.888" video="mainVideo" id=subtitle]]
+[[!template text="That level's being shown by" start="00:01:04.344" video="mainVideo" id=subtitle]]
+[[!template text="this blue chicken wire mesh." start="00:01:06.116" video="mainVideo" id=subtitle]]
+[[!template text="Atomic models have been fitted" start="00:01:08.640" video="mainVideo" id=subtitle]]
+[[!template text="to this chicken wire." start="00:01:10.152" video="mainVideo" id=subtitle]]
+[[!template text="These lines represent bonds between atoms," start="00:01:11.119" video="mainVideo" id=subtitle]]
+[[!template text="atoms are being represented by points." start="00:01:14.240" video="mainVideo" id=subtitle]]
+[[!template text="And atoms are colored by atom type," start="00:01:16.240" video="mainVideo" id=subtitle]]
+[[!template text="red for oxygen, blue for nitrogen," start="00:01:18.640" video="mainVideo" id=subtitle]]
+[[!template text="and then in this case," start="00:01:21.280" video="mainVideo" id=subtitle]]
+[[!template text="carbon is colored cyan." start="00:01:23.040" video="mainVideo" id=subtitle]]
+[[!template text="We have fitted a drug molecule" start="00:01:24.720" video="mainVideo" id=subtitle]]
+[[!template text="to the central blob of electron density" start="00:01:27.203" video="mainVideo" id=subtitle]]
+[[!template text="which corresponds to that active site" start="00:01:29.360" video="mainVideo" id=subtitle]]
+[[!template text="of this protein, which is RET Kinase." start="00:01:32.400" video="mainVideo" id=subtitle]]
+[[!template text="It's important in lung cancer." start="00:01:35.759" video="mainVideo" id=subtitle]]
+[[!template text="When we're finished with model building," start="00:01:37.439" video="mainVideo" id=subtitle]]
+[[!template text="we will then examine" start="00:01:40.079" video="mainVideo" id=subtitle]]
+[[!template text="the result of the final structure" start="00:01:41.339" video="mainVideo" id=subtitle]]
+[[!template text="to prepare images for publication" start="00:01:43.006" video="mainVideo" id=subtitle]]
+[[!template text="using molecular graphics program." start="00:01:45.200" video="mainVideo" id=subtitle]]
+[[!template text="In this case," start="00:01:47.439" video="mainVideo" id=subtitle]]
+[[!template text="we've overlaid a number of structures," start="00:01:48.108" video="mainVideo" id=subtitle]]
+[[!template text="and we're examining the distance between" start="00:01:50.000" video="mainVideo" id=subtitle]]
+[[!template text="the side chain of an alanine" start="00:01:53.600" video="mainVideo" id=subtitle]]
+[[!template text="and one or two drug molecules." start="00:01:55.680" video="mainVideo" id=subtitle]]
+[[!template text="This alanine sidechain actually blocks" start="00:01:58.880" video="mainVideo" id=subtitle]]
+[[!template text="the binding of one of these drugs." start="00:02:00.719" video="mainVideo" id=subtitle]]
+[[!template text="The most popular program" start="00:02:02.159" video="mainVideo" id=subtitle]]
+[[!template text="for doing this kind of analysis" start="00:02:03.439" video="mainVideo" id=subtitle]]
+[[!template text="and for preparing images" start="00:02:06.320" video="mainVideo" id=subtitle]]
+[[!template text="for publication is PyMOL." start="00:02:07.280" video="mainVideo" id=subtitle]]
+[[!template text="PyMOL was used to prepare these images" start="00:02:09.520" video="mainVideo" id=subtitle]]
+[[!template text="on the covers of these featured journals." start="00:02:11.440" video="mainVideo" id=subtitle]]
+[[!template text="PyMOL is favored because" start="00:02:14.720" video="mainVideo" id=subtitle]]
+[[!template text="it has 500 commands" start="00:02:17.520" video="mainVideo" id=subtitle]]
+[[!template text="and 600 parameter settings" start="00:02:19.520" video="mainVideo" id=subtitle]]
+[[!template text="that provide exquisite control" start="00:02:22.128" video="mainVideo" id=subtitle]]
+[[!template text="over the appearance of the output." start="00:02:23.360" video="mainVideo" id=subtitle]]
+[[!template text="PyMOL has over 100,000 users," start="00:02:24.959" video="mainVideo" id=subtitle]]
+[[!template text="reflecting its popularity." start="00:02:28.480" video="mainVideo" id=subtitle]]
+[[!template text="This is the GUI for PyMOL." start="00:02:30.000" video="mainVideo" id=subtitle]]
+[[!template text="It shows in white the viewport area" start="00:02:31.599" video="mainVideo" id=subtitle]]
+[[!template text="where one interacts" start="00:02:35.120" video="mainVideo" id=subtitle]]
+[[!template text="with the loaded molecular object." start="00:02:36.080" video="mainVideo" id=subtitle]]
+[[!template text="We have rendered the same RET kinase" start="00:02:37.840" video="mainVideo" id=subtitle]]
+[[!template text="with a set of preset parameters" start="00:02:41.920" video="mainVideo" id=subtitle]]
+[[!template text="that have been named &quot;publication&quot;." start="00:02:49.788" video="mainVideo" id=subtitle]]
+[[!template text="The other way of applying" start="00:02:51.200" video="mainVideo" id=subtitle]]
+[[!template text="parameter settings and commands" start="00:02:52.720" video="mainVideo" id=subtitle]]
+[[!template text="is to enter them at the PyMOL prompt." start="00:02:54.319" video="mainVideo" id=subtitle]]
+[[!template text="Then the third way is to load and run scripts." start="00:02:56.720" video="mainVideo" id=subtitle]]
+[[!template text="PyMOL is actually written in C for speed," start="00:03:00.159" video="mainVideo" id=subtitle]]
+[[!template text="but it is wrapped in Python for extensibility." start="00:03:03.120" video="mainVideo" id=subtitle]]
+[[!template text="In fact, there are over 100 articles" start="00:03:06.159" video="mainVideo" id=subtitle]]
+[[!template text="about various plugins and scripts" start="00:03:09.680" video="mainVideo" id=subtitle]]
+[[!template text="that people have developed" start="00:03:11.599" video="mainVideo" id=subtitle]]
+[[!template text="to extend PyMOL for years." start="00:03:12.400" video="mainVideo" id=subtitle]]
+[[!template text="Here's some examples" start="00:03:15.120" video="mainVideo" id=subtitle]]
+[[!template text="from the snippet library that I developed." start="00:03:16.480" video="mainVideo" id=subtitle]]
+[[!template text="On the left is a default" start="00:03:18.959" video="mainVideo" id=subtitle]]
+[[!template text="cartoon representation of a RNA hairpin." start="00:03:21.280" video="mainVideo" id=subtitle]]
+[[!template text="I find this reduced representation" start="00:03:24.640" video="mainVideo" id=subtitle]]
+[[!template text="of the RNA hairpin to be too stark." start="00:03:27.040" video="mainVideo" id=subtitle]]
+[[!template text="I prefer these alternate ones" start="00:03:30.799" video="mainVideo" id=subtitle]]
+[[!template text="that I developed." start="00:03:32.319" video="mainVideo" id=subtitle]]
+[[!template text="So, these three to the right of this one" start="00:03:33.840" video="mainVideo" id=subtitle]]
+[[!template text="are not available through" start="00:03:37.519" video="mainVideo" id=subtitle]]
+[[!template text="pull downs in PyMOL." start="00:03:39.519" video="mainVideo" id=subtitle]]
+[[!template text="So why developed a PyMOL" start="00:03:40.720" video="mainVideo" id=subtitle]]
+[[!template text="snippet library for Org?" start="00:03:42.748" video="mainVideo" id=subtitle]]
+[[!template text="Well, Org provides great support" start="00:03:44.879" video="mainVideo" id=subtitle]]
+[[!template text="for literate programming," start="00:03:47.040" video="mainVideo" id=subtitle]]
+[[!template text="where you have code blocks" start="00:03:48.560" video="mainVideo" id=subtitle]]
+[[!template text="that contain code that's executable," start="00:03:49.840" video="mainVideo" id=subtitle]]
+[[!template text="and the output is shown" start="00:03:52.000" video="mainVideo" id=subtitle]]
+[[!template text="below that code block." start="00:03:53.040" video="mainVideo" id=subtitle]]
+[[!template text="And then you can fill" start="00:03:54.959" video="mainVideo" id=subtitle]]
+[[!template text="the surrounding area in the document" start="00:03:56.720" video="mainVideo" id=subtitle]]
+[[!template text="with the explanatory prose." start="00:03:58.959" video="mainVideo" id=subtitle]]
+[[!template text="Org has great support" start="00:04:00.799" video="mainVideo" id=subtitle]]
+[[!template text="for editing that explanatory prose." start="00:04:02.000" video="mainVideo" id=subtitle]]
+[[!template text="Org can run PyMOL through PyMOL's Python API." start="00:04:04.480" video="mainVideo" id=subtitle]]
+[[!template text="One of the uses of such an Org document" start="00:04:08.080" video="mainVideo" id=subtitle]]
+[[!template text="is to assemble a gallery of draft images." start="00:04:11.280" video="mainVideo" id=subtitle]]
+[[!template text="We often have to look at" start="00:04:14.487" video="mainVideo" id=subtitle]]
+[[!template text="dozens of candidate images" start="00:04:16.563" video="mainVideo" id=subtitle]]
+[[!template text="with the molecule in different orientations," start="00:04:19.840" video="mainVideo" id=subtitle]]
+[[!template text="different zoom settings," start="00:04:22.000" video="mainVideo" id=subtitle]]
+[[!template text="different representations," start="00:04:23.520" video="mainVideo" id=subtitle]]
+[[!template text="different colors, and so on." start="00:04:25.032" video="mainVideo" id=subtitle]]
+[[!template text="And to have those images along with…," start="00:04:27.280" video="mainVideo" id=subtitle]]
+[[!template text="adjacent to the code" start="00:04:30.639" video="mainVideo" id=subtitle]]
+[[!template text="that was used to generate them," start="00:04:31.840" video="mainVideo" id=subtitle]]
+[[!template text="can be very effective for" start="00:04:33.680" video="mainVideo" id=subtitle]]
+[[!template text="further editing the code" start="00:04:37.199" video="mainVideo" id=subtitle]]
+[[!template text="and improving the images." start="00:04:39.680" video="mainVideo" id=subtitle]]
+[[!template text="Once the final images have been selected," start="00:04:40.880" video="mainVideo" id=subtitle]]
+[[!template text="one can submit the code" start="00:04:44.080" video="mainVideo" id=subtitle]]
+[[!template text="as part of the supplemental material." start="00:04:46.320" video="mainVideo" id=subtitle]]
+[[!template text="Finally, one can use the journal package" start="00:04:48.479" video="mainVideo" id=subtitle]]
+[[!template text="to use the Org files as" start="00:04:52.400" video="mainVideo" id=subtitle]]
+[[!template text="an electronic laboratory notebook," start="00:04:54.608" video="mainVideo" id=subtitle]]
+[[!template text="which is illustrated with molecular images." start="00:04:57.120" video="mainVideo" id=subtitle]]
+[[!template text="This can be very useful" start="00:04:59.600" video="mainVideo" id=subtitle]]
+[[!template text="when assembling manuscripts" start="00:05:01.039" video="mainVideo" id=subtitle]]
+[[!template text="months or years later." start="00:05:04.080" video="mainVideo" id=subtitle]]
+[[!template text="This shows the YASnippet pull down" start="00:05:05.440" video="mainVideo" id=subtitle]]
+[[!template text="after my library has been installed." start="00:05:08.320" video="mainVideo" id=subtitle]]
+[[!template text="I have an Org file open," start="00:05:12.720" video="mainVideo" id=subtitle]]
+[[!template text="so I'm in Org mode." start="00:05:15.360" video="mainVideo" id=subtitle]]
+[[!template text="We have the Org mode submenu," start="00:05:17.120" video="mainVideo" id=subtitle]]
+[[!template text="and under it, all my snippets" start="00:05:20.880" video="mainVideo" id=subtitle]]
+[[!template text="are located in these sub-sub-menus" start="00:05:23.919" video="mainVideo" id=subtitle]]
+[[!template text="that are prepended with pymolpy." start="00:05:26.880" video="mainVideo" id=subtitle]]
+[[!template text="Under the molecular representations menu," start="00:05:30.880" video="mainVideo" id=subtitle]]
+[[!template text="there is a listing of snippets." start="00:05:33.840" video="mainVideo" id=subtitle]]
+[[!template text="The top one is for the ambient occlusion effect," start="00:05:36.479" video="mainVideo" id=subtitle]]
+[[!template text="which we're going to apply" start="00:05:38.563" video="mainVideo" id=subtitle]]
+[[!template text="in this Org file." start="00:05:39.840" video="mainVideo" id=subtitle]]
+[[!template text="So these lines of code were inserted after," start="00:05:41.039" video="mainVideo" id=subtitle]]
+[[!template text="as well as these flanking lines" start="00:05:44.240" video="mainVideo" id=subtitle]]
+[[!template text="that define the source block," start="00:05:48.479" video="mainVideo" id=subtitle]]
+[[!template text="were inserted by clicking on that line." start="00:05:50.240" video="mainVideo" id=subtitle]]
+[[!template text="Then I've added some additional code." start="00:05:53.280" video="mainVideo" id=subtitle]]
+[[!template text="So, the first line defines" start="00:05:55.120" video="mainVideo" id=subtitle]]
+[[!template text="the language that we're using." start="00:05:56.880" video="mainVideo" id=subtitle]]
+[[!template text="We're going to use" start="00:05:59.039" video="mainVideo" id=subtitle]]
+[[!template text="the jupyter-python language." start="00:05:59.768" video="mainVideo" id=subtitle]]
+[[!template text="Then you can define the session," start="00:06:02.639" video="mainVideo" id=subtitle]]
+[[!template text="and the name of this is arbitrary." start="00:06:04.560" video="mainVideo" id=subtitle]]
+[[!template text="Then the kernel is our means" start="00:06:06.400" video="mainVideo" id=subtitle]]
+[[!template text="by which we gain access" start="00:06:09.680" video="mainVideo" id=subtitle]]
+[[!template text="to the Python API of PyMOL." start="00:06:11.360" video="mainVideo" id=subtitle]]
+[[!template text="The remaining settings apply to the output." start="00:06:14.880" video="mainVideo" id=subtitle]]
+[[!template text="To execute this code" start="00:06:17.039" video="mainVideo" id=subtitle]]
+[[!template text="and to get the resulting image," start="00:06:18.319" video="mainVideo" id=subtitle]]
+[[!template text="you put the cursor inside this code block," start="00:06:21.199" video="mainVideo" id=subtitle]]
+[[!template text="or on the top line," start="00:06:25.120" video="mainVideo" id=subtitle]]
+[[!template text="and enter Control c Control c (C-c C-c)." start="00:06:26.560" video="mainVideo" id=subtitle]]
+[[!template text="This shows the resulting image" start="00:06:29.840" video="mainVideo" id=subtitle]]
+[[!template text="has been loaded up." start="00:06:32.240" video="mainVideo" id=subtitle]]
+[[!template text="It takes about 10 seconds for this to appear." start="00:06:33.600" video="mainVideo" id=subtitle]]
+[[!template text="So the downside of this is" start="00:06:37.280" video="mainVideo" id=subtitle]]
+[[!template text="if you have a large number of these," start="00:06:38.479" video="mainVideo" id=subtitle]]
+[[!template text="the Org file can lag quite a bit" start="00:06:40.729" video="mainVideo" id=subtitle]]
+[[!template text="when you try to scroll through it," start="00:06:43.919" video="mainVideo" id=subtitle]]
+[[!template text="so you need to close up these result drawers," start="00:06:45.120" video="mainVideo" id=subtitle]]
+[[!template text="and only open up the ones" start="00:06:48.319" video="mainVideo" id=subtitle]]
+[[!template text="that you're currently examining." start="00:06:50.960" video="mainVideo" id=subtitle]]
+[[!template text="These are features I think" start="00:06:53.199" video="mainVideo" id=subtitle]]
+[[!template text="are important in practical work." start="00:06:54.319" video="mainVideo" id=subtitle]]
+[[!template text="So, the plus is, a feature that's present," start="00:06:56.240" video="mainVideo" id=subtitle]]
+[[!template text="minus is absent." start="00:06:59.840" video="mainVideo" id=subtitle]]
+[[!template text="I think tab stops and tab triggers" start="00:07:01.120" video="mainVideo" id=subtitle]]
+[[!template text="are really important." start="00:07:03.199" video="mainVideo" id=subtitle]]
+[[!template text="Triggers are important for" start="00:07:04.800" video="mainVideo" id=subtitle]]
+[[!template text="the fast assertion code," start="00:07:05.680" video="mainVideo" id=subtitle]]
+[[!template text="tab stops are important for" start="00:07:06.720" video="mainVideo" id=subtitle]]
+[[!template text="complete, accurate editing of code." start="00:07:08.639" video="mainVideo" id=subtitle]]
+[[!template text="I already addressed the rendering speed" start="00:07:10.560" video="mainVideo" id=subtitle]]
+[[!template text="and scrolling issue." start="00:07:12.735" video="mainVideo" id=subtitle]]
+[[!template text="I think the way around this" start="00:07:14.560" video="mainVideo" id=subtitle]]
+[[!template text="is just to export the Org document to a PDF file" start="00:07:15.759" video="mainVideo" id=subtitle]]
+[[!template text="and do your evaluation of different images" start="00:07:19.199" video="mainVideo" id=subtitle]]
+[[!template text="by examining them in the PDF" start="00:07:23.360" video="mainVideo" id=subtitle]]
+[[!template text="rather than the Org file." start="00:07:25.199" video="mainVideo" id=subtitle]]
+[[!template text="The path to PDF is lightning fast in Emacs" start="00:07:26.560" video="mainVideo" id=subtitle]]
+[[!template text="compared to Jupyter," start="00:07:30.400" video="mainVideo" id=subtitle]]
+[[!template text="where it's cumbersome in comparison." start="00:07:32.240" video="mainVideo" id=subtitle]]
+[[!template text="This is a snapshot of my initialization file." start="00:07:35.280" video="mainVideo" id=subtitle]]
+[[!template text="These parts are relevant to doing this work." start="00:07:38.400" video="mainVideo" id=subtitle]]
+[[!template text="A full description of them" start="00:07:41.840" video="mainVideo" id=subtitle]]
+[[!template text="can be found in the README file" start="00:07:43.039" video="mainVideo" id=subtitle]]
+[[!template text="of this repository on GitHub." start="00:07:46.319" video="mainVideo" id=subtitle]]
+[[!template text="I'd like to thank the" start="00:07:48.639" video="mainVideo" id=subtitle]]
+[[!template text="Nathan Shock Data Science Workshop" start="00:07:49.456" video="mainVideo" id=subtitle]]
+[[!template text="for feedback during presentations" start="00:07:51.840" video="mainVideo" id=subtitle]]
+[[!template text="I've made about this work." start="00:07:54.319" video="mainVideo" id=subtitle]]
+[[!template text="And I would also like to thank" start="00:07:56.160" video="mainVideo" id=subtitle]]
+[[!template text="the following funding sources for support." start="00:07:57.628" video="mainVideo" id=subtitle]]
+[[!template text="I will now take questions. Thank you." start="00:08:00.240" video="mainVideo" id=subtitle]]
+[[!template text="captions by Blaine Mooers and Bhavin Gandhi" start="00:08:03.879" video="mainVideo" id=subtitle]]