The first weeks in the computational biology lab usually focus on background reading and introductory computer experience. Use the following recommendations as an outline of a self paced independent study. If there is no link to a particular item, you can obtain a handout from me. Our initial discussions will focus on this background work and prepare you for understanding the details of your research project. These activities are divided into several sections, including background reading in several diverse areas including: mathematical modeling in biology and cellular biophysics and neuroscience, as well as an introductions and tutorials to give you a feeling for the linux operating system, XPP, MATLAB, Xmgrace, CSH scripts, and SciClone, which you will need to understand to make progress in your research. These introductory readings and tutorials are in no particular order.
![]()
Be sure to keep a laboratory notebook to record your efforts this summer. I would recommend a loose-leaf binder, because many items appropriate for your notebook can easily be printed from the linux workstation, marked up, holes punched, and inserted. Ask Marcy or myself for any office supplies (e.g., binders, scotch tape, dividers). Date all entries and organize the notebook by date. When we meet to discuss your progress, you can then page through your notebook and summarize your work and any question. The following items are appropriate for the notebook:When should you take the time to write something in your notebook?
- Your "to do" lists
- Figures that summarize simulations or calculations
- Hard copies of code that you have written
- Analytical calculations that you have performed
- A list of the scientific literature you have read (this makes the writing of bibliographies easier).
- Notes from your reading of the scientific literature. Photocopiees of marked up text that you have read that seems significant.
Questions about your reading.
- Every time you do something significant, record it.
- When you change tasks, write down any important details regarding the task you just finished.
- When you finish an important calculation, print out a figure and print out or write down anything information necessary to reproduce it. For example, print out the .ode file and mark on this sheet any parameter changes).
- As you are working, write down any information (no matter how insignificant it may seem), if you suspect having this information will make your work easier/faster "next time." For example, if you just learned how to perform some complicated unix command, write this down in your notebook. You'll be amazed at how much time you save.
![]()
Read Chapters 4 and 5 of Mathematical Models in Biology by Leah Edelstein-Keshet. After reading "An introduction to continuous models" (Ch 4), do problems 2-5, 14, 15-22. After reading "Phase plane methods and qualitative solutions" (Ch 5), do problems 5-7. If you have already had Differential Equations (e.g., MAT 301), these chapters will be an easy exercise that will help you learn the language of mathematical modeling as applied to biology. For math review, check out SOS Mathematics which has a section on differential equations.
Cellular biophysics includes the study of the electrical activity and intracellular signaling of various cell types. To get some general background in this area, read:
If your research project is going to focus on calcium signaling,
read:
If your research project is going to focus on thalamic visual processing,
read:
The purpose of the above reading is to prepare yourself so that
you can participate in the identification of an interesting and specific
research problem. Think about what aspects of the grant proposals
interest you the most. Express your preferences and interests as
we choose and plan your research project. If this isn't enough, take
a look at the Computational
Cell Biology and Neuroscience Reading List, my
papers, and the references therein.
![]()
Most computational work will be performed in the Computational Cell Biology Laboratory on Linux workstations running Red Hat 7.2. Eventually you may be connect to the SciClone beowulf cluster running SUN's version of UNIX, called Solaris. Most research projects involves extensive calculations performed using XPP, MATLAB, C, C++, and various data visualization packages and scripting languages.
Lab rules:
- Hours are flexible, but if you are doing research full time you should start by 10:00 AM and work a full 8 hours a day. Arrange vacation days in advance. If you are sick or are spending major time away from the lab (e.g., doing a literature search), send me a quick email.
- Don't manually reboot the computers, because other users may be processes in the background. If a machine is `locked up,' contact me and move to another machine.
- Use earphones to play CDs.
- When leaving the lab, always log off. Shut and lock the door if your the last one out of the room.
Some Useful Unix Commands
You will need to learn some UNIX. Below are listed the most important and most basic commands for making and copying files and directories (like folders on Windows computers). Here is a list of UNIX Tutorials obtained via Google Search.Here is a list of miscellaneous unix/linux commands you may find useful: grep, pgrep, kill, top, and sed.- yppasswd Changes password. The machine will prompt you. Don't use the command passwd.
- ls Views contents of the current directory. ls -a views contents of the current directory including hidden files. ls -F views contents of the current directory and indicate directories with ``/'' at the end.
- mkdir DIRECTORY Makes a directory with the name DIRECTORY. cd DIRECTORY Changes the current working directory from SOMEPATH/ to SOMEPATH/DIRECTORY
- cd .. Moves ``up'' the directory tree. cd Changes the present working directory to your home directory.
- rm FILE Removes the file by the name of FILE, e.g., rm test.ode removes the file test.ode
- cp FILE1 FILE2 Makes a new copy of FILE1 by the name of FILE2, e.g., cp test.ode newtest.ode makes a new copy of test.ode called newtest.ode The command cp test.ode hw1/newtest.ode would makes a new copy of test.ode called newtest.ode in the existing directory hw1.
- mv FILE1 FILE2 Renames the FILE1 with the name of FILE2.
- pwd Lists the present working directory.
- man COMMAND Lists directions for using COMMAND.
- pico Starts an editor with which you can easily create and modify ASCII files, e.g., the .ode files used by XPP. pico FILENAME opens the file FILENAME for editing.
Editors
ASCII files can be edited using one of several editors (vi, emacs, and pico). If you are a new UNIX user I recommend you use pico to create and edit ASCII files until you learn vi, which requires the memorization of keyboard shortcuts. I would, however, take the time to learn vi, because this editor will be available on any UNIX or LINUX workstation. Start with this Vi Tutorial, read Learning the Vi Editor (6th Edition) by Linda Lamb, Arnold Robbins, or try this list of Vi Tutorials.
XPP
Learn XPP and by working through the XPP Tutorial, written by Bard Ermentrout. NOTE: Ignore the "Technical Setup section of the XPP Tutorial. In order to make the links to XPP files work you must configure your browser (I'm assuming you are using Netscape here).
You may also find it useful to puruse the XPP online documentation and postscript and pdf versions. There is also an XPP summary in postscript and pdf. You might also puruse
- Open Netscape's "Edit"/"Preferences" window.
- Click on "Navigator"/"Applications"
- Click on "NEW" and fill in the following:
- Description: XPPAUT file
- MIMEType: application/ode
- Suffixes: ode
- (Do not click the "Use this MIME..." button
- Application: /usr/local/bin/xpp %s
- Select "OK" twice to close windows
Simulating, Analyzing, and Animating Dynamical Systems: a guide to XPPAUT for researchers and students
by Bard Ermentrout.
MATLAB
Matlab (MathWorks, Inc.) is installed on the Linux workstations in the Cell Biology Computer Lab. To start matlab type "matlab", i.e.,$ matlab
at the shell prompt, "$". Next, at the matlab prompt (">>") type
>> demo
a window will open with a number of demonstrations. Try out some of the graphical demos. Next, focus on simple demos that will help you learn Matlab syntax and various Matlab commands. Use "help" and "doc" to get instructions about new commands. For example, to learn how to use the "plot" command, type
>> help plot
or
>> doc plotTo get a sense of how much there is to learn try typing "help", "help elfun", and "help matfun". Some of the most basic commands are listed when you type "help general" and "help ops".
Before you consider yourself introduced to matlab, make sure:
When have you practiced enough? I would say you're done when you can write and execute a matlab script that does something interesting that you never could have done without matlab. Do something interesting and show me.
- you understand the different notation for matrix operations (e.g., "*" and "^") and element by element operations (e.g., ".*" and ".^").
- you understand how to write matlab scripts and functions (i.e., ".m files").
- you understand matlab control structures (e.g., "for/end" loops, and "if/else/end" statements")
Good references for matlab include
- MATLAB Primer, Sixth Edition by Kermit Sigmon, Timothy A. Davis
- Mastering MATLAB 6 by Duane Hanselman, Bruce R. Littlefield
- Or try this list of MATLAB Tutorials obtained via Google Search.
CSH and BASH
It is very helpful to have command of CSH and/or BASH, so that you can write shell scripts to automate common tasks. The default shell in the Computational Cell Biology Lab is BASH, but you can run a "CSHELL" by typing "csh" at the unix prompt:
$ csh
To end the session and return to a bash shell, type "exit" at the csh prompt:
$ exit
Good references for csh and bash include
- Learning the Bash Shell by Cameron Newham, Bill Rosenblatt
- Using Csh and Tcsh by Paul Dubois
- Or try this list of CSH or BASH tutorials.
SciClone
One of the computing resources available to you is SciClone, a Beowulf-like cluster of networked workstations. In order to request a SciClone account, use the Account Request Form, which can also be found on theSciClone web page under ``User Information.'' Fill out this form and submit electronically to the SciClone system administrator, Tom Crockett (tom@compsci.wm.edu). For the most part, the form is self-explanatory. But note the following:After logging in to the SciClone front end, remember that XPP and MATLAB shouldn't be run on hurricane.sciclone.wm.edu (also called sciclone.wm.edu). Instead, use the command qlogin 1 to start an interactive shell on a more appropriate node of SciClone. The command qlogin -t MINUTES 1 gives you MINUTES minutes of working time, e.g., qlogin -t 120 1 would give you a shell for 2 hours. The command qlogin -t 30 1:m512 would give you 30 minutes on a node with 512 megabytes of memory (default is 128 megabytes). For a complete description of how to use SciClone see the SciClone User's Guide- Type of Account is ``new.''
- Name and Contact Info is very important, especially the email address.
- Affiliation is William and Mary and your home department should reflect your concentration (use Applied Science if you don't yet have a concentration).
- Project Descritpion Select ``This account will be used for joint work on an existing project.'' Take a look at the list of existing projects and supply the project title associated with our group most closely related to your project.
- Account Duration choose start date of today and termination date of 6/1/03.
- Preferred Shell should be csh.
- Authorized Hosts: ``Host 1'' should be masq.as.wm.edu and ``Host 2'' should be dm.as.wm.edu. If you have access to a UNIX or LINUX workstation at home, feel free to add additional hosts.
Latex
Latex is a typesetting language that works extremely well for documents that have a lot of equations. It is expected that you will write up your research results using Latex rather than Word or WordPerfect. Here is a link to LaTeX Help.
If you are forced to read a Word (.doc) file, StarOffice is installed on the linux workstations and can be run with the command "soffice" at the unix prompt. There is also a machine running Windows XP in the lab.
Xmgrace
Xmgrace is a great program for creating publication quality 2D graphs. Matlab can also be used for making figures. Xmgrace is better than Matlab for 2D graphs, but Matlab is better than Xmgrace for 3D graphs.
Printing
Postscript files can be printed to the printer connected to "kempis" using the command
lpr -Plp@kempis filename.ps
To print to the color printer in Brian Holloway's lab type
lpr -PAS_Xerox filename.ps