Lectures and readings
Lecture attendance and required reading are mandatory. The lecture/reading schedule is on the course website.
Course communication
You should contact the course staff via email for issues of a personal nature, such as excuses for illness. For topics related to course topics and homework, use the class Ed page. Most of our mass communication with you will be through Ed, so be sure to set your Ed account to give you email alerts.
When posting on Ed, please follow these guidelines:
- Appropriately tag your question or comment with the appropriate category (e.g., "Directed evolution" or "HW2").
- If you have a question about a coding bug make every attempt to provide a minimal example that demonstrates the problem. A minimal example strips out all other details beyond what is necessary to reproduce the problem or bug. Posting error messages without code is seldom helpful.
- If you feel that posting a minimal example will result in showing too much of your answer to your classmates, you can post your question on Ed privately so that only the course staff can see it.
- While you are free to post anonymously to your classmates (course staff will always know who posts), we encourage you to post with your real name. This can spur discussions among students, which can be productive.
- Course staff strives to answer questions quickly, but students should answer when they can. This also spurs more conversation and results in faster answers to questions.
Grading
80% problem sets
20% News & Views final project
Lecture attendance and required readings are mandatory.
Honor Code
Unless otherwise noted on a particular problem set, you may discuss assignments with other students. The work, however, should be substantially your own. It is a violation of the Honor Code to copy solutions from classmates or to use course materials from previous years.
Homework
All problem sets must be submitted by 1 pm on the stated dates (i.e., before class starts) and the News & Views must be submitted by 5 pm on Dec 10. The homework is submitted by email to caltech.chebe163@gmail.com with a subject line "HW# lastname, firstname," where "#" is the number of the homework. All work is done in a Jupyter notebook, with one notebook per problem set. It is imperative that your notebook run, in order, start to finish, and you should verify that it does prior to submission. The submission should consist of a ZIPped folder containing your notebook, an HTML rendering of the notebook, and any images that are referenced in your notebook. To create an HTML rendering, in JupyterLab navigate to File ⟶ Export Notebook As... ⟶ HTML.
Each student is allocated six "grace days" which can be allocated to any assignments with no deduction (e.g., turn in homework 1 two days late, and homework 3 four days late with no deduction). Note: One grace day corresponds to any number of hours up to 24 (e.g., turning a set in four hours late counts as one grace day). After the six grace days have been used up for the term, late assignments will not be accepted. Late work submitted with a note from a Dean (e.g., for medical reasons) does not count against your grace days. Please note that no assignment can be turned in after Friday, Dec 10 due to the term ending.
News & Views
An article in the News & Views section of Nature typically describes a current
research paper to a non-expert audience. The articles are between 1.5 and 2
pages in length, typically have a single figure, and usually have about eight
references. They provide a basic contextual background for the highlighted
paper, describe its major findings, and pose open questions in the field. Check
out Nature’s website for examples of recent News & Views articles.
Your final project is to select a current research paper (no more than three years
old) and write a News & Views piece (make sure the paper you choose has not already been featured in a News & View type piece). The paper can be in any journal, but the
News & Views should be written in the style of Nature. It should be no more than
two single-spaced pages in length (11 pt font, 1 inch margins), including a figure
that you create (i.e., not taken from the original paper, but designed to tell the
story for your piece) and 5 to 10 references.
Computing
Homework is completed as Jupyter notebooks, which allow mixing executable code and its output with text and images, including equations. The equations are rendered using LaTeX. Please consult tutorials on using Jupyter notebooks and LaTeX.
This course requires use of NUPACK, a growing software suite for the analysis and design of nucleic acid structures, devices, and systems. Additionally, you will need to use other Python-based software, such as NumPy. You can use a computing resource on the Pierce Lab server cluster that we set up for you. This already has the latest version of NUPACK (NUPACK 4.0) installed, along with Python wrappers to aid in its use, and other Python packages you will need. To start, you will need to create a GitHub account (if you don't already have one) by visiting https://github.com/join. Send your GitHub username to caltech.chebe163@gmail.com to be approved for access to the cluster.
To launch a NUPACK server (PLEASE only have one server running. Do not start multiple servers for this course.):
- Visit https://notebooks.bopcluster.net/hub/login.
- Login with your GitHub credentials (this will work after your GitHub username is approved).
- Click the blue button that says "Start my server" (DO NOT CLICK "Add new server".).
- Select "2021 ChE/BE 163" under server options and click "Start".
- Go back to the hub page and click File-Hub Control Panel
- When your server is running (under "Actions" it should now say "Stop My Server"), click on the link in the "URL" column to access your JupyterLab instance.
- You are now able to create Python notebooks from this Jupyter Lab page.
You may choose to stop your server between sessions. To start it again follow Step 4. (Select "2021 ChE/BE 163" under server options and click "Start"/)
Documentation of NUPACK 4.0 Python Executables is available at https://docs.nupack.org/.
To view a list of imported NUPACK python functions you can run either of the following commands in a python cell:
- help(nupack)
- dir(nupack)
Alternatively, you may choose to install the Python distribution on your personal computer. To do so, follow the instructions under "Installation" on the NUPACK Documentation site.