;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; CSU211 Lab 6 - Trees with application in Pathology ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Author: Prof. Kathi Fisler, WPI ;; Edited: Matthias Felleisen ;; SOURCE ;; "Untangling the Roots of Cancer" by W. Wayt Gibbs. ;; Published in _Scientific American_, July 2003. #| Lab Motivation and Goals: This lab is designed to help you practice - programming with trees - using the random function - representing biological data as a progamming construct - using programs to simulate cancer experiments Background Information: Although cancer is one of the leading causes of death in the United States, research on the subject still has a long way to go before any cures might be discovered. Little is known about the causes of cancer, but there are several widely accepted theories. Previously, scientists believed that after an initial mutation into a malignant form, cancer cells essentially create clones of themselves within the tumors as they multiply. However, recent research has shown that this may not be the case. In fact, several studies have revealed that cancer cells within a tumor are very diverse, with many different mutations occuring simultaneously. In this lab, you will use Scheme programs to simulate and investigate mutations within malignant cancer tumors. You will need to consider the following six traits that distinguish cancer cells from normal cells: - Growth without "Go" signals (G) Normals cells wait for an external message before dividing, but cancer cells often create their own messages, causing them to multiply without external control. - Growth despite "Stop" commands (S) Under normal conditions, if one group of cells becomes too big, its neighbors send messages to stop the division of that group. Cancer cells have the ability to ignore these. - Evasion of built-in autodestruct mechanisms (A) In healthy cells, genetic damage can activate a self-destruct mechanism which destroys possibly dangerous cells. Without outside intervention, cancer cells can bypass these mechanisms and continue dividing. - Ability to construct blood vessels (B) Since tumors need oxygen and nutrients to survive, some cancer cells have the ability to stimulate construction of blood vessels through the growing mass. - Effective immortality (I) Normal cells can only divide approximately 70 times before dying, but since cancer cells need to divide much more than this to form a tumor, they work around systems that control reproductive limits. - Power to invade other tissues and spread to other organs (O) Cancer cells have the unique ability to move from one area of the body to another and continue multiplying, which is often life-threatening. Just like normal cells, each cancerous cell divides into two new cells. In order to keep track of mutations that occur as cancerous cells divide it is helpful to think of tumors as their history, a tree, with the original cell at the root. This way, it is possible to see how the cells mutate as they divide and the point where mutations happen in the big picture. To do this, we will use the following data definitions: |# ;; A CellGroup is either: ;; -- (make-cell number cancer-quality) ;; -- (make-cell-group cancer-quality CellGroup CellGroup) (define-struct cell (time cancer-factor)) (define-struct cell-group (cancer-factor div1 div2)) ;; A (cancer)Quality is a ;; -- (make-cancer-quality Boolean Boolean Boolean ;; Boolean Boolean Boolean) (define-struct cancer-quality (G S A B I O)) ;; In this definition, time is the time it takes to divide ;; once, cancer-factor consists of the factors described ;; above, and div1 and div2 are the results of a cell's ;; division. ;; ---------------------------------------------------------