Sequence Alignment - Aligns two strings optimally as to minimize the cost of alignment. This algorithm has applications in aligning DNA, RNA, or protein.

Overview

Sequence_Alignment

Aligns two strings optimally as to minimize the cost of alignment. This algorithm has applications in aligning DNA, RNA, or protein. There are two versions of this algorithm that accomplish the same exact goal. The memory-efficient version runs a little slower than the basic version, but the memory-efficient version uses much less memory than the basic version.

Basic version

The basic version runs in O(m * n) time and uses O(m * n) auxillary space where m is the length of the first string and n is the length of the second string.

Efficient version

The memory-efficient version runs in O(m * n) time (since there is a geometric reduction at each iteration) and only uses O(m) auxillary space where m is the length of the first string and n is the length of the second string.

How to install and prepare

Step 1: Fork the repo and download locally onto your machine.

Step 2: Download a JVM to run Java programs.

Step 3: Compile the java programs (javac *_Alignment.java).

How to run individual test cases and print to output file

Step 1.a: Run the basic algorithm with test case 20 (java Basic_Alignment TestCases/input20.txt) or with test case 1 (java Basic_Alignment TestCases/input1.txt) or any test case inbetween.

Step 1.b: Run the memory-efficient algorithm with test case 20 (java Efficient_Alignment TestCases/input20.txt) or with test case 1 (java Efficient_Alignment TestCases/input1.txt) or any test case inbetween.

Step 2: Check the generated "output.txt" file for the program's output. The output file will be over-written each time the program is run.

How to run all of the test cases and print to one giant output file

Step 1: Make the two provided scripts executable (chmod +x *Tests.sh).

Step 2: Uncomment the print lines in Basic_Alignment.java and Efficient_Alignment.java that are located below the following lines "// Test Printing".

Step 3: Compile the java programs again (javac *_Alignment.java).

Step 4: Run the scripts (./BasicTests.sh and ./EfficientTests.sh).

Step 5: Check the generated "BasicTestOutput.txt" and "EfficientTestOutput.txt" for a giant output file containing each of the test case's output.

You might also like...

Event promoted by DevSuperior to improve the best practices of Spring with Java and has React JS as an additional.

Event promoted by DevSuperior to improve the best practices of Spring with Java and has React JS as an additional.

Semana-Spring-React (sds3.0) Introduction SDS3 is an event promoted by DevSuperior which aims to help students and programming professionals to enter

Oct 25, 2021

An open source Minecraft plugin that allows operators to control who has access to the nether.

Nether Access Controller Description Nether Access Controller is a Minecraft plugin that allows operators to control access to the nether. It is essen

Feb 12, 2022

Docker-compose-integration-tstst - An exploration of how to run integration tests against an application that has inconvenient external dependencies (e.g. a SQL database).

Tstst? it was supposed to be docker-compose-integration-tests but i was too lazy to fix it at the outset, and now im trying to convince myself its fun

Jan 4, 2022

A cross-platform Mod for the popular Minecraft project, where the border always has a radius equal to the player's current experience level.

A cross-platform Mod for the popular Minecraft project, where the border always has a radius equal to the player's current experience level.

Level = Border A cross-platform Mod for the popular Minecraft project, where the border always has a radius equal to the player's current experience l

Nov 22, 2022

The Spring Boot Sample App on K8S has been implemented using GKE K8S Cluster, Spring Boot, Maven, and Docker.

gke-springboot-sampleapp 👋 The Spring Boot Sample App on K8S has been implemented using GKE K8S Cluster, Spring Boot, Maven, and Docker. Usage To be

Feb 1, 2022

LaetLang is an interpreted C style language. It has file reading/writting, TCP network calls and awaitable promises.

LaetLang 💻 LaetLang is an interpreted C style language built by following along Robert Nystrom's book Crafting Interpreters. This is a toy language t

Mar 14, 2022

🖥 CRUD Angular + Spring demonstrating Has-Many relationship, including tests for the back-end and front-end

REST API with Spring Boot and Angular CRUD Angular + Spring demonstrating Has-Many relationship, with tests. 💻 Tecnologies Java 17 Spring Boot 3 JPA

Dec 28, 2022

Drifty is an open-source interactive File Downloader system built with java. It is currently available in CLI mode and has the GUI version under active development.

Drifty is an open-source interactive File Downloader system built with java. It is currently available in CLI mode and has the GUI version under active development.

Drifty Drifty is an open-source interactive File Downloader system built using Java. It takes the link to the file, the directory where it needs to be

Dec 24, 2022
Owner
Suki
Software Engineer who enjoys outdoor activities and C++ programming.
Suki
This sample shows how to implement two-way text chat over Bluetooth between two Android devices, using all the fundamental Bluetooth API capabilities.

Zenitsu-Bluetooth Chat Application This sample shows how to implement two-way text chat over Bluetooth between two Android devices, using all the fund

Gururaj Koni 1 Jan 16, 2022
Observing a sequence of objects that can be numerically ranked best and worst.

Optimal-Stopping The Secretary Problem from Optimal Stopping. https://en.wikipedia.org/wiki/Optimal_stopping Observing a sequence of objects that can

null 1 Feb 3, 2022
A Zombie invasion has occurred at the Code Academy Campus and now Alcatrinha has to fight the zombies to death! (2D TopView Shooter)

Hello everyone, welcome to Zombie ACADalypse!! A Zombie invasion has occurred at the Code Academy Campus and now Alcatrinha has to fight the zombies t

Mario Vieria 1 Dec 17, 2021
Two Spring-boot applications registering themselves to an spring-boot-admin-server application as separate clients for the purpose of monitoring and managing the clients

Spring-boot-admin implementation with 1 Server and 2 clients Creating a Server application to monitor and manage Spring boot applications (clients) un

null 6 Dec 6, 2022
Tencent Kona JDK17 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) with quarterly updates.

Tencent Kona JDK17 Tencent Kona JDK17 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) w

Tencent 59 Nov 30, 2022
This Web Application Allows A user to upload a two minutes Video. It uses Server Side Capabilities of Nodejs and Spring Boot .

VideoStreamingApplication Purpose Of This Application These days trend of short videos are on rise youtube recently realsed "Shorts" . So , taking ins

Prateek Kumar 57 Nov 13, 2022
winner of the "world's saddest meteor skid" award for two years running

TideHack+ "Leaked" winner of the "world's saddest meteor skid" award for two years running. does this even count as a leak? it's literally just a mete

g1ga mcskidsalot 5 Jan 29, 2022
There are two challenges one is to create a backend api the other is to create a frontend application to consume the public data api devall.

Sobre | Desafio | Resolução | Tecnologias | Execução | Itexto desafio tecnico Sobre os Desafios existem dois desafios um é criar uma api backend o out

fabricio S Miranda 1 Oct 18, 2021
In this project, we will implement two Spring Boot Java Web application called, streamer-data-jpa and streamer-data-r2dbc.

In this project, we will implement two Spring Boot Java Web application called, streamer-data-jpa and streamer-data-r2dbc. They both will fetch 1 million of customer's data from MySQL and stream them to Kafka. The main goal is to compare the application's performance and resource utilization.

Ivan Franchin 6 Nov 2, 2022
Customize your device even more by having two separate sets of wallpapers for light and dark mode.

DualWallpaper You can help me out with translations here. Customize your device even more by having two separate sets of wallpapers for light and dark

Yann 18 Dec 25, 2022