Code Monkey home page Code Monkey logo

bio_team's Introduction

bio_team

The aim of this Java project is to provide the opportunity for the bioinformatics team to work together on a nucleotide multiple sequence alignment.

  1. The project structure is as follows:

• BioTeam Package: A core package containing the Main class as well as the three following subpackages.

• Alignment Package: Consists of the Alignment abstract superclass (with two subclasses StandardAlignment and SNPAlignment), related interfaces (Editable, Set, and IO), and a Genome subpackage. The latter includes the Genome class and Editable and Sequence interfaces.

• Repository Package: Houses Repository class for data management and the UserNotFound custom exception class for handling invalid users.

• Users Package: Manages users’ interactions through the User abstract superclass and its subclasses (Bioinformatician, TeamLead, and TechnicalSupport) as well as RepoAccessible and UserInfo interfaces.

  1. Interfaces:

• Genome Package: Sequence and Editable interfaces standardize genomic data handling.

• Alignment Package: Set, Editable, and IO interfaces enhance alignment management and file operations.

• Users Package: UserInfo and RepoAccessible interfaces ensure consistent user data handling and controlled repository access.

The implementation of interfaces significantly improves communication and interaction among various components of the framework. It eliminates code duplication and ensures a consistent set of methods for each interface. This consistency simplifies development and maintenance, making it easier to implement changes and enhancements across the project. Moreover, interfaces enhance the overall extensibility of the structure, allowing for the smooth integration of new features in the future.

  1. Inheritance:

• Alignment Hierarchy: Alignment abstract superclass with StandardAlignment and SNPAlignment subclasses to represent different types of alignment.

• Users Hierarchy: User abstract superclass with Bioinformatician, TeamLead and TechnicalSupport subclasses.

In the above cases, using inheritance improves the modularity, reusability, and organization of the code. It allows for a methodical approach to alignment and user task administration and offers an established structure of responsibilities and access levels. This approach efficiently simulates the complex interactions and roles within the bioinformatics team as well as the many alignment types by utilizing inheritance.

The main method is organized in a way that focuses on demonstrating the functionality specific to each user. Try-catch blocks are added when handling input. This improves code robustness by protecting against unexpected errors and ensuring graceful error handling. It is also useful to provide user-friendly error messages as it helps to achieve a better user experience and assists in debugging.

Note: When running the main method, the working directory should be the ‘data’ folder containing the config file.

bio_team's People

Contributors

reginaib 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.