Coder Social home page Coder Social logo

dnatree's Introduction

DNATree

This is a 5-way branching tree structure utilizing flyweights, used to store and query DNA sequences (some combination of the letters: 'A' 'C' 'G' 'T'). All sequences are stored in the leaves and the tree holds no duplicates. Internal nodes contain only references to their 5 children: A, C, G, T, and D, The empty leaves all point to a single flyweight, that holds no data, and most tree function is handled recursively. Input is a text file with a single command per line, formatted as a command followed by one sequence, if neccessary (ex. "insert ATCG"), and output is to the console.

The commands for insert and remove are: "insert [seq]" and "remove [seq]". The tree has various search and print functions.
Searches:

exact match search - command "search [seq]$" (the $ is to indicate exact instead of region) - output is the number of nodes visited in the search followed by the found sequence "# of nodes visited x \n sequence: [seq]"

region search - command "search [seq]" - output is formatted the same as exact match, but this search returns all the sequences with the input seq as a prefix, Ex. "search AT" on a tree with AT and ATG in it would print
#of nodes visited x
sequence: AT
sequence: ATG

Print functions:

command "print" - output will be a string representation of the tree with "I" for internal nodes, "E" for empty leaves, and the sequences displayed. Each level of the tree will have its own vertical line.

command "print stats" - output is the same as print but next to each sequence is the percent of each letter right next to it (ex. ACT A:33.33 C:33.33 G:0.00 T:33.33).

command "print lengths" - output is similar to stats but the length of the sequence is shown (ex. ACT 3)

dnatree's People

Contributors

ryanthompson21 avatar

Watchers

 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.