Programming for Chemical and
Life Science Informatics - I573

Spring 2008

Introduction
This class (formerly I590) is a 3CH graduate course aimed at giving students a broad knowledge of the programming, algorithmic and software techniques used in the chemical and life science informatics disciplines, though the main focus will be on cheminformatics. In the area of programming we'll be looking at tools to help write programs and toolkits that allow us to focus on domain specific problems. We'll also look at some theoretical topics, such as graph theory and machine learning, which are widely used in cheminformatics and bioinformatics problems. And finally, we'll also cover a variety of technologies that are playing an important role in todays cheminformatics and bioinformatics projects. Examples of such technologies include workflows, wikis and blogs, ontologies and so on.

You should be comfortable in at least one programming language. The class will mainly focus on Python and Java, though the examples should be easily translatable to other languages. There is no language restriction for assignments, so you can use whatever you're comfortable with.

The class is located in Bloomington, but is also offered as a Distance Education course to any graduate in the US through teleconference and web conferencing services. A few of the lectures will be given by guest lecturers from industry and academia.

The address of the mailing list for the class is i573-sp2008-l@indiana.edu. Mails sent to this address will be recieved by all members of the class.

Use the links below to jump to the details

  1. Place & Time
  2. Office Hours
  3. Distance Students

  4. Books & References

  5. Course Evaluation
  6. Course Outline
  7. Class Schedule

  8. Academic Policy
Place & Time
The class will be held on Tuesdays and Thursdays from 9:30am - 10:45am in I 105.
Office Hours
By appointment
Distance Students
  1. From your phone, dial 800-940-6112, and enter the passcode
  2. Go to http://breeze.iu.edu/i573 and log in as a guest
  3. If you have any accessing problems during the class, try sending a chat message in Breeze. If that doesn't work, interrupt the teleconference, or call Rajarshi's cellphone (number will be given out in email)
Books & References

Scientific programming

Python

Java

R

SQL

Toolkits

Academic Policy
The principles of academic honesty and professional ethics will be vigorously enforced in this course, following the IU Code of Student Rights, Responsibilities, and Conduct, and the School of Informatics Academic Regulations. This includes the usual standards on acknowledgment of help, contributions and joint work, even when you are encouraged to build on libraries and other software written by other people. Cases of academic misconduct (including cheating, fabrication, plagiarism, interference, or facilitating academic dishonesty) will be reported to IUB Office of Student Ethics, a branch of the Office of the Dean of Students. Your submission of work to be graded in this class implies acknowledgement of this policy. If you need clarification or have any questions, please see the instructor during office hours.
Evaluation
Course Outline
Course Schedule
Week Dates Lecture Recording  
101/8 Introduction Week 1, Part 1  
101/10 The Programming Environment Week 1, Part 2

Alternate Recording
 
201/15 Debugging and Profiling Week 2, Part 1

Alternate Recording
bug.c

Project list available
201/17 Language Overview Week 2, Part 2

Alternate Recording
 
301/22 Guest Lecture (David Wild)
Design Principles for Scientific Software
Week 3, Part 1

Alternate Recording
 
301/24 Graph Theoretic Techniques I Week 3, Part 2

Alternate Recording
Homework (due 12th February)
401/28 Graph Theoretic Techniques II Week 4, Part 1

Alternate Recording
 
401/31 Programming for Chemistry with the CDK Week 4, Part 2

Alternate Recording
Pharmacophores in the CDK
502/5 Programming for Chemistry with OEChem Week 5, Part 1

Alternate Recording
 
502/7 Programming for Biology with BioPython Week 5, Part 2 Protein sequences for M. tuberculosis

KEGG enzyme data
602/12 Optimization & Machine Learning I Week 6, Part 1

Alternate Recording
 
602/14 Optimization & Machine Learning II Week 6, Part2

Alternate Recording
702/19 Statistical Programming with R Week 7, Part 1 data1.csv
702/21 Statistical Programming with R Week 7, Part 2

Alternate Recording
802/26 Statistical Programming with R - Data Analysis Week 8, Part 1

Alternate Recording
Boiling Point data

Solubility data

Example exercises

Homework (due 17th March)
802/28 (continued) Week 8,Part 2  
903/4 Databases for Cheminformatics I Week 9, Part 1

Alternate Recording
 
903/6 Databases for Cheminformatics I (continued) Week 9, Part 2

Alternate Recording
Project outline due
 03/11 No class    
 03/13 No class    
1003/18 Databases for Cheminformatics II Week 10, Part 1
1003/20 Databases for Cheminformatics II
(continued)
Week 10, Part 2  
1103/25 Guest Lecture (Jean-Claude Bradley)
Week 11, Part 1

Alternate Recording
Screencast

Slides

Transcript
1103/27 Semantic Web Languages I Week 11, Part 2

Alternate Recording
 
1204/1 Semantic Web Languages II Week 12, Part 1  
1204/3 Web Applications Week 12, Part 2  
 04/8 No Class    
 04/10 No Class    
1404/15 Web Applications (continued)    
1404/17 Guest Lecture (Randy Heiland)
Scientific Visualization
Week 14, Part 2 Slides
1504/22 Class Presentations Bin Chen
Jun Ma
Sriram Raghuraman
Steve Wathen
Project due
Week 15, Part 1

Alternative Recording
1504/24 Class Presentations Dah Me Ko
Vidyashankar Venkataraman
George Krudy
Chirayu Goswami
Week 15, Part 2

Alternative Recording