Difference between revisions of "CSC334 Lab3"

From dftwiki3
Jump to: navigation, search
(Methodology)
(Methodology)
Line 31: Line 31:
  
 
===Step 2: Display a vertical bar between exactly matching symbols===
 
===Step 2: Display a vertical bar between exactly matching symbols===
 +
 +
The DNAString class can be instructed to display a bar below any of its symbol.  All it needs is the index of the symbol.  For example, if we want a bar under the symbol in position '''3''' of '''dna1''', we would write:
 +
 +
<code><pre>
 +
    dna1.setLeg( 3 );
 +
</pre></code>
 +
 +
Go ahead and put a bar between each matching symbol of dna1 and dna2.  Your sequences should look something like this:
 +
 +
[[Image:]
  
 
===Step 3: Translate DNA Sequence 1 when the user presses the key 1===
 
===Step 3: Translate DNA Sequence 1 when the user presses the key 1===

Revision as of 22:22, 23 July 2008

DNA Sequence Alignment with Processing--A First Approach

DNA Align1.png

In this lab you will use a DNA alignment program written in Processing to explore the concept of aligning DNA sequences.

You may want to install Processing on your machine if it is not installed yet, and run through the very good tutorial listed in the resource section at the end to understand the basics of Processing. In this lab, however, we won't use any sophisticated 2- or 3-D graphics. Just moving text.

Methodology

  • Open the Processing edit window.
  • Copy and paste the following program into the edit window: DNA_Align.pde .
  • Save your program as DNA_Align.pde
  • Run the program.
  • Type + or - to make the sequences move left and right.
  • Notice that the number of exact matches is printed in the Processing console.

Step 1: Display in the Status Box

Instead of displaying the number of exact matches in the console, let's make it appear in the status box.

The status box contains 5 lines. To display the value of an integer variable, say count on the first line of the status box, we simply need to insert the following statement in the right location:

     status.print( 0, "count = " + str( count ) );

0 indicates the first line in the box, and str( count ) transforms the contents of count into a string which is appended to "count = " to create the correct output.

Go ahead and locate the statement that prints the match counter in the console, and replace it by a statement similar to the one above.

Step 2: Display a vertical bar between exactly matching symbols

The DNAString class can be instructed to display a bar below any of its symbol. All it needs is the index of the symbol. For example, if we want a bar under the symbol in position 3 of dna1, we would write:

    dna1.setLeg( 3 );

Go ahead and put a bar between each matching symbol of dna1 and dna2. Your sequences should look something like this:

[[Image:]

Step 3: Translate DNA Sequence 1 when the user presses the key 1

Step 4: Translate DNA Sequence 2 when the user presses the key 2

Step 5: Keep track of longest subsequence of exactly matching symbols

Step 6: Return automatically to best match found

Step 7: Animation: make the program shift both sequences and compute the best exact alignment

Resources and Links

  • A good tutorial on Processing can be found here File:ProcessingTutorial.pdf
  • The main page for syntax help on Processing is processing.org/reference. A quick way to find information on a given topic in Processing, say on rectangles, is to enter something like this in the Google search bar: site:processing.org rectangle.

Solution program