Code Monkey home page Code Monkey logo

hw5-nw's Introduction

Project 5

Needleman Wunsch Algorithm

Assignment Overview

The purpose of this assigment is to have you implement the Needleman-Wunsch global pairwise sequence alignment algorithm (dynamic programming). See this video for a walk through of the algorithm implementation

Assignment Tasks

Coding Assessment

Note: All modules you need have already been imported.

  • Complete the NeedlemanWunsch.align method found in the align/align.py
    • Finish the method for filling in the alignment and gap matrices for Needleman-Wunsch.
  • Complete the NeedlemanWunsch._backtrace method found in align/align.py
    • Use the heuristic you have chosen to implement in the the NeedlemanWunsch.align method to implement the backtracing procedure.
  • Complete the main function in main.py to
    1. align all provided species BRD2 sequences to the human BRD2 sequence and print the species in order of most similar to least similar with respect to human BRD2.
    2. print the alignment scores corresponding to each species alignment to the human BRD2 sequence.

Software Development Assessment

Unit Tests

  • Complete the test_nw_alignment function in test/test_align.py to test for proper matrix filling in your NeedlemanWunsch.align method.
  • Complete the test_nw_backtrace function in test/test_align.py to test for proper backtracing in your NeedlemanWunsch._backtrace method.

Note: To check that you have correclty implemented your algorithm the following information is provided

  • test_seq3.fa and test_seq4.fa should have an alignment score of 17 and an alignment of:

    MAVHQLIRRP

    M---QLIRHP

  • Ensure that it runs pytest

Pip Installable

  • make .toml file with flit and ensure that your package can be installed with pip

Getting Started

To get started you will need to fork this repository onto your own Github account. Work on the codebase from your own repo and commit changes.

The following packages will be needed:

  • numpy
  • pytest

Completing the assignment

Make sure to push all your code to Github, ensure that your unit tests are correct, and submit a link to your Github through the Google classroom assignment.

Grading

Code (6 points)

  • Pairwise global alignment works properly (6)
    • Correct implementation of Needleman-Wunsch algorithm (4)
    • Produces correct order of species in main.py (1)
    • Produces correct NW alignment scores in main.py (1)

Unit tests (3 points)

  • test_nw_alignment function properly checks that matrices are filled in correctly for alignment of test_seq1.fa and test_seq2.fa (1)
  • test_nw_backtrace function properly checks that backtrace works correctly (1)
  • Ensure functionality with pytest (1)

Style (1 points)

  • Readable code with clear comments and method descriptions (1)

Extra credit (0.5)

  • Github actions/workflow (0.5)

hw5-nw's People

Contributors

pgrosjean avatar cjku97 avatar k-chrispens avatar hchen725 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.