An open API service indexing awesome lists of open source software.

https://github.com/tabone/mendelian

An NPM Module used to simulate genetic inheritance using Mendelian inheritance
https://github.com/tabone/mendelian

Last synced: 8 months ago
JSON representation

An NPM Module used to simulate genetic inheritance using Mendelian inheritance

Awesome Lists containing this project

README

          


mendelian


Logo



This package provides functionality for simulating genetic inheritance in creatures using [Mendelian inheritance](https://en.wikipedia.org/wiki/Mendelian_inheritance) principles. It facilitates the creation of genes, genotypes, and creatures with customizable genetic properties.

## Installation

You can install the package via npm:

```bash
yarn add mendelian
```

## Usage

### Creating a new seeded `Genetics` instance

```javascript
import { Genetics } from "mendelian";

const genetics = new Genetics({ seed: "idrinkandiknowthings" });
```

### Creating `Gene`s

```javascript
const blueEye = genetics.createAllele({
trait: "eye-color",
dominance: 3,
description: "blue",
});

const greenEye = genetics.createAllele({
trait: "eye-color",
dominance: 5,
description: "green",
});

const brownEye = genetics.createAllele({
trait: "eye-color",
dominance: 8,
description: "brown",
});
```

### Creating `Creature`s with `Gene`s

```javascript
const creatureOne = genetics.createCreature({
genes: {
eye: genetics.createGene({
trait: "eye-color",
alleles: [brownEye, blueEye],
}),
},
});

const creatureTwo = genetics.createCreature({
genes: {
eye: genetics.createGene({
trait: "eye-color",
alleles: [brownEye, blueEye],
}),
},
});
```

### Reproducing a child

```javascript
console.log(creatureOne.mate(creatureTwo).genes.eye.phenotype.description); // => brown
```


Demo