Circuitscape Team

Project Information     Team Information     Design Ideas     Progress     Links

------------------------------------------------------------------------------------------------------------------------------------------------------------------

____________________________

Sponsor Information

See here for more info

____________________________

Brad McRae

Puma genetics project

School of Forestry
Northern Arizona University
Flagstaff AZ 86011-5018

(928) 213-8187

Brad.McRae@NAU.EDU 

____________________________

Problem Definition

See Sponsor Project Page for more info

____________________________

The purpose of the Circuitscape project is to develop convenient and easy to use software for calculating genetic conductivity between animal populations. Genetic conductivity is the degree to which genetic information can flow between animal populations. This is useful for practical applications such as conservation planning and more theoretical work in the field of population genetics. The conductivity is calculated using a new method that draws on concepts from electrical engineering to treat a habitat as a grid of resistors. The advantage of this method is that it can produce highly accurate calculations for large data sets.

____________________________

Problem Description

See Sponsor Project Page for more info

____________________________

Brad McRae came to Capstone project on January 21, 2004 to design a new Circuitscape program. Team Circuitscape was formed. The Circuitscape program uses circuit theory to model gene flow. Gene flow theory is the study of the flow of genetic material from one creature population to another, and of the genetic difference between geographically distant populations. It can be used to study the health of a population and the effects of terrain on animal populations.

____________________________

Requirements

See Requirements Document for more info

____________________________

Goals  

1. This program will predict genetic conductivity between populations in heterogeneous landscapes.

2. This program will be easy to download and use so novice computer users can take advantage of the gene flow model.

Functional Requirements

1. Primary Requirements: Necessary Features

1.1. The program must calculate the effective resistance and conductance between two nodes on a grid of resistors.

1.2. The program must handle connections between diagonally adjacent nodes.  (Extension of functional requirement 1.1)

1.2.1. The program must allow the user to choose if diagonal connections are made.

1.3. The program must handle connections with zero resistance by merging the connected nodes. (Extension of functional requirement 1.1)

1.4. The program must calculate the geographic distance between two nodes.

1.5. The program must read in data from ASCII files generated by Microsoft Excel or a GIS (Geographic Information System) such as Arcview.

1.5.1. The program must allow the user to choose which files and formats will be used.

1.5.2. The program must be able to calculate values between nodes when only  values at nodes are contained in the file. The methods used to calculate the values are as follows: average of resistance, average of conductance, product of resistance, or product of conductance.

1.5.3. The program must ignore excessive white space in the input files.

1.6. The program must write the calculated data to a text file readable by Microsoft Excel. This includes effective conductance, effective resistance, and geographic distance.

2. Secondary Requirements: Desired Features

2.1. The program must allow connections between nonadjacent nodes. (Extension of functional requirement 1.1)

            2.1.1. The program must provide a means for entering the equation and parameters that define the connections between nonadjacent nodes.

2.1.2. The program must provide a means to choose the maximum distance at which nonadjacent nodes are connected.

2.1.3. The program must provide a means to choose whether cell distances or map distances are used in the equation.

2.2. The program must calculate the current across all resistors given a user defined current source and a user defined current sink. (Extension of functional requirement 1.1)

            2.2.1. The program must write data about current to a text file readable by a GIS. (Extension of functional requirement 1.5)

2.3. The program must be capable of detecting totally disconnected parts in a grid of resistors.

            2.3.1. The program must allow the user to choose what to do when disconnected parts are detected

            2.3.2. The program must be able to abort its run when disconnected parts are detected.

2.3.3. The program must be able to drop a disconnected node from the analyses.

3. Tertiary Requirements: Possible Extra Features

3.1. The program must be able to perform Markov Chains Theory calculations on a  limited sets of data. Data sets of up to, at least, 64 nodes will be handled.

            3.1.1. The program must allow the user to choose whether or not to perform Markov Chains Theory calculations.

3.2. The program must be able to calculate the total resistance along a path of least  resistance between two nodes.

3.3. The program must be capable of completing its calculations when the grid of resistors containing totally disconnected parts. (Extension of functional requirement 2.3) 

3.4. The program must have a visualization tool for graphically displaying data about current. (Extension of functional requirement 2.2)

3.5. The program must provide a tool that allows the user to check if the equation entered  is the one wanted. (Extension of functional requirement 2.1)

3.6. The program must provide a means to explicitly define individual connections between nonadjacent nodes. (Extension of functional requirement  2.1)

Performance Requirements

1. The program must be easy enough to download and setup that 4 out of 5 individuals versed in population genetics can do it without assistance after reading a short list of  instructions. Individuals versed in population genetics must have sufficient experience with computers to operate a GIS and Microsoft Excel.

2. The program must have a sufficiently enough documentation to use graphical user interface that 4 out of 5 individuals versed in population genetics can operate the program without assistance after reading a short tutorial. Individuals versed in population genetics must have sufficient experience with computers to operate a GIS and Microsoft Excel.

3. The program must have complete user documentation.

            3.1. User documentation must be available in Microsoft Word format.

            3.2. User documentation must be accessible from with the program.

4. The code must be fully documented to allow for future modifications.

            4.1. Code documentation must be available in Microsoft Word format.

            4.2. Source code must be fully commented.

5. The program must be able to execute its calculations in, at most, 5 minutes with data sets of, at least, 100,000 nodes.

Constraints

1. The program must run as a stand-alone product. It cannot require mathematical software such as MatLab to execute it.

2. Operating SystemWindows 98/2000/XP

3. Minimum Hardware Specifications for Users

3.1. Processor Speed: 400 MHz Pentium III

3.2. Memory: 128MB RAM

____________________________

Risk Analysis

See Project Development Plan for more info

____________________________

Risks will be given a ranking on severity and likelihood using a qualitative scale: very high, high, moderate, low, very low.

1. Technological Risks - Risks associated with the technology used by the software.

1.1. Memory Problems

Severity: high

Likelihood: moderate

Description: The software may need to handle very large data sets, which will lead to high memory consumption. If the program needs more memory than the machine can muster, problems will occur.

Monitoring Plan: The program will be tested with large data sets. There is a problem if the computer running the program runs out of memory.

Mitigation Strategy: Set an upper limit on data set sizes. Analyze the code of the program for unnecessarily high memory consumption and optimize it. If this is not enough, set a higher upper limit on the size of data sets allowed.

2. Skills Risks - These risks arise from lack of a needed skill on the part of the team.

2.1. Problems Understanding Complex Mathematics

Severity: very high

Likelihood: low

Description: The software needs to find the genetic difference between populations. This is done using the mathematical technique of nodal analysis. Without a proper understanding of the math needed, the whole project will be useless.

Monitoring Plan: The team will read through the code currently written for Matlab to check understanding. If any part of the math is confusing, team members will try to figure it out with pencil and paper. If they fail to reach understanding in this way, there is a problem.

Mitigation Strategy: Immediately contact the sponsor and ask for an explanation of the problem area.

2.2. Translating Matlab to Java

Severity: low

Likelihood: high

Description: The program currently used for circuit gene flow theory is for Matlab, and needs to be translated to Java. The team has had no experience with Matlab before this project, and may encounter difficulty understanding the Matlab code.

Monitoring Plan: The team will read the Matlab code and try to understand what it is doing. If an unknown language element is found, the problem has been encountered.

Mitigation Strategy: If at any point an unknown language element is encountered, its purpose will be researched online and using any other immediately available resources. If this does not solve the problem, the sponsor will be contacted with a question about the language problem encountered.

3. Personnel Risks - Risks that come from problems with team members.

3.1. A Team Member is Lost

Severity: high

Likelihood: very low

Description: A member of the team leaves the class, leaving fewer people to complete the project.

Monitoring Plan: Watch for attendance at meetings. If a team member misses one and fails to contact the team, the member is contacted. If they say they left the class, the problem has occurred.

Mitigation Strategy: Redistribute work assigned to the missing member to the remaining team members.

3.2. A Team Member Becomes Lax In Their Duties

Severity: moderate

Likelihood: moderate

Description: A member of the team begins to consistently perform below expectations.

Monitoring Plan: Check performance of team members on assignments. There is a problem if the team member consistently performs below expectations and/or is uncooperative about their work.

Mitigation Strategy: Tell the team member to improve their work. If this is ineffective, consult the project manager.

____________________________

Design Paradigm

See Project Development Plan for more info

____________________________

The team has used the spiral model to guide the development process.

The steps of planning, risk analysis, prototyping, and client review are repeated, followed by another re-definition of requirements. This process is repeated until the desired product is created.

Since the requirements break up cleanly into parts that can be developed sequentially in different modules, the team can fit these modules into the spiral development model as successive additions to prototypes. These modules are the milestones: first the primary requirements prototype, then secondary requirements, then tertiary requirements.