• Hello!

    Either you have not registered on this site yet, or you are registered but have not logged in. In either case, you will not be able to use the full functionality of this site until you have registered, and then logged in after your registration has been approved.

    Registration is FREE, so please register so you can participate instead of remaining a lurker....

    Please be certain that the location field is correctly filled out when you register. All registrations that appear to be bogus will be rejected. Which means that if your location field does NOT match the actual location of your registration IP address, then your registration will be rejected.

    Sorry about the strictness of this requirement, but it is necessary to block spammers and scammers at the door as much as possible.

Question for genetic wizzards

Originally, yes...but in his picture that I was talking about he had an amel x a normal het stripe listed. He didn't say amel het stripe and his symbol for that male was aaSS, so that is what my example illustrated.

attachment.php
 
Marcel, (and anyone else who likes this stuff)

In programming terms, the "calculation" you need to do is like this card game: (thus the rigid language to explain it... I'm not yelling, just stressing, hehe)

(Note: this only applies to recessive traits, but it will work for now.)

The simple rules of the game are:
Each individual animal has TWO COMPLETE rows of cards. Each individual ALWAYS gives exactly ONE COMPLETE row of cards to each offspring.

The finer rules are:
Each row ALWAYS goes 2, 3, 4, 5, 6, 7, 8, 9, 0, J, Q, K, A

Any card can be either a Heart, Diamond, Club, or Spade, but it ALWAYS matches its "place."

That is, you can ONLY ever put a 2 in the 2's place. You can ONLY put a J in the J's place.

The "color" of the card in a given place can differ, but NEVER the number.

That is, a row of cards can be:
234567890JQKA
or
234567890JQKA
or
234567890JQKA
or anything else, as long as the numbers ALWAYS go "234567890JQKA"

For simplicity, let's say that all Black cards are dominant over all Red cards.

So for a totally normal individual, your two rows of cards look like this:
234567890JQKA
234567890JQKA


Since it gives only one card to each offspring, it always gives this:
234567890JQKA

For a normal het for everything, it could look like this:
234567890JQKA
234567890JQKA


Each individual MUST pass down EXACTLY one of each card from 2 through A. That is, the above "het for everything" could give either color of any card, but they will always be 234567890JQKA.

What you are doing is picking exactly ONE of each card... the top card or the bottom card. For the 2's, randomly pick ONE of them. For the 3's, randomly pick ONE, etc.

Which 2 is chosen is INDEPENDENT of ALL other cards chosen. This "independence" applies to all numbers.

This individual is "het for 8"
234567890JQKA
234567890JQKA


Notice that it will still always give:
234567_90JQKA

But the 8 can either be a red or black 8. So the two types of sperm or egg from this individual are:
234567890JQKA
or
234567890JQKA
 
Take this through a "real" breeding: Amel X Anery. Let's say Amel is the 3's and Anery is the 9's.

Amel parent:
234567890JQKA
234567890JQKA


Gives this:
234567890JQKA

Anery Parent:
234567890JQKA
234567890JQKA


Gives this:
234567890JQKA

Offspring are: (Het for amel and anery)
234567890JQKA
234567890JQKA


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

With me so far? If not, go back until you have it. If necessary, get out a real deck of cards. :)
 
Hurley said:

Butter isn't a simple recessive trait, it's a combo
of amel and caramel...so in your program butter
should be aaff.

Also, stripe and motley seem to act as alleles,
so they'd be something along the lines of
D = normal, d = motley, d' = stripe....or whatever.
Superscript an m and an s, etc.


I was aware of the mistake I made with Butter. That needs to be fixed. I have seen in the Mike's predictor that he deals well with the Motley stripe thing. I am not sure if I am going to bother to make exceptions for these genes. I think I will let them act like any other gene. Just like I let Bloodred act as simple recessive.
 
Breed the F1s to each other... each F1 looks like this:
234567890JQKA
234567890JQKA


So the F1 always gives:
2_345678_0JQKA


Your variables are the 3 and 9 cards, which can be red or black. The possible cards given by each parents to its offspring are:
234567890JQKA
or
234567890JQKA
or
234567890JQKA
or
234567890JQKA


(If you are familiar with binary numbers, the above sequence of red and black 3's and 9's should look very familiar...)


Put those "given" cards together in all possible combinations (this is the "Punnett Square") to determine all possible results.
The final results look like this:
234567890JQKA (Normal)
234567890JQKA

234567890JQKA (Normal het amel)
234567890JQKA

234567890JQKA (Normal het anery)
234567890JQKA

234567890JQKA (Normal het amel and anery)
234567890JQKA


234567890JQKA (Normal het amel)
234567890JQKA

234567890JQKA (Amel)
234567890JQKA

234567890JQKA (Normal het amel and anery)
234567890JQKA

234567890JQKA (Amel Het anery)
234567890JQKA


234567890JQKA (Normal het anery)
234567890JQKA

234567890JQKA (Normal het amel and anery)
234567890JQKA

234567890JQKA (Anery)
234567890JQKA

234567890JQKA (Anery Het amel)
234567890JQKA


234567890JQKA (Normal het amel and anery)
234567890JQKA

234567890JQKA (Amel het anery)
234567890JQKA

234567890JQKA (Anery het amel)
234567890JQKA

234567890JQKA (Snow)
234567890JQKA

--------

Notice that everything but the 3's and 9's are always the same, you need to determine the combinations of 3's and 9's... That is what is done above.

Since there are two 3's and two 9's for each parent, you can count this like a binary number to see the combinations...
If black is zero and red is one, you have:
Code:
[b]0,  1,  2,  3  (Decimal)
00, 01, 10, 11 (Binary)
39, 3[color=red]9[/color], [color=red]3[/color]9, [color=red]39[/color] (Genes/Cards)[/b]
All you have to do is take that and count from 0 to 15 in binary. :)
Code:
     [i]39 39[/i]
00 = 00 00 (Normal)
01 = 00 01 (Normal het Anery)
02 = 00 10 (Normal het Amel)
03 = 00 11 (Normal Double het)

04 = 01 00 (Normal het Anery)
05 = 01 01 (Anery)
06 = 01 10 (Normal Double het)
07 = 01 11 (Anery het Amel)

08 = 10 00 (Normal het Amel)
09 = 10 01 (Normal double het)
10 = 10 10 (Amel)
11 = 10 11 (Amel het Anery)

12 = 11 00 (Normal double het)
13 = 11 01 (Anery het Amel)
14 = 11 10 (Amel het Anery)
15 = 11 11 (Snow)

Remember,
  • ALL individuals ALWAYS have EXACTLY two of each "number" card.
  • ALL individuals ALWAYS give EXACTLY one of each "number" card to each of its offspring.
  • NO offspring will EVER have more or less than EXACTLY two of any given card number.

More to come... I'm still typing :toiletgra
 
Once you've found how annoying and tedious that is... you'll probably want to find shortcuts. ;)

One shortcut is using simpler rules. Each trait is independent, and there are only three possible genotypes for a given trait called A:
AA
Aa
aa

This leaves only six possible crosses ever:
AA X AA
AA X Aa
AA X aa
Aa X Aa
Aa X aa
aa X aa

Out of these six crosses, three have the same exact result every time, so you don't need to "calculate" them:
AA X AA = AA
AA X aa = Aa
aa X aa = aa

The other three are simple, too:
AA X Aa = 2 outcomes: AA, Aa
Aa X aa = 2 outcomes: Aa, aa
Aa X Aa = 4 outcomes: AA, Aa, Aa, aa

You can save a lot of time and effort by not "calculating" these, but instead grabbing them from a list. :) You could even make an array and reference it:

AA X AA = AA, AA, AA, AA
AA X Aa = AA, AA, Aa, Aa
AA X aa = Aa, Aa, Aa, Aa
Aa X Aa = AA, Aa, Aa, aa
Aa X aa = Aa, Aa, aa, aa
aa X aa = aa, aa, aa, aa

Simplify this to numbers so it can be applied to any trait...

Just count your index to four with each trait, grabbing the "indexed" outcome from the cross being done on that trait. These all get put into a huge list of outcomes. When completed, go through the list and remove redundant outcomes to simplify things. That's one of the million or so ways it can be done.

Hopefully I've given you ideas and not just made it more confusing, hehe. :) (Aww, I'm good at doing that, though, LOL!)

---

And yeah, Hurley is right about Stripe. You might want to address that somehow. With the "red/black" cards thing, it's like "Normal" is the black card, Motley is the Heart, and Stripe is the Diamond. (Or, it's the most accurate way to deal with them at this point in time.)

You could just treat motley and stripe as the same exact trait. I would highly recommend doing that instead of treating them separately, because then you will get "Motley X Stripe = Normals double het Motley/Stripe" which will mess people up. ;)

I agree with treating "bloodred" as a simple recessive for such a program. Someone could consider "bloodred-looking hets" as a bonus when they happen. ;)

My other suggestion (and making a lot more work for you) would be to use an "ini" type text file to identify the traits for the program, this way it could be customized if someone wants to add other traits, or use it for another species. :bomb:
 
Serpwidgets said:

My other suggestion (and making a lot more work for you) would be to use an "ini" type text file to identify the traits for the program, this way it could be customized if someone wants to add other traits, or use it for another species. :bomb:

I figure if I get it to work properly the Ballpythons guys and the Boa guys will knock on my door for a different version of the program. ;) Your suggestion will help then. LOL
 
Oh, and the reason I never finished my program is because I got to this shortcut... remember this part?
there are only three possible genotypes for a given trait called A:
AA
Aa
aa
Well, it turns out that simple multiplication gets you there:
AA = 0 (Normal)
Aa = 1/2 (Het)
aa = 1 (Morph)

To find out how many of morph A you will get, multiply the parents by each other:
Code:
AA X AA = 0   * 0   = 0     Normal X Normal
AA X Aa = 0   * 1/2 = 0     Normal X Het    (50% het)
AA X aa = 0   * 1   = 0     Normal X Morph  (100% het)
Aa X Aa = 1/2 * 1/2 = 1/4   Het    X Het    (66% het)
Aa X aa = 1/2 * 1   = 1/2   Het    X Morph  (100% het)
aa X aa = 1   * 1   = 1     Morph  X Morph

Generally you just want to know what your odds are of getting the "all genes combined" hatchling, and not the other 511 possible outcomes. ;)

Do this with any number of traits, and you get the answer.

Het amel/anery/motley X het amel/anery/motley, how many snow motleys?
Code:
amel * anery * motley = 
1/4  * 1/4  * 1/4    = 1/64.

Amel/Anery, het motley X normal het amel/anery/motley. How many snow motleys?
Code:
amel * anery * motley =
1/2    * 1/2    * 1/4     = 1/16.

You can also figure out the opposite side (what will "not" be that morph) by subtracting what you got from 1.

If you want to know how many amels you will get from het amel/anery X het amel/anery:
(amel) Het X Het = 1/4, so 1/4th will be Amel.
(anery) Het X het = 1/4, so (1 - 1/4) ...3/4 will NOT express anery.

1/4 * 3/4 = 3/16.

Check answers against the progeny predictor, it works like a charm and is a lot more portable. :D
 
Serp.

I have been trying to work this genetic thing out for such a long time now.
You have in the past done an example for me with my Amel Motley x Caramel, you got the results for me so I didn't try to do it my self.
I have been following this thread carefully and at first you lost me completely. but now I think I may have it:) .
I am going to do a few examples for my self later just to be sure.

Thank you very much:cheers:
 
Serpwidgets said:
Code:
[color=blue]AaSs[/color] x [color=red]AaSs[/color] (both normals double het amel stripe)

     [b][color=blue] A S    A s    a S    a s[/color][/b]
[b][color=red]AS[/color][/b]   [color=red]A[/color][color=blue]A[/color][color=red]S[/color][color=blue]S[/color]   [color=red]A[/color][color=blue]A[/color][color=red]S[/color][color=blue]s[/color]   [color=red]A[/color][color=blue]a[/color][color=red]S[/color][color=blue]S[/color]   [color=red]A[/color][color=blue]a[/color][color=red]S[/color][color=blue]s[/color]
[b][color=red]As[/color][/b]   [color=red]A[/color][color=blue]A[/color][color=red]s[/color][color=blue]S[/color]   [color=red]A[/color][color=blue]A[/color][color=red]s[/color][color=blue]s[/color]   [color=red]A[/color][color=blue]a[/color][color=red]s[/color][color=blue]S[/color]   [color=red]A[/color][color=blue]a[/color][color=red]s[/color][color=blue]s[/color]
[b][color=red]aS[/color][/b]   [color=red]a[/color][color=blue]A[/color][color=red]S[/color][color=blue]S[/color]   [color=red]a[/color][color=blue]A[/color][color=red]S[/color][color=blue]s[/color]   [color=red]a[/color][color=blue]a[/color][color=red]S[/color][color=blue]S[/color]   [color=red]a[/color][color=blue]a[/color][color=red]S[/color][color=blue]s[/color]
[b][color=red]as[/color][/b]   [color=red]a[/color][color=blue]A[/color][color=red]s[/color][color=blue]S[/color]   [color=red]a[/color][color=blue]A[/color][color=red]s[/color][color=blue]s[/color]   [color=red]a[/color][color=blue]a[/color][color=red]s[/color][color=blue]S[/color]   [color=red]a[/color][color=blue]a[/color][color=red]s[/color][color=blue]s[/color]


How would this one look like if you add one trait to the female. lets say het Caramel (Cc) ...
 
If you add in another trait, you double the possible combos each parent can throw.

1 trait - 2 x 2 --> 4 square
2 traits - 4 x 4 --> 16 square
3 traits - 8 x 8 --> 64 square
4 traits - 16 x 16 --> 256 square

etc.

The example you just gave was a normal female het amel, stripe, and caramel x a normal male het amel and stripe only.

This would make a Punnett square like this:

marcel.jpg
 
Really though, it's so much easier to just do ratios.

Normal het amel, caramel, stripe x Normal het amel, stripe

AaCcSs x AaCCSs

(amel = a, caramel = c, stripe = s, wild type = A, C, and S)

Progeny possible with these three genes:

Normals (no mutants)
Amels, Caramels, Stripes (1 mutant)
Butter, Amel Stripes, Caramel Stripes (2 mutants)
Butter Stripes (3 mutants)

Sooooo....

The chance of getting a normal from each egg
is simply the chance of getting each trait multiplied
by each other.

Normals = 3/4 chance it's not an amel, 1/1 chance it's not a caramel, 3/4 chance it's not a stripe

Therefore:

Code:
 3           1           3           9
---    X    ---    X    ---    =    ---
 4           1           4          16


For the possibilities in this list:

Normal = 3/4 x 1/1 x 3/4 = 9/16
Amel = 1/4 x 1/1 x 3/4 = 3/16
Caramel = 3/4 x 0 x 3/4 = 0
Stripe = 3/4 x 1/1 x 1/4 = 3/16
Butter = 1/4 x 0 x 3/4 = 0
Amel Stripe = 1/4 x 1/1 x 1/4 = 1/16
Caramel Stripe = 3/4 x 0 x 1/4 = 0
Butter Stripe = 1/4 x 0 x 1/4 = 0


This works out to be a typical dihybrid cross with
the predictable 9:3:3:1 ratio.

The caramel doesn't really even count since only one parent is het. All offspring are 50% het caramel. If they aren't expressing amel, they are 67% het amel, if they aren't expressing stripe, they are 67% stripe.

So, I guess if you wanted to, you could list genotypic results
of a normal het amel, stripe, and caramel x normal het amel and stripe as:

9/16 Normals (67%am, 67%st, 50%ca)
3/16 Amels (67%st, 50%ca)
3/16 Stripes (67%am, 50%ca)
1/16 Amel Stripes (50%ca)
 
marcel3.jpg


Regarding your picture, if you want the results of a caramel het for amel and stripe x a normal het for amel and stripe:

marcel2.jpg


Same phenotypic ratio, but instead of progeny being 50% het for caramel, they are known het for caramel.
 
I'm really not shure if the squares are the best thing to let a program work with. I've coded a simple predictor in PHP which you'll be able to test when pewters new site will launch.
I just used arrays und a little, but optimized, tree-recursive algorithm.

I don't see any reason why I should make the square, which doesn't say much to me with the letters, and then let another algorithm do the work on the square to give me the rates in text ( I mean 1/16 Nominat het. Cara ... 1/16 Amel het. blabla)

Another thing I miss in this snapshot of the programm: What will be the offspring when pairing Motley x Stripe ... If you do the same algorithm for all the morphs listed above, these would be 100% Nominat het. Motley, Stripe...

Greetings from Germany
 
And for grins:

If you had 2 normals het for amel, caramel, and stripe,
you'd get this Punnett square:

marcel4.jpg



Notice if you look at just each quarter of the square, you have the 9:3:3:1 ratios.....also notice that the upper right and lower left quarters are identical and always will be with this type of a trihybrid cross.

27/64 Normals (67% het amel, caramel, stripe)
9/64 Amels (67% het caramel, stripe)
9/64 Stripes (67% caramel, amel)
9/64 Caramels (67% amel, stripe)
3/64 Butters (67% stripe)
3/64 Amel Stripes (67% caramel)
3/64 Caramel Stripes (67% amel)
1/64 Butter Stripes
 
Menhir said:
I'm really not shure if the squares are the best thing to let a program work with

Hi Menhir,

If you look at the picture of my program you will see there is a radio button 'Grid' and 'Memo'. The 'Memo' radiobuton will show the result in :

'Normal ' 25%
'Het Amel 25%

etc
 
Back
Top