Punnett Square
A Punnett Square Calculator
Getting started
install the package:
npm install --save punnett-square
create a new class instance of PunnettSquare
; // traits should be ordered from most dominant to leastconst TRAITS = 'black' 'brown' 'blonde' 'red';const hair = TRAITS;
breed
const MOM = 'brown' 'red';const DAD = 'black' 'red'; const spawn = hair; /**spawn is now an object with alleles and the expressed trait{ alleles: ['black', 'red'], trait: 'black',}**/
Documentation
Method: cross
Description:
Returns the resultant Punnett Square from a cross of two sets of alleles.
Usage
cross(mom, dad);
-
mom {array} required
- two strings that exist in the array of traits used to instantiate the class
-
dad {array} required
- two strings that exist in the array of traits used to instantiate the class
-
@return {array}
Example
const hair = 'black' 'brown' 'blonde' 'red';const MOM = 'brown' 'red';const DAD = 'black' 'red'; const cross = hair; /**cross is now an array of possible alleles[ ['brown', 'black'], ['brown', 'red'], ['red', 'black'], ['red', 'red'],]**/
Method: visible
Description:
Returns the dominant trait from an allele pair.
Usage
visible(alleles);
-
alleles {array} required
- two strings that exist in the array of traits used to instantiate the class
-
@return {string}
Example
const hair = 'black' 'brown' 'blonde' 'red'; const visible = hair; // visible => 'brown'
Method: breed
Description:
Returns an object with an allele pair and the expressed trait from the resultant cross between two allele pairs
Usage
breed(mom, dad);
-
mom {array} required
- two strings that exist in the array of traits used to instantiate the class
-
dad {array} required
- two strings that exist in the array of traits used to instantiate the class
-
@return {object}
Example
const hair = 'black' 'brown' 'blonde' 'red';const MOM = 'brown' 'red';const DAD = 'black' 'red'; const cross = hair; /**cross is now an object that may look like{ alleles: ['red', 'black'], trait: 'black',}**/
Contributing
Feature requests, issues, and contributions are all welcome.