Giter Site home page Giter Site logo

andres6936 / n9-dnachains-java Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 706 KB

The application to be built allows the manipulation and visualization of DNA chains. Initial chains must be loaded from text files, the chains built modifying the initial chains could be saved in text files using the same format.

Java 100.00%
dna dna-sequences chains java

n9-dnachains-java's Introduction

Application Description

The application to be built allows the manipulation and visualization of DNA chains.

Initial chains must be loaded from text files, the chains built modifying the initial chains could be saved in text files using the same format.

The operations that could be done over the chains are:

* Load a chain
* Save a chain
* Delete a chain
* Add to a chain the nitrogenous bases from another
* Correct a mutation from a chain
* Find the longest common fragment between two chains
* Delete a fragment from a chain

Graphic User Interface

GUI

Main Window

DNA chains are very long sequences of simpler elements called nitrogenous bases. In this context, there are 4 types of nitrogenous bases: Adenine (A), Thymine (T), Guanine (G) and Cytosine (C). Different sections from a chain determine different characteristics from an individual: The expression of that characteristic depends exclusively from the types of nitrogenous bases inside the chain.

In the life beings, DNA chains are not a single string but two of them linked in a double helix, united by nitrogenous bases. The formation of this helix is ruled in a specific way: Adenine can only match with Thymine and Cytosine can only match with Guanine. Given a DNA chain, if this chain can be bent by its center and form the right matches, in this context, it will be a coherent chain .

In this application, the concepts Nitrogenous Bases and DNA Chains have to be modeled. It will also have to work with several DNA chains.

The files in which the chain information will be saved have two lines. In the first one there is the description of the chain, in the second one there is the nitrogenous bases sequence, expressed in the four correspondent letters (A, T, G and C).

Analysis

The nitrogenous bases are the simplest element in the system. In this context the only relevant information about them will be their type (A, T, G or C).

Chains to be handled will be only a string and will be made of nitrogenous bases. In those chains the order is important and they will be a lineal structure. This means that there has to be two ends and it has to be possible go from one end to the other.

Finally, it is necessary to handle sets of chains. This responsibilities of handling will be owned by a DNA Processor.

Design

Next, the solution design based on singly-linked and doubly-linked lists.

Solution Structure

Elements detected in the analysis, will have a representation on a three classes model: DNAProcessor, Chain and NitrogenousBase.

NitrogenousBase class only model the type of a nitrogenous base.

Chain class represents a list of nitrogenous bases. For efficiency reasons, they will be ordered on a doubly-linked list with a head and a tail.

DNAProcessor class will handle a set of Chains, ordered according to their length, in a singly-linked list with just a head.

Description

n9-dnachains-java's People

Contributors

andres6936 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.