Biomedical Informatics 214:
Representations and Algorithms for Computational Molecular Biology
(also listed as Bioengineering 214, Computer Science 274 and Genetics 214)
Description | Staff | Announcements / Discussion | Units | Grading | Code Policy | Exams | Late Policy | Partner Policy | Honor Code | Auditors | Prerequisites | Computer Resources | Accessibility | Textbook | Note on Comp Bio Courses
Professor of Bioengineering, Genetics, & Medicine (and Computer Science by courtesy)
russ.altman at stanford.edu
Sections: A few Fridays, 4:15pm-5:05pm, NVIDIA Auditorium (Huang Engineering Center)
Week 1 (September 26): Python Tutorial 1 (of 2) - Basic syntax and usage
Week 2 (October 3): Python Tutorial 2 (of 2) - Slightly more advanced topics
Department of Bioengineering
Clark S170, MC: 5444
Office Hours: Mondays, TBD
Office Hours: TBD
Office Hours: Wednesdays, TBD
Office Hours: Friday, TBD
Office Hours: Mondays, 4:15-5:15pm, Littlefield 301 (southeast corner)
Note: Littlefield is located near the oval. If 301 is occupied, there will be a note on the door directing you to another room on the third floor.
Office Hours: Tuesdays, 9:50am-10:50am, MSOB X271
Office Hours: Wednesdays, 10:30am-11:30am, Huang 16
Office Hours: Thursdays, 2:15pm-3:15pm, MSOB X275
Office Hours: Fridays, 9am-10am, MSOB X275
Announcements / Discussion:(top)
All announcements will be posted as Instructor Notes on the Piazza forum:
Sign up now.
Please post questions about assignments to the Piazza forum so that all students can benefit from the answers. Students are encouraged to answer each others' questions, and participation points will be awarded accordingly. The TAs will peruse these pages to answer clarification questions and to endorse student answers.
- This course is normally taken for 4 units.
- It can be taken for 3 units by arrangement with instructor ONLY.
Biomedin 216 [by arrangement with instructor only]
Students must attend all lectures; absences must be approved by the instructor.
- 1 unit: lectures only
- 2 units: lectures, assignments, midterm, final
Participation is based on:
- Attending class. To receive credit for attendance, you must physically sign the sheet. Please do not email later to request a retroactive sign-in.
- Asking questions in class. Please identify yourself to Dr. Altman.
- Contributing to the Piazza newsgroup by asking and/or answering good questions.
Code / Language Policy: (top)
Late Policy: (top)
The clock runs the same for everyone, even those who join the course late.
Partner Policy: (top)
Students may discuss and work on problems in groups but must write up their own solutions. When writing up the solutions, students must write the names of people with whom they discussed the assignment.
For programming projects:
Students may discuss ideas with others. However, programs are to be completed independently and should be original work. Code may not be shared. Names of students with whom programming ideas were discussed should be included with assignment and explicitly indicated in the header comments of all source code files.
If you do not list a particular student, this will be interpreted as an attestation that you did not speak with this student about the assignment or project.
Honor Code: (top)
- Programming skills are required at the level of CS106B or CS106X. This course has a significant programming component, so students should enter it with the ability to create moderately complex data structures and implement algorithms using them. CS161 and CS108 would also be great, but you should be OK without them. Students who have attempted to take BMI214 with just CS106A under their belts have struggled, so caveat emptor. In particular, we highly recommend a good understanding of recursion for the first programming project, and the better a feel you have for classes, functions, and standard data structures (lists, dictionaries/maps, sets, etc), the easier a time you'll have. Acceptable languages are outlined in the code policy. If you're comfortable with the material of CS106B, but have never used Python, you'll be fine. However, we strongly advise that you learn it as soon as possible so that when you're working on the projects, you can focus on the algorithms rather than the syntax. Treat learning Python as your homework for the first week of class! Project 1 can be tricky to debug, and the more comfortable you are with Python, the fewer bugs you'll have to find :)
- Biology 40 or equivalent is recommended, since we will quickly move through many biology topics. We recommend that all students page through the Biology Tutorial on the sidebar of this site. For many students, this will be a quick review, but it might take an hour or two for those who do not think about biology very much.
Computer Resources: (top)
- You will need to use your SUNet ID. If you don't have a SUNet ID, see http://sunetid.stanford.edu
- Make sure that you are registered for the course on Axess so that you will receive email announcements sent to the course list
- You will need to have access to email, the course website, and the Stanford FarmShare computing resource. All of these resources are available at Stanford computer labs (such as at Sweet Hall) as well as through remote access (SSH or VPN).
corncluster is available for running compute-intensive jobs for the course. To log in to the
corncluster machines, use a secure shell (ssh) client.
corn. Putty will tell you if there was an error.
ssh -X firstname.lastname@example.org
scpyou can transfer a file, assignment.zip with:
$ scp assignment.zip email@example.com:~/
Students with Documented Disabilities: (top)
Optional Course Textbook: (top)
- Durbin, R., Eddy, S.R., Krogh, A., Mitchison, G., Biological Sequence Analysis : Probabilistic Models of Proteins and Nucleic Acids. 1999, Cambridge Univ Pr. ISBN: 0521629713'''
Other Recommended books:
- Beazley, David M., Python Essential Reference, 3rd ed., SAMS Publishers, 2006. Chapter 1 is an excellent tutorial and introduction to Python, and overall, this can be a valuable reference when coding.
- Kohane, I.S., Kho, A., Butte, A.J., Microarrays for an Integrative Genomics (Computational Molecular Biology). 2002, MIT Press. ISBN: 026211271X.
- Mount, D.W., Bioinformatics : sequence and genome analysis. 2nd edition (July, 2004), Cold Spring Harbor Laboratory Press. ISBN: 0879696877.
- Bourne, P.E., Weissig, H. (editors), Structural Bioinformatics. 2004, John Wiley & Sons. ISBN: 0471201995. This book is also available from the Wiley Interscience website at http://www3.interscience.wiley.com/cgi-bin/homepage/?isbn=0471721204 via the campus network.
Note on courses in computational biology: (top)
- BMI 214 (also listed as CS 274) is this course. It has been taught since 1996 and is an introduction to representations and algorithms for analysis of sequence, structure and function. It requires programming skills and aims to give an understanding of the biological problems that arise, and how algorithms are developed to address them. It does not train students to be expert users of tools, but gives them an in-depth knowledge of some tools and a broad introduction to the technical issues in analysis of biological data. It is taught live on Tuesdays/Thursdays and is also on Stanford Online. Section is taught on select Friday afternoons.
- Biochem 218 (also listed as BMI 231) is Doug Brutlag's course introducing computational molecular biology, also a number of years old. It is more geared towards gaining an expert understanding of existing tools and databases, and as such complements BMI 214 very nicely. There is no programming required. Most students take both eventually and learn a lot--even the areas where there is overlap are presented differently enough to round out one's understanding. For logistical reasons this course is also being taught on Tuesday/Thursday, and is on Stanford Online.
- CS 262 (Computational Genomics) is Serafim Batzoglou's course. It focuses principally on algorithms for sequence assembly, analysis and comparison. It will have a strong CS algorithms and data structures component, probably with an element of software engineering as well. It is likely to complement both courses, although in the future, about 1/3 of BMI 214 may overlap sufficiently to require coordination--the part about sequence and string analysis. The coordination has not been done as of now, however. It does not contain much on 3D structure computation and functional computing, judging from the syllabus. The course will be taught live. You should ask Prof. Batzoglou about his plans to offer it via Stanford Online.