Computation for DNA Fragment Assembly

Overview & Concepts

This activity introduces students to the computation involved in reassembling sequenced DNA to reconstruct the original gene. The activity enhances a reading and activity from Professor Ann Condon of the University of British Columbia that discusses the genetics and programming concepts. This extends those activitities by including some actual Python programming exercises and examples.

Grade Level: 

Concepts Covered: 

Genes and the genetic code, sequencing the genome, fragment assembly, Python programming concepts using strings and itertools

Prior Knowledge Required: 

Genes and the genetic code, sequencing the genome, fragment assembly, Python programming concepts using strings and itertools

Activity Notes

Days to Teach: 

1-2 Days

Materials: 

  • Python programming environment
  • Test files
  • Internet access for readings

Teaching Tips / Activity Overview: 

  1. If students are need a review of the basic structure of DNA, have them read section 6.1 of “Digital DNA” article as homework, discuss exercises 6.1.1 and 6.1.2 in class.
  2. Read: section 6.2.1 and 6.2.2 of Professor Condon’s “Digital DNA” article http://www.cs.ubc.ca/~condon/cpsc101/notes/digital-dna.pdf.  Professor Condon’s slides are available at http://www.cs.ubc.ca/~condon/cpsc101/lectures/lec29.pdf and http://www.cs.ubc.ca/~condon/cpsc101/lectures/lec30.pdf
  3. Have students do exercises 6.2.1 and 6.2.2 from reading.
  4. At this point they have sufficient background to attempt to write a brute-force program to recombine fragments and find the shortest solution. This is a challenging but not impossible problem for high school students.  A discussion guideline for working it out in class is attached, along with a scaffold for discussion, and a complete version.
  5. Once the program is written, it can be tested with the accompanying  data files.  Make sure that students note how the time to run the program grows as n!, where n is the number of segments to be combined.  Discuss why this is the case, and extrapolate to how long the program would take to find the shortest solution for reassembling 20 segments, or 100 segments.

Assessment: 

Class exercises from reading, programming assignment

Extensions: 

Resources: 

Acknowledgements: 

This lesson and teacher notes make extensive use of material created by Ann Condon, Professor of Computer Science at the University of British Columbia.

Academic Standards
Categories & Tags

wholesale jordans shoes

wholesale nike shoes