Project Information Team Information Design Ideas Progress Links
------------------------------------------------------------------------------------------------------------------------------------------------------------------
____________________________
Sponsor Information
See here for more info
____________________________
Brad McRae
Puma genetics project
School of Forestry
Northern
(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
____________________________
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.
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)
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.
1. The program must run as a stand-alone product. It
cannot require mathematical software such
as MatLab to execute it.
2. Operating System:
Windows 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.