This practical book covers the many new features of Java 8, how to find scientific software online, and how to release usable, high quality code.
The first chapters introduce Java and Java development tools. After that the typical chapter introduces a biology problem, and develops the programming and algorithmic tools needed to solve it.
Several chapters build simulations of gene regulation, and develop the basic ideas of object oriented programming.
A simulation of the electrical activity in a neural membrane leads to a study of the Java inheritance system. The cellular structures which control electrical activity in the membrane map directly to a Java class hierarchy.
Web services allow programs to directly access biological data and services on the internet.
Programs implementing probabilistic sequence models introduce a number of very useful scientific software techniques. The programs for training the models from sequence data use lambda functions and other new Java features for handling a lot of data in parallel.
Aligning biological sequences teaches the dynamic programming algorithm. Programs to solve this problem tend to work well for small examples but fall apart when using realistically sized inputs, so the book covers computational complexity and many practical tools to ensure that the program is solid for real data.
A model of genetic drift introduces graphical user interfaces.
A model of chemotaxis, the behavior of bacteria in moving toward or away from certain stimuli, uses threading and other techniques for asynchronous programming. The program uses genetic algorithms, a simple machine learning technique, to adapt the model parameters.
A program to count blood cells in an image works as a plugin to the ImageJ image processing system. Besides digital image processing techniques, it uses a family of Java tools called reflection.
This book provides students and scientists with the tools to manage and analyze data. Those who are already software proficient will learn about
a fascinating and important application area.
Full source code for all the programming projects, data for running the programs, and solutions to many of the exercises are available online.