Skip to content
This repository has been archived by the owner on Jan 24, 2021. It is now read-only.

Latest commit

 

History

History
100 lines (69 loc) · 3.89 KB

README.md

File metadata and controls

100 lines (69 loc) · 3.89 KB

Build Status

Remys Lab

Remys Lab is an application that provides multiple algorithms, takes a specific set of parameters and visualizes all possible paths leading to the best alignment-score.

Available algorithms
  • Smith-Waterman
  • Needleman-Wunsch Distance
  • Needleman-Wunsch Similarity

DNA alignment visualization

Visualization of algorithms for nucleotide alignment.

The DNA is the fundamental building block of a living cell and is made up of a nucleotide chain.

There are four kinds of nucleotide, each differentiated from each other by its Nucleobase guanine, adenine, cytosine and thymine.

In bioinformatics, a sequence alignment is a way of arranging the sequences of DNA, RNA, or protein to identify regions of similarity that may be a consequence of functional, structural, or evolutionary relationships between the sequences. Aligned sequences of nucleotide or amino acid residues are typically represented as rows within a matrix. Gaps are inserted between the residues so that identical or similar characters are aligned in successive columns. Sequence alignments are also used for non-biological sequences, such as calculating the distance cost between strings in a natural language or in financial data.

Needleman-Wunsch

Saul B. Needleman and Christian D. Wunsch introduced 1970 an approach to compute the optimal global alignment of two sequences for comparing two nucleotide or amino acid sequences.

Smith Waterman

The Smith–Waterman algorithm performs local sequence alignment; that is, for determining similar regions between two strings of nucleic acid sequences or protein sequences. Instead of looking at the entire sequence, the Smith–Waterman algorithm compares segments of all possible lengths and optimizes the similarity measure.

Usage of the algorithms

Needleman-Wunsch similarity

import NeedlemanWunschSimilarity from "./src/algorithms/NeedlemanWunschSimilarity";
import SimpleTextProducer from "./src/text/SimpleTextProducer";

const similarity  = new NeedlemanWunschSimilarity("ATCCTC", "AACG", 1, -1, -2);
const similarityTextProducer = new SimpleTextProducer(similarity);
const similarityTexts = similarityTextProducer.produceText();
console.log(similarityTexts);

Needleman-Wunsch distance

import NeedlemanWunschDistance from "./src/algorithms/NeedlemanWunschDistance";
import SimpleTextProducer from "./src/text/SimpleTextProducer";

const distance  = new NeedlemanWunschDistance("ATCCTC", "AACG", 1, -1, -2);
const distanceTextProducer = new SimpleTextProducer(distance);
const distanceTexts = distanceTextProducer.produceText();
console.log(distanceTexts);

Smith-Waterman

import SmithWaterman from "./src/algorithms/SmithWaterman";
import SimpleTextProducer from "./src/text/SimpleTextProducer";


const smithWaterman = new SmithWaterman("ATCGAAT", "AACGTA",1, -1, -2);
const smithWatermanTextProducer = new SimpleTextProducer(smithWaterman);
const smithWatermanTexts = smithWatermanTextProducer.produceText();
console.log(smithWatermanTexts);

Remy? Origin of the name

One of my favourite movies is Ratatouille. A newer Disney movie based on a tiny, passionate rat that wants to be a cook. This rat gave me hope, that everything is possible and that I will become a developer if I work hard enough and believe in myself.

Anyone can code!

alt app

References