James A. Foster

James A. Foster

I have the best job in the world: Professor. I am a Computer Scientist with a liberal arts degree in classical philosophy who works in a great biology department with inspiring colleagues. I live in beautiful northern Idaho, where the fishing is fantastic and the wilderness is just up ahead. I have a talented and interesting family and good friends.

Here is my full curriculum vitae.

  • Projects
  • People
  • Products
  • Presentations

Microbial diversity and ecology (Evolution and Ecosystems)

We develop algorithmic and statistical techniques and tools with which to infer the makeup of a microbial community from the total DNA in a sample. We are particularly interested in microbial communities in human milk, and in communities that may make some species of newts toxic. But our results generalize to any microbial ecosystem. Our goal is to understand why different ecosystems host the communities they do, and how those communities change as they and their ecosystems evolve.

In particular, I am working on characterizing the human milk microbiome and correlating it with anthropological data; and I am working on the skin microbiome of the rough skinned newt

Agent based modeling of signaling systems

Signaling systems are agent based models of signaling whereby one agent perceives the world but cannot act, and the other can act but not perceive the world, and the fitness of the dyad depends on whether an action is appropriate for a given world state. We use agent based simulations to form and test hypotheses about the type of signals that arrive via evolutionary processes under this model, and to test the limits under which effective communication is possible when perceptions are unreliable or actions non-deterministic.

Evolutionary computation and machine learning for bioinformatics (Theory and Algorithms)

We are applying evolutionary computation and other machine learning algorithms interpret large biological datasets. For example, we have developed and algorithms that use genetic programming and genetic algorithms for multiple (DNA or protein) sequence alignment, for phylogenetic reconstruction, and for disease-microbial ecology association studies.

Algorithmic efficiency for computational biology (Theory and Algorithms)

We help colleagues design efficient algorithms and implement them as effective programs. This uses our expertise in computational complexity theory, the theory and practice of algorithm analysis, and algorithmic design.

Name Position Research interests
Faculty, Staff, Collaborators
James A. Foster Prof. Bio. Sci. Everything, but especially evolutionary processes
Larry Forney Prof. Bio. Sci. Microbial ecology
Holly Wichman Prof., Bio. Sci. Genomic organization, experimental evolution
Jack Sullivan Prof. Bio Sci Phylogenetics
Terence Soule Assoc. Prof. Comp. Sci. Mechanisms of evolution
Celeste Brown Bioinformatics Coordinator All things bioinformatical
Current Students
Former Students

For a complete list of undergraduate research projects, see my Curriculum Vitae

Daniel Beck Ph.D., BCB, 2014 Machine learning approaches to interpreting the human microbiome and disease
Ilya Zhbannikov Ph.D., BCB, 2015 Algorithms and tools for very large genomic and post-genomic data
Luke Sheneman Ph.D., BCB, 1995 Multiple sequence alignment algorithms
Conrad Shyu Ph.D., BCB, 2006 Limits to tRFLP analysis
Barry Ahrens M.S., CS, 2005 Superresolution algorithms
Gerard Goh M.S., CS, 2005 Protein flexibility
John Brunsfeld B.S., CS, 2006 Transposable element evolution: the simulator
Mike Harrison M.S., CS, 2004 Robustness of evolved systems
John Harrison B.S., CS, 2004 Cloner: utility for using Beowulf clusters
Mark Meysenburg Ph.D., CS, 2003 Pseudorandomness and Evolutionary Computation
Kosuke Imamura Ph.D., CS, 2003 Fault tolerance in Genetic Programming
Robert Shepherd M.S., CS, 2003 Robustness of large evolved sorting networks
Bart Rylander Ph.D., CS, 2001 Complexity of Evolutionary Computation
Jason Masner M.S., CS, 2000 Evaluating the Cost of Evolved Hardware
Brad Harvey M.S., CS, 1999 Byte Code Genetic Programming and Its Application to Data Mining
John Determan M.S., CS, 2000 Automatic Expert System Rule Generation On Nondestructive Waste Assay Data
Chad Creighton B.S., Biology, 2000 Bioinformatics: databases and simulations
John Cavalieri B.S., CS, 2002 Sorting Networks
Jamie Marconi B.S., CS, 1998 Complexity and Evolutionary Computation
Mark Pokorny , M.S., CS, 1998 Evolutionary Computation and Neural Nets
Jaqueline Shoaf M.S., CS, 1997 Evolutionary Computation in Stock Portfolio Selection
Terence Soule Ph.D., CS, 1998 Code Bloat and Genetic Programming
Industrial Affiliates
Frank Francone President AIM learning
Steve McGrew President New Light Industries
Search PubMed:   

For a complete list of publications, see my Curriculum Vitae

I have an open-source policy for software from my lab. Therefore, software that we have released is available on github. Currently available software:
  • MetAmp. Normalize distances between 16S amplicon reads using known full length sequences as guides. Corrects for bias in phylogenetic signal, and allows one to combine multiple 16S markers into a single OTU analysis. Please cite: IY Zhbannikov, JA Foster (2015) MetAmp: Analysis high-throughput microbial amplicon sequence data with multiple markers. Bioinformatics, 10.1093/bioinformatics/btv049
  • SEED. Interactive tool for exploring microbial ecology data, including visualization and multivariate statistics. Please cite: DL Beck, C Daniels, JA Foster (2014) Seed: A microbial community visualization tool. Bioinformatics, pii: btu693
  • Clearcut. Fast relaxed neighbor joining algorithm for very large datasets, especially next generation sequencing data. Also available as part of the Mothur suite. Please cite: LJ Sheneman, J Evans, JA Foster (2006) Clearcut: the reference implementation for the relaxed neighbor joining phylogenetic tree construction method. Bioinformatics. 15(22):2823-4, PMID: 16982706
  • SlopMap. Map next generation sequencing reads onto genomes, including those for non-model organisms. Please cite: IY Zhbannikov, M Settles, SS Hunter, JA Foster (2013) SlopMap: a software application tool for quick and flexible identification of similar sequences using exact k-mer matching. Journal of Data Mining in Genomics and Proteomics, 4(3):1-6. doi: 10.4172/2153-0602.1000133
  • Evalyn. Genetic algorithm approach to multiple sequence alignment.

For a (more) complete list of presentations, see my Curriculum Vitae

Teaching and Outreach (classes and talks)
  • Current
  • Past
  • Future
  • Public Talks

I teach (or have taught) classes in bioethics, bioinformatics, computational biology, evolutionary computation, theory of computation, design and analysis of algorithms, computational complexity, and just about everything else.

Number (sec) CRN Cr Title
Fall Semesters
Bio 456 (even numbered years only)   3 Computation Skills for Biologists (office hours by appointment)
BCB 504   3 Computational skills for biologists (taught from MSU, proctored at UI)
BCB 500 sec 30   arr MS thesis
BCB 600 sec 30   arr PhD thesis
Spring Semesters
Biol 553   1 Ethics for Biologists
BCB 504   3 Evolutionary Biology for Non-Biolgists (taught from MSU, proctored at UI)
BCB 504   3 Interdisciplinary Research in Evolution Studies (taught from MSU, proctored at UI)
BCB 500 sec 30 arr MS thesis
BCB 600 sec 30 arr PhD thesis
Summer Semesters
BCB 500 sec 30   arr MS thesis
BCB 600 sec 30   arr PhD thesis

I have taught most courses in the computer science curriculum, with a particular emphasis and depth in theoretical computer science (computability and complexity). I have also taught bioethics for freshmen as part of the UI core curricula for many years.

These are classes I have taught in the past. These links age, and some may not be reliable. Caveat emptor!

I have also taught various independent studies and seminars, which may not be listed here.

Course Course Title or Topic Term Taught
Core 118/168 Bioethics FS05-06, FS06-07
Biol 553 Professional Development: Ethics Sp14, Sp15
Theoretical Computer Science
CS 4/504 Computational Complexity S91, F97
CS 490/Ma 495 Theory of Computation F90, F92, F94, F96, F00
CS 495/Ma 475 Analysis of Algorithms S92, S94, S96, S98, S05
CS 590 Computation and complexity S93, S94, S95, S96, S97, S99, S03, S04
CS 596 Computational Complexity Theory F94, F97
Bioinformatics & Computational Biology
CS 4/504 Computational Biology F01
CS 4/504 Genetic Algorithms F95
CS 4/504 Bioinformatics and Evolutionary Studies F00
CS 4/504 Perl for Bioinformatics S02
BCB 4/504 Computational Biology S12, S13, S14
Bio 4/556 Computer Skills for Biologists F12, F14, S16
Misc. Computer science
CS 4/572 Evolutionary Computation S98, F98
CS 101 Introduction to Computer Science F96
CS 360 Files and Databases S92
Programming and Software Engineering
CS 113 Program Design and Algorithms S91,F92, F97
CS 204 Programming Practice S92, F92, S93
CS 213 Data Structures F90
CS 386 Derivational Programming S97
CS 4/504 The Future of Programming F93, S95
Seminars and reading courses
CS 401 CS Undergraduate Seminar S03
CS 501 CS Graduate Seminar S96, F96, S03
CS 501 IBEST Seminar S01, S02, S03
CS 499/CS 502 Reading: Machine Learning S99

I am currently developing an undergraduate course on "Quantitative Thinking"

I have given several talks for the general public, and even more for scientific audiences. Here are slides from some of these talks. For a more complete list of talks, see my Curriculum Vitae.

Title Audience Length Description
Combining Bacterial Fingerprints: A New Algorithm (keynote, pdf) Computational and Micro- biologists, bioinformaticists 50 minutes Presents our new algorithm for using multiple 16S gene fingerprints to decipher amplicon-based microbiome data. Or: a better way to tell which bacteria are "there", even when you can't see or grow them.
The human milk microbiome (keynote) Computational and Micro- biologists, bioinformaticists 50 minutes Shows that there is a core set of bacteria present in the breast milk of healthy mothers. Presented at Michigan State University, ICER
The human milk microbiome (keynote) Health care professionals and microbiologists 50 minutes Shows that there is a core set of bacteria present in the breast milk of healthy mothers. Presented at Dartmouth Medical School
17 years of highly successful interdisciplinary research (IBEST) (keynote) Anyone interested in interdiscplinary research and education 50 minutes A case study in how we built a highly successful interdiscpilinary research and education group, and kept it going for almost two decades (so far). History of the Initiative for Bioinformatics and Evolutionary STudies (IBEST)
The data flood: we need a bigger boat (keynote, pdf) biologically literate general public 30 minutes next generation sequencing gives us much more data than we know how to handle. To avoid drowning, we need new techniques.
Bugs in the Arctic: how do soil bacterial communites change as glaciers retreat? microbial ecologists, bioinformaticists, students, general public 50 minutes techniques for data reduction of 454/FLX metagenomic study of microbial populations from soil in a transect below a receding glacier in Spitsbergen
Guide trees and alignment quality for multiple sequence alignment (in power point) bioinformaticists, students 20 minutes Guide trees for progressive multiple sequence alignments are correlated with alignment quality, but have only minor effect
Power versus efficiency in microbial communities (in keynote) microbial ecologists 20 minutes Summarizes research project testing the ability of bacterial species to coexist as a function of their protein translation strategy.
Microbial Diversity at the Marine Biology Lab (in keynote) General public 45 minutes - 1 hour My summer school at the Marine Biology Lab in Woods Hole. Has lots of pretty pictures of bacterial colonies.
Philosophy meets Biology General public 50 minutes New biological problems that strain current philosophical assumptions.

Ethics, public policy, politics, etc

Ethical analysis of US care (ppt, pdf) general public 10 minutes Presents a formal analysis of the ethics of the current and proposed US health care systems. The analysis method is broadly useful for public policy analysis. (full analysis here)
Evolutionary Computation
Evolutionary computation (keynote) evolutionary biologists, general public 30 minutes reviews how evolution is a process, and EC can be used to answer ill formed questions with lots of data. Presented at Evolution 2009, 6/14/09.
Introduction to evolutionary computation computer science students 50 minutes Using simulated evolution to solve problems computationally (GA, GP, etc.)
Using evolution to build computing software and hardware Biologists, computer scientists, or general public 15, 30 or 50 minutes Evolutionary computation (EC) techniques, including genetic algorithms (GA) and genetic programming (GP), for building computer programs and computing circuits
EC hardness EC researchers 50 minutes thoughts on how to measure problem hardness in EC.
Robustness of evolved circuits EC researchers 15 minutes Evolved sorting networks are fail less catastrophically than hand-designed ones when subjected to point circuit failures.
Using GAs for building stock market portfolios computer scientists 50 minutes Solving multi-objective functions (e.g. risk, return) with subtractive constraints (e.g. long and short positions), stock market portfolio example

Other Computer Science Stuff

What machines can never learn general public 50 minutes inductive inferencing: computational limits to what machines can learn
Pseudo randomness computer science students 50 minutes Different techniques for generating pseudorandom number sequences, measuring their quality
DNA computing general public 50 minutes Computing with DNA
Quantum computing general public 50 minutes how to use quantum mechanics to speed up computations

Other Stuff

Doing proofs computer science students 50 minutes Strategies for doing mathematical proofs
Bringing home the BEACON (keynote) members of IBEST 30 minutes The relationships between the BEACON STC on "evolution in action" and IBEST

University and Professional service

See Curriculum Vitae for current information

My Education and Training
Institution Degree Year Field of Study
University of Chicago A.B. 1977 Philosophy (classical)
Illinois Institute of Technology M.S. 1987 Computer Science (machine learning)
  Ph.D. 1990 Computer Science (computational complexity theory)
University of Idaho Sabbatical 1999 Molecular biology (experimental evolution)
Marine Biology Lab Sabbatical 2008 Microbial Diversity
Academic Appointments
Institution Department Rank Dates
University of Idaho Biological Sciences Professor 2005 to now
    Affiliate Professor 1995 to 2005
  Initiative for Bioinformatics and Evolutionary STudies (IBEST) Director, IBEST Bioinformatics Core 1999 to 2006
  Initiative for Bioinformatics and Evolutionary STudies (IBEST) Science advisoer IBEST Bioinformatics Core 1999 to 2006
  Idaho INBRE Director, Bioinformatics Network 1999 to 2017
  Bioinformatics and Computational Biology (BCB) Professor 2003 to now
    Director 2003 to 2005
  Computer Science Affiliate Professor 2005 to now
    Professor 2001 to 2005
    Associate Professor 1996 to 2001
    Assistant Professor 1990 to 1996
  Philosophy Affiliate Professor 1998 to now
University of Washington Biomedical Informatics Affiliate Professor 2003 to now
Idaho State University Biology Affiliate Professor 2003 to now
Northeastern Illinois University Computer Science Assistant Professor 1989 to 1990
    Lecturer 1988 to 1999
News, Announcements, Positions

News and Announcements


I've been cutting back on travel, so far these are the upcoming meetings. Maybe I'll see you at one!

  • PSB January 2017
  • EvoSTAR April 2017

Press Releases

None currently

Recent Publications

For a complete list of publications, see my full curriculum vitae