Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit



CS 101 Project Milestone #3 (Final)

Introduction

You have created a fair amount of tooling and are prepared for your final twofold challenge.

 

1.  First, you must solve the mammoth genome! We have a collection of DNA samples which need to be assembled into one superstring containing all of the fragments.

 

2.  Finally, you must produce a short individual report on your project, discussing the functions and detailing another possible direction the project could take.

 

In the first milestone, you built a number of functions which enable deeper analysis to take place. In this arc of the project, you will combine those tools and build the basis of deeper analysis.

 

As before, we are completing problems from the Rosalind bioinformatics project (http://rosalind.info/problems/tree-view/). Each of the functions is defined below—it is up to you and your team to divide up the work and combine your code into one file.

 

The total contribution of Milestone #3 ( ms3 ) to the project grade is 39/100 points.

 

Team Check-In & Progress Report (9 points)

All teammates will check in together with the TA once a week to present your progress report and updated task list. Delivery method will  be up to your section TA. Check Gradescope for the due dates and times. The submission box will be opened each Wednesday at midnight.

 

Final Peer Evaluation (10 points)

Your TA will release a peer evaluation survey after the deadline. This survey will be completely anonymous and privy only to yourself and the TA. This will be released on December 8 at 10 p.m. (the submission deadline for the rest of the project) and due on December 10 at    10 p.m.

 

 Submit a peer evaluation on time (5 points)

 

 Fair contribution to the Milestone as indicated by your peers (2 points)

 

Note that you will not receive any points for the peer evaluation on your individual milestone score if you do not submit a peer evaluation on time.

 

Final Program (10 points)

We will provide you a file containing the text of many DNA samples, one each per line. You need to take this file and produce the shortest unique string containing all DNA fragments within it.

 

(Note: We oversimplified this problem a bit and didn't track  STOP  codons. Don't worry about those now. Maybe it will become part of the next iteration of this project.)

 

This is in general a hard problem. Your  assemble_genome  from before may not be quite adequate to solve it yet. We have additionally  defined the overlap between adjacent strings as being 8 characters long so that you don't have to worry about truly random overlap segments.

 

As a test for your methodology, we also provide smaller test files which have answers of the specified length (50, 100, etc.). Your program should work on all of these, but you can start small to make sure that your results make sense.

 

  ms3-dna-50.txt  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/ms3-dna-50.txt)

 

  ms3-dna-100.txt  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/ms3-dna-

100.txt)

 

  ms3-dna-500.txt  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/ms3-dna-

500.txt)

 

  ms3-dna-1000.txt  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/ms3-dna-

1000.txt)


  ms3-dna-5000.txt  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/ms3-dna-

5000.txt)

 

  ms3-dna-mammuthus.txt  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/ms3-dna-

mammuthus.txt)

 

Ultimately, your code will be graded on whether or not it can load the  ms3-dna-mammuthus.txt  data from the same directory, parse it, and assemble it into a single correct string of length 16,770.

 

Your submission should include the following functions in one file:

 

  load_file  which accepts a file name (such as  ms3-dna-100.txt ) and returns a list of strings containing DNA fragments.

  assemble_genome2  (to differentiate from your original) which accepts a list of strings containing DNA fragments and returns the shortest

superstring. You may assume an eight-character overlap between strings; e.g.  ACGTAGTCACCC  and  AGTCACCCTGAG  have eight characters of overlap.

One way to run your entire program, therefore, would be simply one line of code:

 

 

assemble_genome2(load_file('ms3-dna-mammuthus.txt'))

or to really integrate what you saw of modules:

 

 

if __name__ ==  '__main__':

assemble_genome2(load_file('ms3-dna-mammuthus.txt'))

As before, you will be assessed on code quality and style. You will be assessed two points for using good naming conventions for functions and variables (beyond the mandated names given below for your submission). You will be assessed another two points based on your          adherence to good Python style, as outlined in the Project Rubric. Additionally, you should avoid writing redundant code that improperly    repeats or reuses code from a different function.

 

Using Code

If you have satisfactorily running code from your previous work, feel free to use it in completing the project. However,     you may not have achieved working code from your previous steps. Despair not! We provide for you some compiled Python filesor  pyc s, which may be placed in the same directory as your running code to provide the library functions of the earlier milestones.

 

 

# Manually import  the compiled  Python code.

import marshal

s = open('milestone.pyc',  'rb')

s.seek(16)

code_obj = marshal.load(s)

exec(code_obj)

assert  find_splice('GTA',  'ACGACATCACGTGACG') ==  [2, 6, 8]

(These are missing  assemble_genome  since that's the lion's share of your responsibility in this project stage.)

 

However, you will need to match your running Python version. If you are not sure which version of Python you installed, you can check by  running  from  sys import version  ; version . Take the first two numbers ( 3.x ) as the version. (These files are in the  zip  compressed files.    You'll need to extract the files to your Python working directory, which your regular file system tools should be able to do automatically.)

 

Python 3.7

 

  milestone.pyc  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/python37/milestone.pyc)

  milestone.zip  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/python37/milestone.zip) Python 3.8

  milestone.pyc  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/python38/milestone.pyc)

  milestone.zip  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/python38/milestone.zip) Python 3.9

  milestone.pyc  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/python39/milestone.pyc)

  milestone.zip  (/course/cs101-fa21/file-version/b79d2eb207f57f43a592b8696d1a1b9624cf3347/./resources/python39/milestone.zip) Rubric (for Code)

You will be assessed six points for the functional correctness of your code (i.e. the proportion of test cases it correctly solves). If your code solves the foregoing cases, it should be fine to solve the autograder examples.


You will be assessed two points for using good naming conventions for functions and variables (beyond the mandated names given below for your submission). You will be assessed another two points based on your adherence to good Python style, as outlined in the Project     Rubric. Additionally, you should avoid writing redundant code that improperly repeats or reuses code from a different function.

 

Final Report (10 points)

Your report must be a minimum of six pages in length (not including references, code, or figures), with 12pt font, 1-inch margins, and 1.5 line spacing. You may use Microsoft Word, Google Docs, LaTeX, or another document editor to write your report. Handwritten reports will   not be accepted. Pertinent diagrams/figures should not be hand drawn. Your contents and analyses will be graded using the two rubrics      below. Point rubrics adapted from several various existing report rubrics [1 (https://www.cornellcollege.edu/library/faculty/focusing-on-   assignments/tools-for-assessment/research-paper-rubric.shtml)], [2 (http://web.mit.edu/illari/Public/labguide/rubric.html)], [3

(https://web.archive.org/web/20190909103302/http://sites.fas.harvard.edu:80/~ede104d1/rubrics/Rubric%20for%20the%20Assessment%20of%20the [[4][4]].

 

Your report should contain the following sections:

Introduction

You will introduce the course project and any relevant background information (pretend your readers know absolutely nothing about this project). Include a brief roadmap for the rest of your paper. Write a thesis statement that describes the purpose and contents of your        team’s literature review.

Technical Analysis of Project Functions

Team contribution breakdown:

 

 Create a table that documents the work distribution amongst your team members, including names, netIDs, team roles, and which functions

each member contributed to. Include any other significant contributions. Be sure that the function assignments are accurate.

Technical analysis:

 

 Every team member will write a succinct analysis and reflection on two of the functions they worked on—one from Milestone #1 and one from

Milestone #2. (E.g., in a team of four your team will write about eight functions.) You must include: function purpose, limitations, difficulties, debugging strategies, and application of class material with respect to each individual function.

Literature Review

Each team member must select a piece of credible academic literature to conduct their literature review [5

(https://www.scribbr.com/dissertation/literature-review/)]. The goal of your literature review is to augment, alter, or improve  the course project in a novel way. Your team members’ analyses should be connected in some way — you can compare and contrast different topics or aggregate related topics. Your literature does not have to be limited to the CS field, but your analysis should be            thorough and creative! We suggest using Google Scholar and the UIUC Library proxy search bar to gain access to a variety of scholarly      articles.

 

Conclusion

Wrap up with a summary of the main topics in your lit review, including your insights and main takeaways from your analysis.

 

References

You must cite at least 1 credible source per teammate in your literature review using IEEE citation style [6 (https://ieee-

dataport.org/sites/default/files/analysis/27/IEEE%20Citation%20Guidelines.pdf)].

 

[4]: https://scholar.harvard.edu/adamsowalsky/classes/genetics-ii/materials/research-paper-grading-rubric A. Sowalsky, “Research Paper Grading Rubric.” Harvard University.