I'm in a desert, and I can choose either a compass or a map.

What would you choose if you were me?

I'd choose a map. And not just a regular map, i'm choosing a gene map!

And what I would like to show you this time is to know how to make this gene map when you have 3 character traits, along learning what is a gene order, and something called interference and COC.(And of course, our tester is a fruit fly)

Challenge accepted, let's do this!


First, I would like to show you a few stuff before we do anything.

We will use not 1, not 2, but 3 characters for this example.

And these characters are called Vermilion, crossveinless, and cut genes.

Vermilion: Fruit flies who has this gene has a brighter red eye color while the wild types has a dark red eye. And it's a recessive mutant.

Crossveinless: Most fruit flies that we know has a horizontal line and a bridge like vertical line on it's wings. However, crossveinless fruit flies does not have the "Vertical" lines on it's wings, and it's also recessive.

Cut: Normal fruit flies has round and smooth wings, but flies who has this character has it's wings that looks like it has been kinda shattered like glass or snipped by scissors. Again, it's a recessive mutant.

Now, look at the pictures with black backgrounds. There will be 3 of them.

If I write that in a simple form, it's just like this:


V, CV+, CT+ = 580       V+, CV, CT = 592      V, CV, CT+ = 45               V+, CV+, CT = 40        V, CV, CT = 89        V+, CV+, CT+ = 94 

V, CV+, CT = 3           V+, CV, CT+ = 5      Total progeny: 1448

NOTE: The genes that has + with them is the wild type, and the ones without the + is recessive mutant genotype.








Say, do you remember when we first learned about the term Centimorgans?

We normally write it as cM or m.u(map units). 




Well, this time might be the perfect time in order to use them in real life!

Sometimes you'd might want to know exactly how far is the distance between a gene loci from another, and want to know what gene is in where(To be specific, it's "what order"). A gene map can give you that much information about the genes in that way. It kinda looks like this:

                A                    34cM(mu)         B  12cM(mu)  C

   ---------|-----------------------------|-----------|--------

                |--------------------46cM(mu)-------------|

To make this, we have to know the distance between the three genes in order to make a gene map. 

To do that, we need to know something called a "gene order".

Then you might say "Ok, isn't the gene order V, CV, CT? All of the genotypes you showed me just looks like that!"

Well..... That could look like that at first, but you should know that there is a catch from the double mutant genotyped chromosomes.

Double crossovers moves their middle genes to it's sister chromatid, so we have to know the actual gene order. And we have to use that gene order once we have found it out.




How to find the gene order is easier then you would think. 


First, you need to find the parental genotypes and the double crossovered(DC) genotypes. 


Second, compare them and find the odd one.

Third, put the odd one in the middle, then put the rest of the genes where it was. 


And fourth, With the newly found gene order, find the distance between each gene loci. Sounds kinda hard, right? Follow the steps and you'll see.


Step 1: In order to find the parental genotype and the DC genotype, we just need to see what is the top 1 and 2 highest and lowest number of fruit fly progenies. The highest ones are the parental genotypes, and the lowest are the DC genotypes. In this example, we can now know that the genotypes V, CV+, CT+ and V+, CV, CT are the parental genes while the genotypes V, CV+, CT and V+, CV, CT+ are the DC recombinant genes.

Step 2: We have to compare the parental and DC genotypes together. 

That means we have to compare V, CV+, CT+  and V, CV+, CT together and also compare V+, CV, CT and V+, CV, CT+ together as well. 

We can directly see that the CT gene is the odd one out, therefore we put it in the middle and putting the other genes back in it's original location.

So we get V, CT, CV as our gene order, which means that the CV gene and CT genes swaps places.

Now, since we've figured out the gene order, the only thing left to solve is the distance between the gene locis! The only thing is, how?

Well first, let's arrange the stuff that we have just earned. 

If we put that in a gene map, it would look something like this:

                V                   ?cM(mu)           CT  ?cM(mu) CV

   ---------|-----------------------------|-----------|--------

                |--------------------?cM(mu)--------------|







Remember in the 20th line where I have wrote all the possible progenies?

As you all have learned that the homologous chromosome pairs has to undergo "Genetic Recombination" for other progenies to appear in their phenotypes, they can do the same thing! A easy way to figure out the map units is to figure out where the crossing over happens, what kind of genotypes can be formed, and make that into a percent! 

According to the gene map above and the total genotype progenies, we can see that the distance between V and CT or CT and CV can undergo genetic recombination.  

                V                   ?cM(mu)          CT+  ?cM(mu) CV+

   ---------|-----------------------------|-----------|--------

                                        X                         X

               V+                   ?cM(mu)          CT  ?cM(mu)  CV

   ---------|-----------------------------|-----------|--------  Hmmmm...... What expected genotypes can occur when crossover from the left happens? Right! We can get V, CT, CV and V+, CT+, CV+

Then what about the recombination on the right? 

We would get a result of V, CT+, CV and V+, CT, CV+

And what if both happened? A result of V, CT, CV+ and V+, CT+, CV would occur, and the other two left are the parental genes.

To figure out the map units, we need to add up all the genotype's progeny numbers, divide that to the total progeny number(Which is 1448), and multiply it by 100. 

So for the V ~ CT range, we just need to know what are the progeny numbers from each genotypes that can occur from that range's genetic recombination.

But there is a catch - I just noticed this. You were probably just thinking to add the progeny numbers of the genotypes V, CT, CV and V+, CT+, CV+(89, 94) and solve the question, right?

Well, that is wrong! Think about the genotypes that has undergone a double crossover, that kind of genotype does both of the recombination V ~ CT and CT ~ CV. So you should put their progeny numbers as well.








Then we can know that the distance between V ~ CT is: (89 + 94 + 3 + 5) / 1448 = ~0.132 

0.132 * 100 = 13.2%!

CT ~ CV = (45 + 40 + 3 + 5) / 1448 = 0.064

0.064 * 100 = 6.4%

Then what is the distance between V and CV? 

We just have to add the two distances together!

13.2 + 6.4 = 19.6

Which means our gene map looks like.......!

                V                   13.2cM(mu)       CT  6.4cM(mu)   CV

   ---------|-----------------------------|--------------|-----

                |--------------------19.6cM(mu)--------------|

Yeah! It's all done! The gene map is finished!

But, even with all this excitement, we still have one more mission left.

I would like you to learn a bit about probability for this one, assuming that you have, here it is.

Let's just say that we don't know the progeny number of the double recombinant genotypes. If that's so, then we would figure out the number with this "algorithm". Like below. 

0.132 * 0.064 = 0.0084 

0.0084 * 1448 = 12

(We did this based by the progenies of each recombination)

We got 12 as our answer, right? 

Then count the total number of progenies from this chart:

V, CV+, CT+ = 580       V+, CV, CT = 592      V, CV, CT+ = 45               V+, CV+, CT = 40        V, CV, CT = 89        V+, CV+, CT+ = 94 

V, CV+, CT = 3           V+, CV, CT+ = 5      Total progeny: 1448

Since V, CV+, CT  and V+, CV, CT+ is the double recombinant genotypes, we would get our answer as 3 + 5 = 8

Now what just happened here? We thought the total number of progenies was 12, when we actually got 8!


All of this is because of Interference.

When meiosis happens and genetic recombination occurs, if a gene loci(Or "spot) has done genetic recombination, it decreases the probability that the gene loci next to it will also undergo recombination.

The interference tells us how strong a crossover from one DNA gene loci place interferes with the others.

To figure out the interference, we need to figure out something called COC, and it's short for "Coefficient of coincidence".

How to find the interference is to follow this formula: 1 - COC

COC = Observed # of DC progenies / Expected # of DC progenies.

Luckily, we have already figured out the COC value, which is 8 / 12 = 0.66

Then the Interference value is 1 - 0.66 = ~0.33

And that's why the observed & expected progenies are different.








So a long talk! But we finally figured out what is the gene map for this fruit fly and about interference!

Oh, and guess what? Here are the links to some of the helpful sites that will help you clear any more confusions!

https://en.wikipedia.org/wiki/Coefficient_of_coincidence

https://www.youtube.com/watch?v=J-aTSriYnak

https://www.ndsu.edu/pubweb/~mcclean/plsc431/linkage/linkage3.htm

I will be writing a another article when I learn some other interesting stuff!   

Thanks for reading this!         

                                By Jane Kim    <<해인이가>>












Let's say we want to make that program that generates a world of monkeys. Your program could generate a thousand Monkey objects, each with a height value between 200 and 300 (as this is a world of monkeys that have heights between 200 and 300 pixels).

var randomHeight = random(200, 300);

Does this accurately depict the heights of real-world beings? Think of a crowded sidewalk in New York City. Pick any person off the street and it may appear that their height is random. Nevertheless, it’s not the kind of random that random() produces. People’s heights are not uniformly distributed; there are a great deal more people of average height than there are very tall or very short ones. To simulate nature, we may want it to be more likely that our monkeys are of average height (250 pixels), yet still allow them to be, on occasion, very short or very tall.

       표준편차의 이해: http://bcho.tistory.com/972

     

A distribution of values that cluster around an average (referred to as the “mean”) is known as a “normal” distribution. It is also called the Gaussian distribution (named for mathematician Carl Friedrich Gauss) or, if you are French, the Laplacian distribution (named for Pierre-Simon Laplace). Both mathematicians were working concurrently in the early nineteenth century on defining such a distribution.

When you graph the distribution, you get something that looks like the following, informally known as a bell curve:

Graph of a standard bell curveA standard bell curve

The curve is generated by a mathematical function that defines the probability of any given value occurring as a function of the mean (often written as μ, the Greek letter mu) and standard deviation (σ, the Greek letter sigma).

The mean is pretty easy to understand. In the case of our height values between 200 and 300, you probably have an intuitive sense of the mean (i.e. average) as 250. However, what if I were to say that the standard deviation is 3 or 15? What does this mean for the numbers? Looking at graphs can give us a hint. The graph above shows us the distribution with a very low standard deviation, where the majority of the values cluster closely around the mean. The graph below shows us a higher standard deviation, where the values are more evenly spread out from the average:

Graph of a bell curve with a higher standard deviationA bell curve with a higher standard deviation

Not familiar with the concept of "standard deviation"? Don't worry! You can studyVariance and standard deviation separately on Khan Academy before continuing.

The numbers work out as follows: Given a population, 68% of the members of that population will have values in the range of one standard deviation from the mean, 98% within two standard deviations, and 99.7% within three standard deviations. Given a standard deviation of 5 pixels, only 0.3% of the monkey heights will be less than 235 pixels (three standard deviations below the mean of 250) or greater than 265 pixels (three standard deviations above the mean of 250).


Calculating Mean and Standard Deviation

Consider a class of ten students who receive the following scores (out of 100) on a test:

85, 82, 88, 86, 85, 93, 98, 40, 73, 83

The mean is the average: 81.3

The standard deviation is calculated as the square root of the average of the squares of deviations around the mean. In other words, take the difference from the mean for each person and square it (variance). Calculate the average of all these values and take the square root as the standard deviation.

ScoreDifference from MeanVariance
8585 - 81.3 = 3.7(3.7)^2 = 13.69
8282 - 81.3 = 0.7(0.7)^2 = 0.49
8888 - 81.3 = 6.7(6.7)^2 = 44.89
etc.... ... 
 Average Variance:228.81

The standard deviation is the square root of the average variance: 15.13

Want to understand standard deviation better? You can study Variance and standard deviation in more depth here on Khan Academy.


Luckily for us, to use a normal distribution of random numbers in a program here, we don't have to do any of these calculations ourselves. Instead, we can make use of the Randomobject provided by ProcessingJS.

To use Random, we must first instantiate a new Random object, passing in 1 as the parameter. We call that variable "generator" because what we've created can be basically thought of as a random number generator.

var generator = new Random(1);

If we want to produce a random number with a normal (or Gaussian) distribution each time we run through draw(), it’s as easy as calling the function nextGaussian().

var num = generator.nextGaussian();
println(num);

So, now, what are we supposed to do with this value? What if we wanted to use it, for example, to assign the x-position of a shape we draw on screen?

The nextGaussian() function returns a normal distribution of random numbers with the following parameters: a mean of zero and a standard deviation of one. Let’s say we want a mean of 200 (the center horizontal pixel in a window of width 400) and a standard deviation of 60 pixels. We can adjust the value to our parameters by multiplying it by the standard deviation and adding the mean.

var standardDeviation = 60;
var mean = 200;
var x = standardDeviation * num + mean;

Now, we can create our program that draws semi-transparent circles according to a normal distribution. The darkest spot will be near the center, where most of the values cluster, but every so often circles are drawn farther to the right or left of the center.


// Adapted from Dan Shiffman, natureofcode.com


var generator = new Random(1);


<코드>

var draw = function() {

    // The nextGaussian() function returns a normal distribution of random numbers with the following parameters: a mean of zero and a standard deviation of one

    var num = generator.nextGaussian();

    var standardDeviation = 60;

    var mean = 200;

    

    // Multiply by the standard deviation and add the mean.

    var x = standardDeviation * num + mean;

    

    noStroke();

    fill(214, 159, 214, 10);

    ellipse(x, 200, 16, 16);

};


    <출력>



<코드>

var generator = new Random(1);

var standardDeviation = 2;

var mean = 0;


var Walker = function() {

    this.x = width/2;

    this.y = height/2;

};


Walker.prototype.display = function() {

    strokeWeight(3);

    stroke(0, 0, 0);

    point(this.x, this.y);

};

// Randomly move up, down, left, right, or stay in one place

Walker.prototype.walk = function() {

    var xStepSize = standardDeviation * generator.nextGaussian() + mean;

    var yStepSize = standardDeviation * generator.nextGaussian() + mean;

    this.x += xStepSize;

    this.y += yStepSize;

};


var w = new Walker();


var draw = function() {

    w.walk();

    w.display();

};

<출력>



      

2# 잘못된 코드

var generator = new Random(1);

var standardDeviation = 2;

var mean = 0;

var num = generator.nextGaussian();


var Walker = function() {

    this.x = width/2;

    this.y = height/2;

};


Walker.prototype.display = function() {

    strokeWeight(3);

    stroke(0, 0, 0);

    point(this.x, this.y);

};


// Randomly move up, down, left, right, or stay in one place

Walker.prototype.walk = function() {


    var xStepSize = standardDeviation*num + mean;

    var yStepSize = standardDeviation*num + mean;

  

    this.x += xStepSize;

    this.y += yStepSize;

};


var w = new Walker();


var draw = function() {

    w.walk();

    w.display();

};

<출력>


3#절충형

var generator = new Random(1);

var standardDeviation = 2;

var mean = 0;



var Walker = function() {

    this.x = width/2;

    this.y = height/2;

};


Walker.prototype.display = function() {

    strokeWeight(3);

    stroke(0, 0, 0);

    point(this.x, this.y);

};


// Randomly move up, down, left, right, or stay in one place

Walker.prototype.walk = function() {

    var num = generator.nextGaussian();

    var xStepSize = standardDeviation * num + mean;

    var yStepSize = standardDeviation * generator.nextGaussian() + mean;

  

    this.x += xStepSize;

    this.y += yStepSize;

};


var w = new Walker();


var draw = function() {

    w.walk();

    w.display();

};


<출력>


<^^>





<< 칸아카데미의 Advenced JS를 학습한 내용입니다. 칸선생님 감사합니다. by 해인>>

The Random Walker Object

Let's review a bit of object-oriented programming (OOP) first by building a Walker object. This will be only a cursory review. If you have never worked with OOP before, you should go through the section on Object-Oriented JavaScript.

An object in JavaScript is a data type that has both properties and functionality attached to it, via its prototype. We are looking to design a Walker object that both keeps track of its data (where it exists on the screen) and has the capability to perform certain actions (such as draw itself or take a step).

In order to create instances of Walkers, we need to define a Walker object. We'll use that object as the cookie cutter, and each new Walker instance are the cookies.

Let's begin by defining the Walker object type. The Walker only needs two pieces of data—a number for its x-location and one for its y-location. We'll set those in its constructor function, setting them to the center of the canvas.

var Walker = function() {
    this.x = width/2;
    this.y = height/2;
};

In addition to keeping track of its x and y, our Walker object will also have methods that we can call on it. The first will be a method that allows the object to display itself as a black dot. Remember that we add methods to an object in JavaScript by attaching them to the object's prototype.

Walker.prototype.display = function() {
    stroke(0, 0, 0);
    point(this.x, this.y);
};

The second method directs the Walker object to take a step. Now, this is where things get a bit more interesting. Remember that floor on which we were taking random steps? Well, now we can use our canvas in that same capacity. There are four possible steps. A step to the right can be simulated by incrementing x (x++); to the left by decrementing x (x--); forward by going down a pixel (y++); and backward by going up a pixel (y--). How do we pick from these four choices? Earlier we stated that we could flip two coins. In ProcessingJS, however, when we want to randomly choose from a list of options, we can pick a random number using random().

Walker.prototype.walk = function() {
    var choice = floor(random(4));
};

The above line of code picks a random floating point number between 0 and 4 and converts it to a whole number by using floor(), with a result of 0, 1, 2, or 3. Technically speaking, the highest number will never be 4.0, but rather 3.999999999 (with as many 9s as there are decimal places); since floor() returns the closest whole number that is lesser or equal, the highest result we can get is 3. Next, we take the appropriate step (left, right, up, or down) depending on which random number was picked.

Walker.prototype.walk = function() {
    var choice = floor(random(4));
    if (choice === 0) {
        this.x++;
    } else if (choice === 1) {
        this.x--;
    } else if (choice === 2) {
        this.y++;
    } else {
        this.y--;
    } 
};

Now that we've written the class, it's time to make an actual Walker object in our program. Assuming we are looking to model a single random walk, we declare and initialize one global variable of type Walker, by calling the constructor function with the new operator.

var w = new Walker();

Now, to make the walker actually do something, we define the draw() function, and tell the walker to take a step and draw itself each time that's called:


var draw = function() {
    w.walk();
    w.display();
};

Since we don't call background() in the draw function, we can see the trail of the random walk on our canvas:


<코드>

var Walker = function() {

    this.x = width / 2;

    this.y = height / 2;

};

Walker.prototype.display = function() {

    stroke(0, 34, 255);

    point(this.x, this.y);

};

Walker.prototype.walk = function() {

    var num = floor(random(4));

    if (num === 0) {

        this.x++;

    } else if (num === 1) {

        this.x--;

    } else if (num === 2) {

        this.y++;

    } else {

        this.y--;

    }

};

var guy = new Walker();

draw = function() {

    guy.display();

    guy.walk();

};




해인이의 과학이야기 : 분자식의 이해(2)

https://www.youtube.com/watch?v=tg9QoyP3isw

'칸아카데미 > 화학' 카테고리의 다른 글

분자식의 이해(3)  (0) 2018.04.01
분자식의 이해(1)  (0) 2015.10.01

해인이의 과학이야기:  생명의탄생



'칸아카데미 > 생물' 카테고리의 다른 글

유사분열의 단계  (0) 2018.04.01
생명과학>>크리스퍼  (0) 2015.10.04
세포  (0) 2015.10.03
유전법칙1  (0) 2015.10.01
감수분열  (0) 2015.10.01

                                                                 update 2015-9-39

Today, I learned Biology again. My dad showed me some great new videos about Biology today in youtube, since I have almost finished most stuff on KA.
The lecture was about the structure of DNA, my personal favorite.
The lesson showed me some great new stuff and cut of some worries that were on my mind. I will tell you some stuff as well.
Francis Crick and James Watson - The famous duo who first made the model of a double helix DNA, the first inspiration was by a chemist named Rosalind Franklin. She discovered how the DNA sort of looked like when testing a strand of DNA with X - Ray crystallography, it looked like an X shape with an ellipse black background.
These are the Data - Proofs that Crick and Watson used for their famous double - helix model :

#1 - By looking at the X shape of the DNA Molecule, we could highly assume that it is a double helix - like so : XXXXXXX (Look at the pattern, do you see the double helix when you flip it in 90 degrees?)

#2 - When Crick examined the DNA with X - Ray crystallography, he discovered that when you flip it to 180 degrees, a frequent pattern was discovered.
This generally proves that the DNA strands - They are non - parallel to each other.
Example :
----> ->> <----
----> ->> <----
But :
----> ->> <----
<---- ->> ---->

The second one describes a pattern to you, doesn't it?

#3 - There is something called "Chargaff's law" (or the least I think it is, maybe it's rule.....  which says: The % of Adenine is equal to the % of Thymine, and the % of Cytosine is equal to the % of Guanine.

#4 - That time, there was a 'Fight' over the four arrangements - the new one was the Keto and Amino arrangements and the "betting" original ones were the Enol and Amide arrangements.
(To be honest, I really didn't diddle with those arrangements a lot, sorry about that.)
As a result, the new arrangements has won the game. Which gave the Crick and Watson duo a better 'chance' to prove that the DNA was shaped like a double helix.

Those are the Proofs of how the famous double helix DNA molecule model was formed!
Now, for my critical part - You do remember that I said "The lesson showed me some great new stuff and cut of some worries that were on my mind!" right?
Well, I'll tell you those "Stuff" that disabled my mind frequently. And I also hope you won't be in the same situation I had.
The problem's name is called " 5` to 3` errors " and the answer was pretty easy then I thought. here it is:

Error 1 - We all know when DNA is replicating, the 5` end and 3` end pairs splits from each other, then the RNA primase starts the leading strand and the lagging strand and then DNA polymerase and then ligase... you know the rest, don't ya?
Well, the thing is, I didn't know how could you prove that why did the 5` matched with the 3` and why is there no such thing as 3` or 1` or maybe 2` ends.
Because my intuition of replication of DNA's exampling DNA model was quite "Horrible - graphic"ed, I had to ask a lot of question that times and then.
Proof: Look back at Data proof number 2, you can know that the backbone(Sugar and Phosphate) is Non - Parallel to each other.
That proves that the starting and ending strand is gonna be different!

Error 2 - Look at the picture with the sky - blue backbones and the Nitrogenous pairs, do you see it? I do.
Well, if you look at the "Backbones" that I just said, the place that holds the base pairs A, T, C, G. that place is the 1` place. Now all you have to do is count clockwise! then you can see the pattern!
Note: The 5` end is a bit below where the big yellow P is placing.

There you go! That's all of the stuff I learned today, and I will come back with some more "Refreshing" news! :
By Jane Kim  <<해인이가>>

,



'생명과학 > Biology' 카테고리의 다른 글

Is DNA the genetic material?  (0) 2015.10.29
The gene map and interference  (0) 2015.10.17
The "Advanced source" of DNA replication.  (0) 2015.10.12
the structure of DNA>>Advanced way  (0) 2015.10.04
생명과학>>The structure of DNA  (0) 2015.10.04

+ Recent posts