| Foreword | p. IX |
| Introduction | p. IX |
| Background and history | p. IX |
| Interfaces and standards | p. X |
| Java as a platform | p. X |
| The future | p. XI |
| Preface | p. XIII |
| p. 1 |
| Introduction to Bioinformatics and Java | p. 1 |
| The Origins of Bioinformatics | p. 1 |
| Current State of Biomedical Research | p. 3 |
| The cancer Biomedical Informatics Grid program | p. 6 |
| caBIG Organization and Architecture | p. 7 |
| The Model-View-Controller Framework | p. 9 |
| Web Services and Service-Oriented Architecture | p. 10 |
| CaGrid | p. 11 |
| Let's look at each of the tools in turn and understand how they sub-serve or address a small component of the bigger research problem | p. 14 |
| CaArray | p. 14 |
| CaWorkbench | p. 16 |
| RProteomics | p. 17 |
| cPath | p. 17 |
| CaTissue Core, caTissue Clinical Annotation Engine and caTIES | p. 18 |
| CaTissue Core | p. 18 |
| Summary | p. 20 |
| Questions and Exercises | p. 21 |
| Additional Resources | p. 21 |
| Selected Reading | p. 23 |
| p. 25 |
| Introduction to Basic Local Alignment Search Tool | p. 25 |
| The Purpose of Blast | p. 25 |
| Performing a Blast Analysis | p. 27 |
| Developing the SwingBlast Application | p. 32 |
| Designing the SwingBlast Java Application | p. 35 |
| Java Event Model | p. 36 |
| Adding Events to Applications | p. 37 |
| Designing the SwingBlast GUI | p. 39 |
| Coding the SwingBlast GUI | p. 45 |
| Coding the SwingBlast Business Logic | p. 48 |
| Determining Sequence Type: Nucleotide or Protein? | p. 53 |
| Displaying Valid Blast Options | p. 63 |
| Summary | p. 80 |
| Questions and Exercises | p. 81 |
| Additional Resources | p. 81 |
| Selected Reading | p. 81 |
| p. 83 |
| Running Blast using SwingBlast | p. 83 |
| Introduction | p. 83 |
| The NCBI QBlast Package | p. 83 |
| Strategy for Creating a QBlast Based System | p. 84 |
| Designing the Blast API | p. 86 |
| Description of Blast Classes | p. 88 |
| Implementing JQBlast | p. 92 |
| Enhancing the SwingBlast Application | p. 103 |
| Retrieving Sequences From GenBank Using BioJava | p. 124 |
| Retrieving GenBank Without BioJava | p. 129 |
| Input Validation | p. 132 |
| Controlling Program Events and Responses | p. 137 |
| Reporting Blast Status | p. 139 |
| Displaying Blast Results Interactively | p. 143 |
| Summary | p. 151 |
| Questions and Exercises | p. 152 |
| Additional Resources | p. 152 |
| Selected Reading | p. 153 |
| p. 155 |
| Facilitating PubMed Searches: JavaServer Pages and Java Servlets | p. 155 |
| Introduction | p. 155 |
| HTTP and CGI | p. 155 |
| HTTP Protocol | p. 156 |
| Get and Post Methods | p. 157 |
| CGI For Generating Dynamic Content | p. 157 |
| Servlets and JavaServer Pages Technologies | p. 158 |
| Java API for Servlets and JSPs | p. 159 |
| JavaServer Pages Standard Tag Library (JSTL) | p. 160 |
| Apache Tomcat Server | p. 160 |
| The NCBI PubMed Literature Search and Retrieval Service | p. 161 |
| Accessing Biomedical Literature Through Entrez | p. 161 |
| Create Web Application With Servlets and JSPs | p. 165 |
| Web Application Structure | p. 167 |
| Creating a Servlet to Access Biomedical Literature | p. 169 |
| Displaying PubMed Abstracts | p. 178 |
| Highlighting Search Terms in Retrieved Abstracts | p. 193 |
| Summary | p. 204 |
| Questions and Exercises | p. 205 |
| Additional Resources | p. 206 |
| Selected Reading | p. 206 |
| p. 209 |
| Creating a Gene Prediction and BLAST Analysis Pipeline | p. 209 |
| Introduction | p. 209 |
| Gene Prediction Programs | p. 209 |
| DNA Transcription and Translation | p. 210 |
| Gene Prediction with Genscan | p. 212 |
| Running Genscan Analyses | p. 213 |
| Analyzing GenScan Output | p. 215 |
| Creating SwingGenscan | p. 221 |
| Writing the Code for SwingGenScan | p. 222 |
| The SwingGenScan User Interface | p. 235 |
| Running SwingGenScan | p. 243 |
| Summary | p. 246 |
| Questions and Exercises | p. 247 |
| Additional Resources | p. 247 |
| Selected Reading | p. 247 |
| p. 249 |
| Cancer Biomedical Informatics Grid (caBIG) | p. 249 |
| Cancer Biomedical Informatics Grid | p. 249 |
| Structure and Organization of caBIG | p. 250 |
| Data Integration and ETL | p. 253 |
| Cancer Common Ontologic Representation Environment (caCORE) | p. 255 |
| Cancer Bioinformatics Infrastructure Objects (caBIO) | p. 257 |
| Downloading and Configuring caBIO | p. 259 |
| Creating the JcaBIO Application | p. 260 |
| JcaBIO Classes and Application Structure | p. 261 |
| Coding the SwingCaBIO Application | p. 263 |
| Coding JcaBIO: The CaBIOReportEngine Class | p. 275 |
| Coding JcaBIO: The CaBIOSearchEngine Class | p. 282 |
| Running the JcaBIO Application | p. 286 |
| Summary | p. 289 |
| Questions and Exercises | p. 290 |
| Additional Resources | p. 291 |
| Selected Reading | p. 292 |
| Appendix | p. 295 |
| Apache Ant and Tomcat | p. 295 |
| Downloading the Apache Tomcat server | p. 295 |
| Managing the Apache Tomcat Server | p. 302 |
| Installing and Configuring the Apache Ant Build Tool | p. 306 |
| Configuring environmental variables for Ant | p. 309 |
| Building and Deploying The Web Application | p. 310 |
| Building the WAR file | p. 310 |
| Deploying the application on Tomcat using Ant | p. 312 |
| Version Control Systems | p. 314 |
| Additional Resources | p. 315 |
| Table of Contents provided by Ingram. All Rights Reserved. |