Programming for Chemical and
Life Science Informatics - I573

Spring 2009

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 SP09-BL-INFO-I573-13748@oncourse.iu.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

Blogs

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  
1 01/13 Introduction
Programming Environment
   
1 01/15 Programming environment (cont)   pubchem.sdf
2 01/20 Debugging and Profiling   bug.c

memorybug.c

Project list available
2 01/22 Language Overview   assaytarget.py
3 01/27
Graph Theory I
  Homework

comm.txt
3 01/29 Graph Theory II    
4 02/03 Programming for Chemistry with the CDK   Pharmacophores in the CDK
4 02/05 continued   Homework
5 02/10 Programming for Chemistry with OEChem    
5 02/12 Programming for Biology with BioPython
Optimization & Machine Learning II
  Protein sequences for M. tuberculosis

KEGG enzyme data
6 02/17 No class    
6 02/19 Optimization & Machine Learning II   Project outline due
7 02/24 Statistical Programming with R (Part 1)

Statistical Programming with R (Part 2)
  data1.csv
7 02/26 Statisical Programming with R - Data Analysis   Boiling Point data

Solubility data

Example exercises

803/03 Databases for Cheminformatics I    
803/05 Databases for Cheminformatics I (continued)  
903/10 Databases for Cheminformatics II    
903/12 Databases for Cheminformatics II (continued)  
 03/17 Spring Break    
 03/18 Spring Break    
 03/24 No Class    
 03/26 No Class    
1003/31 Web Applications    
1004/02 Web Applications (continued)
(continued)
   
1104/07 Semantic Web Languages I    
1104/09 No Class    
1204/14 Semantic Web Languages II    
1204/16 Semantic Web Languages II    
1304/21 Visualization    
1304/23 Benchmarks
and
Class Presentations
Vikas
1404/28 Class Presentations Rajeswari
Sushmitha
Pulan
Quan
Sashi
Manasa
Kuldeep
 
1404/30 Class Presentations Neethu
Kashi
Bernard
Bob
Jae Hong
Nathan
Vivek
Chuan-Yih
Rahul
Hongliu