Microsoft Biology Foundation Workshop 2011, Cartagena

Microsoft Biology Foundation

Microsoft hosted a two-day workshop on the Microsoft Biology Foundation (MBF), an open-source Microsoft .NET library and application programming interface for bioinformatics research. The MBF workshop was co-located with the Microsoft Research Latin American Faculty Summit and took place on May 16 and 17, 2011, in Cartagena, Colombia. It included a quick introduction to Microsoft Visual Studio 2010, the Microsoft .NET Framework, C#, and the MBF object model. Attendees participated in hands-on labs and wrote a sample application that employs the file parsers, algorithms, and web connectors in MBF. 

Workshop Program

The program covered the modules that are listed on the Microsoft Biology Foundation Training site and summarized below. The sessions combined lectures and hands-on labs; therefore, to get the most benefit from the workshop, we recommended that participants bring a laptop with Microsoft Visual Studio 2010 installed. (Students and educators can install Visual Studio 2010 for free from Microsoft Dreamspark. Alternatively, anyone can install Microsoft Visual C# 2010 Express for free.) Breakfast and lunch were provided.

Day One 


Module 1 Lecture


Module 1 Lab




Module 2 (part 1)




Module 2 (part 2)


Module 2 Lab



16:00–17:30  Module 3 Lecture 









Day Two 


Review and Q&A


Module 3 Lab




Module 4 Lecture


Module 4 Lab




Module 5 Lecture




Module 5 Lab









Module 1: Introduction to Visual Studio 2010 and C#

This is a comprehensive introduction to the Microsoft Visual Studio programming environment and Microsoft .NET. Learn how to create a project, what is .NET, how to get started with C#, and runtime debugging. The hands-on lab helps you get experience building applications in Visual Studio 2010. It walks you through the steps required to create a console application, interfaces and types that implement those interfaces in C#, a library to hold common (shared) code, and a simple Windows Presentation Foundation (WPF) application by using the shared library.

Module 2: Introduction to the Microsoft Biology Foundation

This module provides an overview of the Microsoft Biology Foundation (MBF), its scenarios, architecture, and a starter project. It also provides an introduction to the source code and unit tests required for contributing back to the open-source project. The hands-on lab helps you get experience working with sequences, parsers, formatters, and the transcription algorithm that is supplied in MBF. It walks you through the steps required to build a simple Windows Forms application that can load a set of sequences from a file, transcribe them, and then write those sequences to the same or a different file.

Module 3: Working with Sequences

This module examines the Sequence data type in MBF. Learn how to load sequences into memory and save them, the different sequence types available, how to use sequence metadata, and how data virtualization support enables support for large data sets. The hands-on lab familiarizes you with managing sequences and sequence items by using MBF interfaces, properties, and methods to create a WPF application to visualize the data.

Module 4: Parsers and Formatters

This module explores MBF’s built-in sequence parsers, formatters, alphabets, and encoders. It also introduces the method of expanding MBF with custom alphabets, parsers, and formatters. The hands-on lab walks you through the steps that are required to build a simple custom parser and formatter for a fabricated biology data format, and then plug it into MBF and the sequence viewer/editor that were created in Module 3.

Module 5: Algorithms

This module examines the algorithms defined in MBF for sequence alignment, multi-sequence alignment, sequence fragment assembly, transcription, translation, and pattern matching against sequences, and explains how to create custom algorithms. The hands-on lab walks you through the steps required to build an application to run algorithms against sequences loaded with MBF and perform sequence alignment, assembly, and transformations.