Skip this Video
Download Presentation

Loading in 2 Seconds...

play fullscreen
1 / 1

Introduction - PowerPoint PPT Presentation

  • Uploaded on

APT Solution public class BLASTStageOne { public String stageOne(String query, String[] library, int w) { int topResemblance = 0; String bestResemblance = new String(); for ( int i = 0; i < library. length ; i++) { //explore the entire array int counter = 0;

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Introduction' - gaenor

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
APT Solution

publicclass BLASTStageOne {

public String stageOne(String query, String[] library, int w) {

int topResemblance = 0;

String bestResemblance = new String();

for (int i = 0; i < library.length; i++) { //explore the entire array

int counter = 0;

String current = library[i];

int charCycle = 0;

while(charCycle <= query.length() - w) { //cycles through all characters of your query

char trigger = query.charAt(charCycle);

int stringCycle = 0;

while (stringCycle <= current.length() - w) { //searches for characters that match current character

if(current.charAt(stringCycle) == trigger) {

if(current.substring(stringCycle, stringCycle + w) == (query.substring(charCycle, charCycle + w))) { //compares segments of length W from both points and if there is a resemblance, the resemblance counter increases


stringCycle += w;

} else


} else





if (counter >= bestResemblance.length() && library[i].length() < bestResemblance.length()) { //shorter one wins

topResemblance = counter;






The cartoon above states the early description of DNA and the double helix in 1953. It is most alarming and interesting to see how in 54 years we have come so far as to understand such complex algorithms as BLAST that help us to know much more beyond the basic structure of DNA.

Understanding BLAST today and its implications in the future.

Jeff Shen, Morgan Kearse, Jeff Shi and Yang Ding

Genome Revolution Focus, Duke University, Durham, North Carolina 2007


Problem Statement

You are writing code to find which of several DNA strands in a given DNA library have similarities to a given query strand. This process is analogous to simplified version of the first step of the Basic Local Alignment Search Tool (BLAST) algorithm. In the actual BLAST algorithm, the program searches for exact matches of a small fixed length W between the query and sequences in the library. However, in this simplified version we are searching through the library for matches with the complete query sequence. For each strand in the library we look to see if the library strand contains the query sequence somewhere in it. Return an array of library strands each of which contains the query strand. The order of the strands in the array you return should be the same as the order in which they appear in the array parameter. For example, if your query string is "ATC," and the library has strings ["TAT," "CGATCATC," "ATGATAC", "ATGATCA"] your method should return ["CGATCATC", "ATGATCA"]. Definition

Class: Blast

Method: findAll

Parameters: String query , String[] library

Returns: String[]

Method signature: String[] findAll(String query, String[] library) (be sure your method is public)


public class Blast { public String[] findAll(String query, String[] library){ // fill in code here } } Constraints

strand contains at most 30 characters

Each string in library contains at most 50 characters.

There are at most 50 Strings in library.


query: "ATCG" library = { "ATC", "TATC, "ATCATC", "GATCATC", "ATCGATG", "GATATCG" Returns: {"ATCGATG", "GATATCG"} The other strands in library do not contain "ATCG", only the last two strands of library contain "ATCG".

query: "CAT" library = {"ATATCAT", "TACTA", "CATCAT", "TTATC", "CAT"} Returns: {"ATATCAT", "CATCAT", "CAT"}

query: "ATG" library: {"ATATAGT", "TAGTAG", "AAGGTT", "AATTGG"} Returns: {} It's possible that no strands in the library contain the query strand.


BLAST (Basic Local Alignment Search Tool) is a widely used bioinformatics search tool used to compare different DNA samples for their similarities. Researchers can use this search tool to compare their own DNA samples to all the DNA and protein sequences in various genebanks and libraries.BLAST takes a heuristic approach to compare the different sequences, which dramatically increases the speed of searches. The program scans at approximately 2 x 10^6 bases/s. The increase in speed has made a lasting impact in the fields of bioinformatics and computer science. In the past, searches that would have taken days to finish now can be done in mereseconds.

Figure 4. The table below shows an example of a scoring table/matrix that the BLAST algorithm might use to store the comparisons between certain segments.

Figure 1.

This image shows how target sequences are matched up during the BLAST process for comparison. The lines between the sequences represent matches in those segments.


User inputs a target query sequence (a so-called w-mer of length w) into BLAST that is to be compared

User also can specify a value W for which matches under W will be ignored, based on the user’s preference for accuracy and speed

3 Phases of BLAST search

1st Phase: The w-mer is then searched against a sequence database of billions of base pairs (length W or higher) that have been previously organized and find exact matches.

2nd Phase: These matching sequences are then extended from both sides and any further matches with the target sequence are tallied up – in this phase, insertions/deletions are ignored in terms of score.

3rd Phase: High-scoring alignments from these processes are compared and an optimized measurement of similarity and other statistics are returned to the user in this final algorithmic phase. In this process segments of all possible lengths are compared.


Because of its speed, BLAST has become a very popular bioinformatics search tool. BLAST has been cited by over twenty thousand scientific journals whoseauthors have used BLAST to compare different DNA sequences or whole genomesfor similarities.For example, researchers in the Cold Spring Harbor Lab used an enhanced version of BLAST, BLATZ, to find the similarity between the human genome andthe mouse genome.Using BLATZ, they concluded that 39.154% of the human sequence aligned to mouse sequence. Also, other organisms such as drosphilia (fruit fly) havebeen compared with the human genome with BLAST.Another area that BLAST is prevalent is in the field of protein studies. Not only can researchers use BLAST for comparing DNA sequences, but they canalso use the program to find similarities between protein sequences.BLAST has become an indispensable bioinformatics tool in the field of biology, engineering, and biochemistry.

Figure 4.


Figure 2. In this image we are given an example of what an individual search might look like using BLAST. The target sequence above is PQG (w, length=3 letters) and a threshold is set at 13 (the W mentioned in the method). The neighborhoods words stands for the words in the database that the query word or target is compared too. To the right of the neighborhood word is a score that represents the match equivalence. This model stops taking score after 13 to optimize the match. The segment that is thought to be the best match is returned along with the source/subject of where it came from.


BLAST (Basic local alignment search tool) is a bioinformatics tool that became a marginal aid to many researchers to help in quickly comparing their own DNA samples. It is popular because of its speed even though it does allow certain errors. It allows navigation by letting the user determine the number/length of sequence to compare. After this they can also set the threshold to decrease the number of matches. From the use of this search tool it is important to see what could arise from this tool. Already there are other search tools such as BEAUTY. BEAUTY database search tool is very similar to BLAST but more advanced. This is due to the fact that BEAUTY which stands for BLAST enhancement alignment utility. The Beauty tool works by incorporating conserved regions and functional domains proteins sequences into the BLAST program to make it more specific. So as time goes on we will most likely see an increase in programs such as BEAUTY.

BLAST in the future…

As an example, there are companies such as Korilog that have made software (KoriBLAST) that use the BLAST system along with other programs to create software solutions to make it easier for labs and researchers in areas of data integration, visualization and management. Their goal is to provide the means for state-of-the-art graphical environments for quick and easy research. The software program is dedicated to making the BLAST program very useful by doing sequence data mining.

Literature cited URL Visit our webpage at

Figure 3. In the imageabove we are shown how the score is created. It is the sum of all the matches and mismatched amino acids minus the sum of the number of gaps. It also shows as previously stated that the score returned is the max/optimized score.