`

ECE 3340 - Extra learning material

The Wuhan 2019 Novel Coronavirus epidemic

University of Houston                                           Han Q. Le (c)

Summary

There is a simple approach to estimate the number of Wuhan residents who have exhibited symptoms of 2019-novCoV by using the population of Wuhan residents or visitors who traveled from Wuhan to other countries as a sampled population.

Unfortunately, while the number of infected cases of Wuhan residents/return visitors flying out of China is reported, which is ~140 as of 2/2/2020, the total number of Wuhan residents/return visitors in all these flights are not reported. However, one can make a reasonable assumption about these flier population, such as from 15,000 to 100,000, and calculation can be made to project a range of estimates for the actual number of infected, symptomatic cases of Wuhan residents.

Below shows the 95%-confidence estimate of the range of symptomatic infected Wuhan residents as a function of the number of Wuhan residents/visitors flying out of China, which include the ~140 known cases of infection. There is one minor data set from Japan: 3 Japanese nationals are infected among 560 who were repatriated from Wuhan. The low-sample-population statistics of Japan data doesn't allow precise estimate, but it covers the entire range of reasonable estimates of flyer population from such a large city over a couple-week period. (e. g. 14 days with few thousand international destinations per day).

Note that as of 2/2/2020, the reported cases in all of China is just below 15,000, which is at the very low-end of all estimates. At the high-end estimate, the infected population can reach 100,000. If the silent carriers (those infected without symptoms) is 1 - 2 times of those with symptoms, the net infected population can reach several 100,000.

Conclusion, it is likely that the actual number of cases in Wuhan is substantially higher than the figure of 14,400 as of 2/2/2020.

0. Overview

This is an example for us to learn about Binomial Distribution and practicing computer simulation. The topic is a part of our Lecture Topic 10: Stochastic Phenomena, Probability, Monte Carlo Methods, (although we will not get as in-depth into binomial distribution as normal distribution and Poisson distribution, since the latters are more important to us).

1. Introduction

1.1 Overall situation

Consider this: We have a population, some with infection BUT asymptomatic, and among them, some with definitive symptoms. We wish to build a model for this.

For example, below is a simulation of 10,000 dots, the symptomatic % is 0.52%. For now, it is just a number for simulation. If we imagine each dot represents 1,100 people, then it is a model of 11 million people (the population of Wuhan), and 52*1100 = 57,000 Wu-han residents exhibit the symptoms, and a larger fraction are silent carriers, not yet show any symptom.

The key data we need to simulate is the proportion of people with symptoms who left Wuhan to other countries. 

Although there are reported number of cases of Wuhan-origin people who flew out of China, e. g. ~120-140 people in other countries, there has been no report of the total number of Wuhan residents on the flights. Based on the estimate number of daily international flights out of such a large and international city like Wuhan, and with an estimate of 250 - 400 passengers per flight, we can guess that ~120-140 people may represent anywhere from 0.1 to 1%.

A most definitive data is that “Three Japanese nationals among more than 560” evacuated from Wuhan have the disease. This represents a number of 0.54% that is inline with the 0.1 - 1 % guesstimate window.

1.2 Problem description

Below illustrates a well-known concept of a statistical problem: when we take a small sample out of a large population with a Bernouilly process, the estimate of the proportion can be very inaccurate, a vexing problem in social science, especially for surveying/polling social issues or political decisions (elections).

More importantly, this area of statistical science is essential in business and commerce, or customer-analytics when a company like Amazon, Google, or Facebook tries its best to estimate the probability of a particular ad would generate a pageview click or a sale with the customers.

In this case, there is another layer of estimation. A number of people who are virus carriers and vectors (an agent that carries and transmits infectious disease) have not developed the sympton, aren’t aware of their status, and are not tested. These are silent carriers.

We can define the proprotion of silent carriers (fraction of people that are infected) as p, and let ρ be the proportion of those infected with symptoms. Then, given a propulation N (e. g. the population of Wuhan),
the infected population is:   p N
the symptomatic population is  ρ p N

Below is the output of the same simulation model as the above, but the silent carriers are now shown as yellow dots:

Here, it is optimistically assume that ρ=40%, in other words, for every person who exhibits symptoms, there are 2.5 total individuals infected, and not counting the one exhibits symptoms, there are 1.5 other infected individuals who don’t. With a model, we can vary these parameters.

What do we want to learn out of this? We will learn how to use Binomial Distribution theory with Bayesian inference to estimate what the symptomatic population is and what the total infected population is of Wuhan.

4. Bernouilly & binomial model for the 2019-nCoV case

Consider this: We have a population, some with infection BUT asymptomatic, shown as yellow dots, and among them, sone with definitive symptoms shown as magenta dots. We use Bernouilly distribution to simulate.

4.1 Graphics illustration with Bernouilly model

Code

Block[{INFECTillustrDEMO, NEWSIM,pold,ρold
,ns,pop,popgr,popinfE,popsympE,infset,infindex,popinf, infFrac
,sympset,popsymp,sympFrac,sympindex,sympGr,silentindex,infGr
,HIDECARRIER
}
,Manipulate[
If[TrueQ[INFECTillustrDEMO== ]
,Manipulate[
If[TrueQ[NEWSIM] || !TrueQ[{pold,ρold}=={p,ρ}],
popinfE=p*pop; popsympE=ρ*popinfE;
infset=RandomVariate[BernoulliDistribution[p],pop] ;
infindex=Flatten @ Position[infset,1];
popinf=Length[infindex];
infFrac=1.*popinf/pop;
sympset=RandomVariate[BernoulliDistribution[ρ],popinf] ;
popsymp=Total[sympset];
sympFrac=1.*popsymp/pop;
sympindex=Transpose[Select[Transpose[{infindex,sympset}],#[[2]]==1 &]][[1]];
(* hinf=Hue[0.15+(1-#),1,#] & /@ infset ; *)
sympGr=Graphics[{Hue[0.87,0.8,1,1],Table[Disk[{Floor[m/ns],Mod[m,ns]},0.55],{m,sympindex}]}];
silentindex=Complement[infindex,sympindex];
infGr=Graphics[{Hue[0.15,1,1,1],Table[Disk[{Floor[m/ns],Mod[m,ns]},0.55],{m,silentindex}]}];;
NEWSIM=False; {pold,ρold}={p,ρ};
,];

Column[{Grid[{{Button["hide/show silent carriers",HIDECARRIER=!HIDECARRIER]
,"infected","symptomatic"}
,{,popinf,popsymp}
,{,"infected %","symptomatic %"}
,{,NumberForm[100*infFrac,{4,3}],NumberForm[100*sympFrac,{4,3}]}
}
,BaseStyle->{20, FontFamily->"Calibri"}, Frame-> All]
,Show[popgr,sympGr,If[TrueQ[HIDECARRIER],bogusgraphics,infGr]
,ImageSize-> 600]
}]

,Grid[{{Button["Run simul",NEWSIM=True]
,Control[{{p,0.0125,"infected\nproportion"},0.001,0.05, ImageSize-> 200}]
,Control[{{ρ,0.4,"symptom\nproportion"},0.1,0.5, ImageSize-> 200}]}}]
]
,"slide to start"]
,Grid[{{Control[{{INFECTillustrDEMO,,},{,},Toggler}]
,Item[Style["Graphics illustration of symptomatic
infected population and silent carrier population",18,FontFamily->"Century Gothic"],Background->Hue[0.75,0.25,1]]}},Frame-> True,FrameStyle->White]
,Initialization:>{
ns=100; pop=ns^2;
popgr=Graphics[{Black,Table[Disk[{i,j},0.55],{i,ns},{j,ns}]},ImageSize-> 600];
NEWSIM=True;HIDECARRIER=True;
bogusgraphics=Graphics[{PointSize[0.0001],Point[{0,0}]}]
}]
]

4.2 Consideration on estimating Bernouilly probability

There are two methods of obtaining the Bernouilly probability
                                            q = p ρ
where    p: the Bernouilly probability to be infected for a given population (Wuhan), and 
              ρ: the Bernouilly probability for an infected person (the p-population above) to exhibit obvious symptoms.
In the future, if everyone suspected is tested even without symptoms, and assuming that the test has high accuracy, then, only p is relevant and one needs not be concerned with ρ. However, for the time being, q is the only parameter with measurements.

If we take as an example, 3 Japanese out of 560 flown out of Wuhan exhibited illness, then:

(3./560)

Or:                                         q=0.54%.

Immediately, we can apply binomial distribution to this sample alone, and infer that the standard of deviation (see binomial distribution lecture) of this estimate is:    σ= (Sqrt[((q (1-q))/M)])

(Sqrt[((q (1-q))/M)])  /. q-> (3./560) /. M-> 560

Or, we can write:                q=0.0054 ±0.003

However, we can attempt to include all other cases outside China. According to 2/2/2020 WHO Situation Report-13

Let’s assume that of 146 cases outside China, a few are local transmission, and the rest are Wuhan fomer residents flying out of China or after visiting Wuhan, let’s round it up ~140. As a function of all Wuhan residents/visitors:

pWH=140.; popWH=11000. ; (* unit 1000 *)
conflev=0.95 ; σFconf=x /. FindRoot[0.5(Erf[(x/(Sqrt[2]))]+1)==0.5(1+conflev),{x,1.}] ;
Mjp=560; mijp=3; qjp=(mijp/Mjp);
σjp=(Sqrt[qjp*(1.-qjp)/Mjp]) ;
normjpF=Exp[LogGamma[Mjp+2.]-LogGamma[mijp+1.]-LogGamma[Mjp-mijp+1.]];
confIntjp={a,b} /. (Quiet @ FindRoot[{normjpF*(Beta[b,1.+mijp,1+Mjp-mijp]-Beta[a,1.+Mjp,1+Mjp-mijp])== conflev
,qjp  Mjp Log[a]+(Mjp-mijp)Log[(1-a)]==mijp Log[b]+(Mjp-mijp)Log[(1-b)]},{{a,Max[0.5  qjp, qjp-3 σjp], qjp-1 σjp},{b,qjp+1σjp, qjp+3 σjp}}]) ;
jpEst=qjp*popWH;
jpEstLog=Log[jpEst] ; jpUpLoLog=Log[confIntjp* popWH];
jpX=pWH/qjp;
japanGr=Graphics[{Hue[0.75,1,1,1],Thickness[0.005],Dashed
,Line[{{15000,jpEstLog},{jpX,jpEstLog}}]
,Thickness[0.02],Dashing[{1,0}],Hue[0.77,1,0.8,1]
,Line[{{jpX, jpUpLoLog[[1]]},{jpX,jpUpLoLog[[2]]}}]
,Table[Line[{{jpX-2500,s},{jpX+2500,s}}],{s,jpUpLoLog}]}];
qGest[nP_]:= (pWH/nP);σGest[nP_]:=(Sqrt[(pWH/(nP^2))(1-(pWH/nP))]) ; 
Show[LogPlot[{popWH qGest[nAll],popWH(qGest[nAll]+σFconf * σGest[nAll])
,popWH(qGest[nAll]-σFconf * σGest[nAll])}
,{nAll,15000,100000.}, PlotRange-> All
,PlotStyle->{{ Thick,Red},{Thickness[0.005],Dashed,Hue[0.85,1,0.6]}
,{Thickness[0.005],Dashed,Hue[0.85,1,0.6]}}
,Filling-> {2-> {{3},Hue[0.07,1,1,0.5]}}
,FrameTicks->{Automatic,{15,20,35,50,80,100,150,200}}
, Frame-> True, GridLines->Automatic
,LabelStyle->{14,Black,FontFamily->"Arial"}
,FrameLabel->(Style[#,18,Black,FontFamily->"Calibri"
,LineSpacing->{0,18}] &
/@ {"estimate of Wuhan residents/visitors\nflying to other countries"
,""})]
,japanGr
,PlotLabel->Style["estimated Wuhan symptomatic infected
population in 1,000 - on Log scale)",22,Black,FontFamily->"Calibri"
,LineSpacing->{0,24}]
,Epilog->{Inset[Grid[{{Style["orange-shaded region shows
95% confidence of the estimate
(based on ~140 infected)",Black,18,FontFamily->"Calibri"
,LineSpacing->{0,18}]}}
,Frame-> True,FrameStyle->White, Background->Hue[0.13,0.8,1,0.75]]
,ImageScaled[{0.67,0.82}]]
,Inset[Grid[{{Style["Japan-data Bayesian estimate
of 95% confidence interval"
,White,18,FontFamily->"Calibri"
,LineSpacing->{0,18}]}}
,Frame-> True,FrameStyle->White
, Background->Hue[0.67,1,0.5,0.75]],ImageScaled[{0.5,0.2}]]}
,AspectRatio->1., ImageSize->500]

The essence of this is that regardless the EXACT number of total Wuhan residents/visitors who flew out of Wuhan to other countries, the range of the 95%-confidence estimate is tight number because of reasonable population statistics (10s of thousand). This means that as soon as the the actual number of Wuhan resid/visit is available, one can get a decent estimate of symptomatic infection rate q.

4.3 Modeling of infected population with Bayesian binomial distribution based on Japan data

There are two common methods of using the measured Bernouilly proportion to obtain a binomial model: maximum likelyhood and Bayesian. Here, we will choose only the Bayesian method. Both actually converge together with large sampled population.

The plot for Japan data is based on the following:
            P[x|(Subscript[r, m])]=((Gamma[M+2])/((Gamma[-(Subscript[r, m]) M+M+1]) (Gamma[(Subscript[r, m]) M+1])))  (x^((Subscript[r, m]) M))  (((1-x))^(M (1-(Subscript[r, m])))) 
where:              M=560 (evacuees); (Subscript[r, m])=((3 (infected))/M)
The 95% confidence interval is determined as [(Subscript[c, lo])    (Subscript[c, hi])]
where:                  P[(Subscript[c, lo])|(Subscript[r, m])]=P[(Subscript[c, hi])|(Subscript[r, m])]  
                       (∫_(Subscript[c, lo])^(Subscript[c, hi]))P[x|(Subscript[r, m])]dx =  0.95

The numerical values of the interval boundaries are:

confIntjp

which is between 0.135%  to 1.38%

popWH=11000. ; Mjp=560; mijp=3; qjp=(mijp/Mjp);
σjp=(Sqrt[qjp*(1.-qjp)/Mjp]) ;
normjpF=Exp[LogGamma[Mjp+2.]-LogGamma[mijp+1.]-LogGamma[Mjp-mijp+1.]];
conflev=0.95;
confIntjp={a,b} /. (Quiet @ FindRoot[{normjpF*(Beta[b,1.+mijp,1+Mjp-mijp]-Beta[a,1.+Mjp,1+Mjp-mijp])== conflev
,qjp  Mjp Log[a]+(Mjp-mijp)Log[(1-a)]==mijp Log[b]+(Mjp-mijp)Log[(1-b)]},{{a,Max[0.5  qjp, qjp-3 σjp], qjp-1 σjp},{b,qjp+1σjp, qjp+3 σjp}}]) ;
pmx=((Gamma[Mjp+2])/(popWH*(Gamma[-mijp+Mjp+1]) (Gamma[mijp+1]))) (qjp^mijp)  (((1-qjp))^((Mjp-mijp)));
{xconfLo,xconfHi}=confIntjp*  popWH;
confGr=Graphics[{Black,Dashed,Thickness[0.0035]
,Line[{{xconfLo,0},{xconfLo,pmx}}]
,Line[{{xconfHi,0},{xconfHi,pmx}}]
,Red,Thickness[0.0075],Arrowheads[{-0.075,0.075}]
,Arrow[{{xconfLo,0.45 pmx},{xconfHi,0.45 pmx}}]
,Text[Style["95%-confidence
interval",Black,18,FontFamily->"Calibri"
,LineSpacing->{0,18}]
,{Mean[{xconfLo,xconfHi,qjp*popWH}],0.35 pmx}]

}];

Show[Plot[{If[x<xconfLo,((Gamma[Mjp+2])/(popWH*(Gamma[-mijp+Mjp+1]) (Gamma[mijp+1]))) ((((x/popWH)))^mijp)  (((1-(x/popWH)))^((Mjp-mijp))),]
,If[xconfLo≤ x≤ xconfHi
,((Gamma[Mjp+2])/(popWH*(Gamma[-mijp+Mjp+1]) (Gamma[mijp+1]))) ((((x/popWH)))^mijp)  (((1-(x/popWH)))^((Mjp-mijp))),]
,If[xconfHi< x,((Gamma[Mjp+2])/(popWH*(Gamma[-mijp+Mjp+1]) (Gamma[mijp+1]))) ((((x/popWH)))^mijp)  (((1-(x/popWH)))^((Mjp-mijp))),]
}
,{x,0,0.02*popWH},PlotRange->{0,All}
,PlotStyle->{{Thickness[0.01],Black}
,{Thickness[0.01],Hue[0.,1,1,1]}
,{Thickness[0.01],Black}}
,Filling-> {1-> {0,Hue[0.07,1,1,0.65]}
,2-> {0,Hue[0.45,1,1,0.55]}
,3-> {0,Hue[0.07,1,1,0.65]}}   ]
,confGr
,PlotLabel->Style["Probability of infected Wuhan residents
based on Bayesian binomial distribution inferred
from Japan evacuees data 2/2/2020",22,Black,FontFamily->"Calibri"
,LineSpacing->{0,24}]
, Frame-> True, GridLines->Automatic
,LabelStyle->{14,Black,FontFamily->"Arial"}
,FrameLabel->(Style[#,18,Black,FontFamily->"Calibri"
,LineSpacing->{0,18}] &
/@ {"infected Wuhan residents (in 1,000)"
,"probability density/1,000"})
,ImageSize-> 500]

2. Background: Categorical Variable (excerpted from Lecture) - no need to read for this case, but for reference.

Skip to Section 4 to see calculation.

2.1 A quick primer/review

Consider a typical financial statement below:

Each colum is a variable. “Date” and “Amount” are obviously numerical variables, the variables of which the values are numbers. Same are “Total”, “Business” and “Personal”. But other columns are not, they have “categories” as the entries. It is just as important to know what “category” that money is associated with. Remove those columns with categories, we would be clueless what the various amounts are for. Hence, categorical data are just as important as numerical. A lot of so-called “personalized financial analysis” done by banks are just to group or classify various monetary quantities into categories.

But not just finance, almost everything else not science and engineering involves “categorical” data as the norm.

Let’s take a look at the dataset that we have worked on before known as Credit below:

This dataset has 11 variables (not counting the 1st column, which is just the record count index). For the 1st 6 variables (columns 2-7), the variables are numerical, having continuous real values (integers are a subset of real numbers, unless used to code for categories). For columns 8-11, the variables have values that are categories, or we say they are categorical.

Variable “gender” (column 8) has only 2 values, which are categorical and not numerical. Of course we can make it numerical by assigning “female”-> 0 and “male” -> 1. But that is NOT fundamentally numerical. We can just as arbitrarily assign values: “female”-> 3.14.159 and “male” ->2.7183. In other words, assigning numerical values to a categorical variable DOESNOT make it numerical. It is only for convenience but does not change the nature of the variable.

Besides “gender”, the same are for “student status” and “marial status”, both have values “Yes” or “No”. Variable “ethnicity” has three categories as shown.

2.2 Subtypes “ordinal” and “nominal”

In general, a variable can have as many categories as needed, such as credit score (shown are 5 values, from “very poor” to “exceptional”)

This is an example showing that a numerical, continuous real-value variable can be converted into a categorical type just by choice, such as the above: the credit score is assigned into one of 5 categories.

A simple exercise

Consider another simple example. Suppose we want to collect the age data of online customers. If we collect everyone’s actual age, we will have continuous real-value data. We may have a distribution of the values as shown below:

agesim0=Select[RandomVariate[NormalDistribution[35.,15.],500],18≤ #≤ 80 &];
Histogram[agesim0]

But sometimes, there is no need for the actual continuous values, because it is sufficient to group customers into age range. For example, we may need to know only whether a customer is: under 25 (young), between 25-37 (middle), or 38-50 (mature), or older (senior). Then, instead of a histogram as above, we have the statistics of categories:

catage1={"young","middle","mature","senior"};catrange1={0,25,37,50,∞};
agecatdat=Table[Length @ Select[agesim0,catrange1[[i]]<#≤ catrange1[[i+1]] &]
,{i,Length[catrange1]-1}];
BarChart[agecatdat,ChartLegends->catage1, ChartStyle->"Pastel"]

One of a main reason for converting a continuous value variable into categorical type is often for the sake of simplification. Driver insurance premium, for example is computed based on one’s age group like credit score.

Consider the credit score again. Although each client has a continuous real-value credit score, e. g. 752, the only thing that matters in the end is which category the client belongs to. Financial decision, such as loan approval and interest rate is set for each category, and all scores within the same category are essentially equivalent. Hence, it is simpler to classify clients into categories.

2.3 Common graphic presentation

So, what statistics do we use to handle categorical values? For continuous values, we have distributions such as Poisson, Normal, Laplace, LogNormal etc. For category, all we have is % or fraction (* in common literature, another term for this is “proportion”, however, here, we will use the term fraction, the reason will be explained later below), for example:

agefrac=1. agecatdat/Length[agesim0];
PieChart[agefrac,ChartLegends->catage1, ChartStyle->"Pastel"
,ChartLabels->Table[Style[catage1[[i]]<>"\n("<>ToString[NumberForm[100.agefrac[[i]],{3,1}] ]<>" %)" ,18, Bold]
,{i,Length[agecatdat]}]]

Earlier, we learned that if we can model a continuous variable with a known distribution (e. g.Gaussian, or Laplace, or Poisson, etc. ), we can obtain the relevant parameters such as mean, SD, of β coef...  to do a model fit.

The question is, for discrete/categorical data, what do we do to simulate a distribution based on the data? The answer is Bernouilly distribution. Consider the example below.

3. Bernouilly process and binomial distribution demo - for quick review only

Skip to Section 4 to see calculation.

3.1 Basics

If you have been through previous lessons involving Bernouilly and Binomial distribution, below is a summary. If you wish more details, go to Lecture 4.

Suppose we flip a fair coin, the chance is 50-50 for head and tail. The outcome is said to have Bernouilly distribution with probability ρ=0.5. Roll a dice, the outcome of a specific number has Bernouilly distribution with ρ=1/6. Bernouilly distribution is can be a general concept for all discrete-outcome events. Recall previous examples involving roulette:

Any bet in the roulette payoff table above is an outcome that can be simulated with Bernouilly distribution.

Let’s consider a very simple example that we will use through out this note. Suupose a store near a university campus wants to monitor their customers’ profiles. First, the store wants to know how many of their customers are students so that they can develop a promotion/discount policy. After 10,000 customers, we notice 30% are students. Then, we say that there is 0.3 chance for a customer to be a student, and 0.7 chance to be non-student.
We can model the customer category like this:
- student: BD with ρ=0.3
- non-student: BD with ρ=0.7

Consider a group of 10 customers, how many of them are students, how many are not? This is a simple simulation:

pw=0.3;ncust=10; SeedRandom[Floor @ AbsoluteTime[]];
custgen=RandomVariate[BernoulliDistribution[pw],ncust];
custG=Table[If[u==1,Item[Style["St",White,16],Background->Hue[0.85,0.5,0.5]]
,Item[Style["NS",White,16],Background->Hue[0.6,0.7,0.7]]],{u,custgen}];
Grid[{{"raw data","contingency table"}
,{Grid[Partition[custG,10,10,1,""]]
,Grid[{{"student","not-st"},{Total @ custgen,ncust-(Total @ custgen)}}
,Frame-> All]}}]

Run it several times, we see that the proportion of non-stud to student is NOT always 7-3. There are statistical fluctuations as expected. Now consider 1000 customers, divided into 100 groups of 10 each, what is the number of students in each group? This is the same principle as flipping a fair coin. If we flip the coin 10 times, we can expect 5H, 5T on the average, but that does not always happen on every try. We can have 7H, 3T for one try, and 4H, 6T the next. What are the statistical properties of this randomness? Let’s examine a bit more elaborate simulation as below.

pw=0.3;ncust=10;SeedRandom[Floor @ AbsoluteTime[]];
nst=Table[custgen=RandomVariate[BernoulliDistribution[pw],ncust];
Total @ custgen,{i,100}];
{μw0,σw0}=1.{Mean[#],StandardDeviation[#]} & @ nst;
Grid[{{"raw data","histogram"}
,{Grid[Partition[nst,10,10,1,""],Frame-> All, BaseStyle->{18,FontFamily->"Calibri"}]
,Histogram[nst
,ChartStyle->Hue[0.35,1,1,0.5]
,GridLines->{{μw0-σw0,μw0,μw0+σw0},Automatic}
,GridLinesStyle->{{Thickness[0.015],Red},Automatic}
,Epilog->Inset[Grid[{{"mean","SD"},{μw0,σw0}},BaseStyle->{14},Frame-> All]
,ImageScaled[{0.25,0.8}]]
, ImageSize->300]}}]

We see that while the mean of all groups is very close to the expected value of 3, there is significant deviation and the SD is large.

Another way to present it is to scale with respect to the population, which is the “percentage” or fraction: ((number of positive outcome)/(number of trials))
As a side note, the statistics term is “proportion” - for example, if 30% customers of a store are students, we will say the proportion of students is 0.3. However, most people always refer this quantity as “percentage” even if we don’t really express in terms of 
“percent,” i. e. 30%. People would ask “how many percents are students or what is the student fraction?”. It is OK to use whichever term that one is most comfortable with, but when we do computer simulation, the mathematical operation is to take “fraction”, Hence, we will use fraction or proportion interchangeably.

pw=0.3;ncust=10;SeedRandom[Floor @ AbsoluteTime[]];
nst=Table[custgen=RandomVariate[BernoulliDistribution[pw],ncust];
Total @ custgen,{i,100}];
{μw0,σw0}=1.{Mean[#],StandardDeviation[#]} & @ nst;
nstfr=1. nst/ncust;
{μwf0,σwf0}=1.{Mean[#],StandardDeviation[#]} & @ nstfr;
Grid[{{"raw data","count histogram","fraction histogram\n(proportion)"}
,{Grid[Partition[nst,10,10,1,""],Frame-> All, BaseStyle->{18,FontFamily->"Calibri"}]
,Histogram[nst
,ChartStyle->Hue[0.35,1,1,0.5]
,GridLines->{{μw0-σw0,μw0,μw0+σw0},Automatic}
,GridLinesStyle->{{Thickness[0.015],Red},Automatic}
,Epilog->Inset[Grid[{{"mean","SD"},{μw0,σw0}},BaseStyle->{14},Frame-> All]
,ImageScaled[{0.25,0.8}]]
, ImageSize->300]
,Histogram[nstfr
,ChartStyle->Hue[0.35,1,1,0.5]
,GridLines->{{μwf0-σwf0,μwf0,μwf0+σwf0},Automatic}
,GridLinesStyle->{{Thickness[0.015],Red},Automatic}
,Epilog->Inset[Grid[{{"mean","SD"},{μwf0,σwf0}},BaseStyle->{14},Frame-> All]
,ImageScaled[{0.25,0.8}]]
, ImageSize->300]}}]

If we take larger group size, say 100 instead of 10, surely we can expect that the relative SD should be smaller. In fact, if we have ∞ number of customers, then there should not be any fluctuation, SD=0 and the mean must be exactly 0.7*∞. But what is the distribution of the above? we’ll see that it is a binomial distribution. We now can have a more elaborate simulation so that we can study this statistics.

3.2 Simulation with Bernouilly distribution outcome: binomial

Code

Block[{RUNBERNsim10, popρold1,npopold1,npop
,RUNBERNsim11,ypop,ypfr,popfr,pgx,qgx
,nsold0,poparr0,poparr1,popΔ,μB0,σB0,prange0,μB1,prange1
,histbsim0,histbsim1,histbsimLog0,histbsimLog1,histboth,histdiff
}
,Manipulate[
If[TrueQ[BERNOUIDEMO1== ]
,

Grid[{{
Manipulate[
If[TrueQ[RUNBERNsim10] || !TrueQ[{popρold1,npopold1}=={popρ,npop}]
,
If[!TrueQ[{popρold1,npopold1}=={popρ,npop}],RUNBERNsim11=True,];
ypop=RandomVariate[BernoulliDistribution[popρ],npop];
ypfr=1.Total[ypop]/npop;
popfr={ypfr,1-ypfr};
pgx=Table[Total @ Take[popfr,i],{i,0,Length[popfr]}];qgx=Table[{0,1},{i,Length[pgx]}];
RUNBERNsim10=False;
{popρold1,npopold1}={popρ,npop};
,];

Column[{
ListPlot[ Transpose[{Range[npop],ypop}],PlotStyle->{Red}
,Filling->0, AspectRatio->0.35]
,Show[CategBlockGraph0[{pgx,qgx},{{"popul 1","popul 2"},},0,]
,Graphics[{Black,Thickness[0.02],Dashed,Line[{{popρ,0},{popρ,1}}]
,Table[Text[Style[popfr[[i]],20,Black,FontFamily->"Arial"]
,{0.5(pgx[[i+1]]+pgx[[i]]),0.5}]
,{i,1,Length[popfr]}]}]
,ImageSize-> 200]
}]

,Grid[{{Button["simulation",RUNBERNsim10=True]
,Control[{{npop,10},{10,25,100,250,500},ControlType-> SetterBar}]}
,{Item[OpenerView[{,Style["click to run
a new simulation" ,16,Italic,FontFamily->"Calibri"]
}],Background->Hue[0.15,0.3,1]]
,Item[OpenerView[{,Style["change npop and see how
the distribution spread varies" ,16,Italic,FontFamily->"Calibri"]
}],Background->Hue[0.77,0.3,1]]}}]
,Grid[{{Control[{{popρ,0.65,"pop fraction"},0.1,0.9, ImageSize-> 100}]}
(* ,{Control[{{p0,0.6,"mean CE"},0.4,0.8, ImageSize-> 100}]}
,{Control[{{Δp,0.10,"differential CE-non-CE"},0.,0.25, ImageSize-> 100}] } *)
}]
]
,Manipulate[
If[TrueQ[RUNBERNsim11] || !TrueQ[{nsold0}=={ns}]
,
poparr0=1. Table[Total @ RandomVariate[BernoulliDistribution[popρold1],npopold1]
,{i,ns}]/npopold1;
poparr1=1-poparr0;
popΔ=poparr1-poparr0;
μB0=popρold1;σB0=(Sqrt[popρold1(1-popρold1)/npopold1]);
prange0={Max[0,μB0-3σB0] , Min[1,μB0+3 σB0]};
μB1=(1-popρold1);
prange1={Max[0,μB1-3σB0] , Min[1,μB1+3 σB0]};
histbsim0=Show[Histogram[poparr0,Automatic,"PDF",PlotRange->{{0,1},All}
,ChartStyle->Hue[0.08,1,1,0.5] ]
,Plot[Quiet[((npopold1 (npopold1)!)/( (x*npopold1)!(npopold1(1-x)) !)) ((popρold1)^(x*npopold1)) (((1-popρold1))^((npopold1(1-x))))]
,{x,prange0[[1]],prange0[[2]]}
,PlotRange->{All,All},PlotStyle->Hue[0,1,0.85,0.8]
],PlotLabel->Style["population 1 distribution",14,Black,FontFamily->"Calibri"]];
histbsim1=Show[Histogram[poparr1,Automatic,"PDF",PlotRange->{{0,1},All}
,ChartStyle->Hue[0.3,0.7,1,0.5] ]
,Plot[Quiet[((npopold1 (npopold1)!)/( (x*npopold1)!(npopold1(1-x)) !)) ((popρold1)^((npopold1(1-x)))) (((1-popρold1))^(x*npopold1))]
,{x,prange1[[1]],prange1[[2]]}
,PlotRange->{prange1,All},PlotStyle-> Hue[0.37,1,0.65,0.8]

],PlotLabel->Style["population 2 distribution
= n-pop1",14,Black,FontFamily->"Calibri"]]; 
 
histbsimLog0=Show[Histogram[poparr0,Automatic,"LogPDF",PlotRange->{{0,1},All}
,ChartStyle->Hue[0.08,1,1,0.5] ]
,LogPlot[Quiet[((npopold1 (npopold1)!)/( (x*npopold1)!(npopold1(1-x)) !)) ((popρold1)^(x*npopold1)) (((1-popρold1))^((npopold1(1-x))))]
,{x,prange0[[1]],prange0[[2]]}
,PlotRange->{All,{(1./npopold1),All}},PlotStyle->Hue[0,1,0.85,0.8]

],Frame->True,GridLines->Automatic];

histbsimLog1=Show[Histogram[poparr1,Automatic,"LogPDF",PlotRange->{{0,1},All}
,ChartStyle->Hue[0.3,0.7,1,0.5] ]
,LogPlot[Quiet[((npopold1 (npopold1)!)/( (x*npopold1)!(npopold1(1-x)) !)) ((popρold1)^((npopold1(1-x)))) (((1-popρold1))^(x*npopold1))]
,{x,prange1[[1]],prange1[[2]]}
,PlotRange->{prange1,{(1./npopold1),All}},PlotStyle-> Hue[0.37,1,0.65,0.8]
],Frame->True,GridLines->Automatic]; 

histboth=Show[histbsimLog0,histbsimLog1, PlotRange-> All
,PlotLabel->Style["Log-scale charts show inverted parabolas:
this suggests Gaussian-like asymptotic",14,Black,FontFamily->"Calibri"]
, ImageSize-> 325];
histdiff=Histogram[popΔ,Automatic,"PDF",PlotRange->{All,All}
,ChartStyle->Hue[0.47,1,1,1], ImageSize-> 325 
,PlotLabel->Style["population difference (note: it remains a
a large spread even when ρ=0.5)",14,Black,FontFamily->"Calibri"]]; 
RUNBERNsim11=False;
{nsold0}={ns}
,];
Column[{
Item[Style["population distribution: this is known as
binomial distribution",16,Bold,Black,FontFamily->"Century Gothic"]
,Background->Hue[0.44,0.4,1]]
,Grid[{{histbsim0,histbsim1}}]
 ,histboth,histdiff }
,Alignment->Center]

,Grid[{{Button["run many samples",RUNBERNsim11=True]
,Control[{{ns,500},{500,1000,2000},ControlType-> SetterBar}]
}}]]
}}
,Alignment->Top]
,]

,Grid[{{Control[{{BERNOUIDEMO1,,},{,},Toggler}]
,Item[Style["Bernouilly demo 1: show binomial distribution",18,FontFamily->"Century Gothic"],Background->Hue[0.08,0.5,1]]}},Frame-> True,FrameStyle->White]
,Initialization:>{
Off[General::munfl];
CategBlockGraph0[{px_,qy_},{labx_,laby_},iopt_,parmL_]:=Block[{qm,qT,ftsz=14}
,qT=Transpose @ Table[Drop[q,1]-Drop[q,-1],{q,qy}];
qm=Table[Mean[q],{q,qT}];
qm=Table[Total @ Take[qm,i],{i,0,Length[qm]}];

If[ListQ[parmL] &&  Length[parmL]≥ 1,
If[TrueQ[parmL[[1]]>0],ftsz=parmL[[1]],];
(* If[Length[parmL]≥ 2  &&  TrueQ[parmL[[2]]>0],imgs=parmL[[2]],];
If[Length[parmL]≥ 3  &&  TrueQ[parmL[[3]]>0],aspr=parmL[[3]],]; *)
,];


If[TrueQ[iopt==1],
Graphics[{EdgeForm[Black],Table[Table[{Hue[((j-1)/(2Length[qy[[i]]]-1))+0.54,0.65,1,1]
,Rectangle[{qy[[i,j]],px[[i]]},{qy[[i,j+1]],px[[i+1]]}]},{j,Length[qy[[i]]]-1}]
,{i,Length[px]-1}]
,EdgeForm[]
,Table[{Hue[((i-1)/(2Length[px] -1))+0.05,0.7,1,0.2] 
,Rectangle[{0,px[[i]]},{1,px[[i+1]]}]},{i,Length[px]-1}]
,Table[Text[Style[labx[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{-0.1,0.5(px[[i]]+px[[i+1]])},{0,0},{0,1}]
,{i,Length[px]-1}]
,Table[Text[Style[laby[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{0.5(qm[[i]]+qm[[i+1]]),-0.1}]
,{i,Length[qm ]-1}] 
}]
,Graphics[{EdgeForm[Black],Table[Table[{Hue[((j-1)/(2Length[qy[[i]]]-1))+0.05,0.65,1,1]
,Rectangle[{px[[i]],qy[[i,j]]},{px[[i+1]],qy[[i,j+1]]}]},{j,Length[qy[[i]]]-1}]
,{i,Length[px]-1}]
,EdgeForm[]
,Table[{Hue[((i-1)/(2Length[px]+1))+0.54,0.7,1,0.2]
,Rectangle[{px[[i]],0},{px[[i+1]],1}]},{i,Length[px]-1}]
,If[Length[labx]>0
,Table[Text[Style[labx[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{0.5(px[[i]]+px[[i+1]]),-0.1}],{i,Length[px]-1}]
,{PointSize[0.0001],Point[{0,0}]}]
,If[Length[laby]>0
,Table[Text[Style[laby[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{-0.1,0.5(qm[[i]]+qm[[i+1]])},{0,0},{0,1}]
,{i,Length[qm ]-1}] 
,{PointSize[0.0001],Point[{0,0}]} ]
}]
]
];
}]
]

3.3 More than two outcomes: multinouilly

What if we roll a dice, or spin a roulette? we can have more than two outcomes. We can simulate raw data similarly to Bernouilly distribution used above with a variety of techniques. Below is a convenient one:

MultiNouilly[pin_,categ_,npopin_]:=Block[{pLoc,pAcc,sBMD,xRB,uBx,categLoc,exit},
(*  usage: pin is a list of probability of each category. If its sum is
<1, then difference 1-Total[pin] is assumed to be p of the last category.
p doesn't have to total to 1; in this case, (p/(Total[p])) is the list
of probabilities.
categ is the list of category. If blank, the categ will be "cat1", "cat2", etc.
npop is the population to be generated.
Example: pin={2,5,3}; categ= Null (no name); npop=1000
*)
If[!ListQ[pin] ,Goto[exit]
,pLoc=Select[pin,NumberQ[#]&]];
If[Length[pLoc]== 0,Goto[exit]
,If[Total[pLoc]≥ 1., pLoc=Drop[((1.*pLoc)/(Total[pLoc])),-1],]
];
pAcc=Table[Total[Take[pLoc,i]],{i,Length[pLoc]}];
If[ListQ[categ]
,If[ Length[categ]≥ Length[pin],categLoc=ToString /@ categ
,categLoc=Join[categ,Table["cat"<>ToString[i],{i,Length[pLoc]+1}] ]]
,categLoc=Table["cat"<>ToString[i],{i,Length[pLoc]+1}] 
];
xRB=Sort @ RandomReal[{0,1.},npopin];
sBMD={};
Do[uBx=Length @ Select[xRB,#<pAcc[[i]]&];
xRB=Drop[xRB,uBx];
sBMD=Join[sBMD,ConstantArray[categLoc[[i]],uBx]],{i,Length @ pAcc}];
sBMD=Join[sBMD,ConstantArray[categLoc[[Length[pLoc]+1]],npopin-Length[sBMD]]];
Do[sBMD=RandomSample[sBMD],{i,Max[2,Floor @ Log[2.,npopin]]}];
Label[exit];
sBMD
];

Here is an example: We want to simulate hits of a webpage. Below is the GoogleAnalytics data.

We can simulate 1000 hits based on this data (must execute the code for BernMulti above first)

devicecat={"desktop","mobile","tablet"}; pdat={195,80,4};
devpopsim=1000;
devicehit=MultiNouilly[ pdat,devicecat,devpopsim] ;
devtally=Tally[devicehit];
devtally=Table[ Select[devtally,#[[1]]==c&][[1]],{c,devicecat}];
devfrac=100.*Transpose[devtally][[2]]/devpopsim;
header={"platform","#","percentage (%)"};
Grid[{{"simulated data (1st 40)","tally"}
,{Grid[Partition[Take[devicehit,40],4,4,1,""],BaseStyle->{14,FontFamily->"Calibri"},Frame-> All]
,Grid[Join[{header}
,MapThread[Append,{devtally,devfrac}]]
,Frame-> All,BaseStyle->{20,FontFamily->"Calibri"}
,Background->{{Hue[0.15,0.3,1],,},{Hue[0.5,0.3,1],,}}]}}, Alignment-> Top]
BarChart3D[Transpose[devtally][[2]],ChartLegends->Transpose[devtally][[1]]
,ChartElementFunction->"Cube",ChartStyle->"Pastel"]

3.4 Simulation and demo of multinomial distribution

Below is an example of three main categories of user’s interests in Google Analytics. Each category has several sub-categories as shown. We will just generate a simulation for the 3 main (parent) categories: Affinity, In-Market, and Other.

Code

Block[{  RUNBERNsim20, popSρold2,npopold2,prelold2
,pmult,pmacc,ypop2,ytally,uy,catpop2, yp2fr,pgx2,qgx2
,RUNBERNsim21,poparrM2,nsold2,yarrM2,uyM2,μB2,ΣB2
,histbsimMs,histbsimMb,prangeM,ix,jx,kx,indxp
}
,Manipulate[
If[TrueQ[BERNOUIDEMO2== ] 
,

Grid[{{
Manipulate[
If[TrueQ[RUNBERNsim20] || !TrueQ[{popSρold2,prelold2,npopold2}=={popSρ,prel,npop}]
,
If[!TrueQ[{popSρold2,prelold2,npopold2}=={popSρ,prel,npop}],RUNBERNsim21=True,];
pmult=Min[Max[popSρ,0.1],0.9]*{prel,1-prel};
pmacc=Table[Total @ Take[pmult,i],{i,1,Length[pmult]}];;
ypop2=MultiNouilly[pmult,catpop2 ,npop] ;
ytally=Tally[ypop2];

ytally=Table[uy= Select[ytally,#[[1]]==c&];
If[Length[uy]>0,uy[[1,2]],0]
,{c,catpop2}];
yp2fr=1.ytally/npop;
pgx2=Table[Total @ Take[yp2fr,i],{i,0,Length[yp2fr]}];qgx2=Table[{0,1},{i,Length[pgx2]}];
RUNBERNsim20=False;
popSρold2=Min[Max[popSρ,0.1],0.9];
popSρ=popSρold2;
{popSρold2,prelold2,npopold2}={popSρ,prel,npop};
,];

Column[{
(* ListPlot[ Transpose[{Range[npop],ypop}],PlotStyle->{Red}
,Filling->0, AspectRatio->0.35]
,*)Show[CategBlockGraph0[{pgx2,qgx2},{catpop2,},0,]
,Graphics[{Black,Thickness[0.012],Dashed
,Table[Line[{{px,0},{px,1}}],{px,pmacc}]
,Table[Text[Style[yp2fr[[i]],20,Black,FontFamily->"Arial"]
,{0.5(pgx2[[i+1]]+pgx2[[i]]),0.5}]
,{i,1,Length[yp2fr]}]}]
,ImageSize-> 200]
}]

,Grid[{{Button["simulation",RUNBERNsim20=True]
,Control[{{npop,100},{25,100,250,500,1000},ControlType-> SetterBar}]}
,{Item[OpenerView[{,Style["click to run
a new simulation" ,16,Italic,FontFamily->"Calibri"]
}],Background->Hue[0.15,0.3,1]]
,Item[OpenerView[{,Style["change npop and see how
the distribution spread varies" ,16,Italic,FontFamily->"Calibri"]
}],Background->Hue[0.77,0.3,1]]}}]
,Grid[{{Control[{{popSρ,0.7,"pop fraction 1+2"},0.1,0.9, ImageSize-> 100}]}
 ,{Control[{{prel,0.6,"relative ρ 1&2"},0.1,0.9, ImageSize-> 100}]}
(*,{Control[{{Δp,0.10,"differential CE-non-CE"},0.,0.25, ImageSize-> 100}] } *)
}]
]
,Manipulate[

If[TrueQ[RUNBERNsim21] || !TrueQ[{nsold2}=={ns}]
,

poparrM2=Transpose @ Reap[Do[yarrM2=Tally @ MultiNouilly[pmult,catpop2,npopold2] ;
yarrM2=Table[uyM2= Select[yarrM2,#[[1]]==c&];
If[Length[uyM2]>0,1. uyM2[[1,2]],0.]
,{c,catpop2}]/npopold2;
Sow[Flatten[Table[Table[{yarrM2[[i]],yarrM2[[j]]},{j,i+1,Length[yarrM2]}]
,{i,1,Length[yarrM2]-1}],1]];
,{i,ns}]][[2,1]];

μB2=Join[pmult,{1-Total[pmult]}];
ΣB2=Table[Table[If[i==j,μB2[[i]](1-μB2[[i]])
,-μB2[[i]]μB2[[j]]],{j,Length[μB2]}],{i,Length[μB2]}]/npopold2;

prangeM=Table[ {Max[0,μB2[[i]]-3(Sqrt[ΣB2[[i,i]]])] 
, Min[1,μB2[[i]]+3 (Sqrt[ΣB2[[i,i]]])]}
,{i,Length[poparrM2]}];

histbsimMs=Table[Histogram3D[poparrM2[[i]],{12,12},"PDF",PlotRange->All
,ChartStyle->Hue[((i-1)/(Length[poparrM2]))+0.04,1,1,0.35]
,BoxRatios-> {1,1,0.7}, ImageSize-> 180]
,{i,Length[poparrM2]}]; 

 histbsimMb=Table[{ix,jx,kx}=indxp[[i]];Show[histbsimMs[[i]]
,Plot3D[Quiet[((npopold2^2)(npopold2)!  ((μB2[[ix]])^(x1*npopold2)) ((μB2[[jx]])^(x2*npopold2))((μB2[[kx]])^((1-x1-x2)*npopold2)))/( (x1*npopold2)!(npopold2 *x2) ! (npopold2*(1-x1-x2))!) ] 
,{x1,prangeM[[ix,1]],prangeM[[ix,2]]},{x2,prangeM[[jx,1]],prangeM[[jx,2]]} 
,PlotRange->All,Mesh-> False
,PlotStyle->{GrayLevel[0.95],Opacity[0.7]}
]]
,{i,Length[poparrM2]}];


RUNBERNsim21=False;
{nsold2}={ns}
,]; 

 Column[{
Item[Style["population distribution: this is known as
multinomial distribution (3 in this case)",16,Bold,Black,FontFamily->"Century Gothic"]
,Background->Hue[0.44,0.4,1]]
,Item[OpenerView[{,Style["For each sample population, the simulated fractions of an outcome
pair as indicated in left most column are tallied. Results of many
sample pops are plotted in the histograms. The right most column shows
the histogram vs its multinomial distribution, which fits as expected"
 ,16,Italic,FontFamily->"Calibri"]
}],Background->Hue[0.15,0.3,1]]
,Grid[MapThread[Prepend,{Join[{{"full scale","close-up"}},Transpose[{Show[#,PlotRange-> {{0,1},{0,1},All}]& /@ histbsimMs
,histbsimMb}]]
,Join[{"pop index"},Table[Style["pop"<>ToString[q[[1]]]<>
",pop"<>ToString[q[[2]]]
,14,FontFamily->"Century Gothic"],{q,indxp}]]}]
,BaseStyle->{20,FontFamily->"Calibri"}]

}
,Alignment->Center]

,Grid[{{Button["RUN simul again",RUNBERNsim21=True]
,Control[{{ns,500},{500,1000,2000},ControlType-> SetterBar}]
}}]]
}}
,Alignment->Top]
,]

,Grid[{{Control[{{BERNOUIDEMO2,,},{,},Toggler}]
,Item[Style["Bernouilly demo 2: show multinomial distribution",18,FontFamily->"Century Gothic"],Background->Hue[0.08,0.5,1]]}},Frame-> True,FrameStyle->White]
,Initialization:>{
Off[General::munfl];
RUNBERNsim20=True;
indxp={{1,2,3},{1,3,2},{2,3,1}};
catpop2={"pop1","pop2","pop3"}; 
MultiNouilly[pin_,categ_,npopin_]:=Block[{pLoc,pAcc,sBMD,xRB,uBx,categLoc,exit},
(*  usage: pin is a list of probability of each category. If its sum is
<1, then difference 1-Total[pin] is assumed to be p of the last category.
p doesn't have to total to 1; in this case, (p/(Total[p])) is the list
of probabilities.
categ is the list of category. If blank, the categ will be "cat1", "cat2", etc.
npop is the population to be generated.
Example: pin={2,5,3}; categ= Null (no name); npop=1000
*)
If[!ListQ[pin] ,Goto[exit]
,pLoc=Select[pin,NumberQ[#]&]];
If[Length[pLoc]== 0,Goto[exit]
,If[Total[pLoc]≥ 1., pLoc=Drop[((1.*pLoc)/(Total[pLoc])),-1],]
];
pAcc=Table[Total[Take[pLoc,i]],{i,Length[pLoc]}];
If[ListQ[categ]
,If[ Length[categ]≥ Length[pin],categLoc=ToString /@ categ
,categLoc=Join[categ,Table["cat"<>ToString[i],{i,Length[pLoc]+1}] ]]
,categLoc=Table["cat"<>ToString[i],{i,Length[pLoc]+1}] 
];
xRB=Sort @ RandomReal[{0,1.},npopin];
sBMD={};
Do[uBx=Length @ Select[xRB,#<pAcc[[i]]&];
xRB=Drop[xRB,uBx];
sBMD=Join[sBMD,ConstantArray[categLoc[[i]],uBx]],{i,Length @ pAcc}];
sBMD=Join[sBMD,ConstantArray[categLoc[[Length[pLoc]+1]],npopin-Length[sBMD]]];
Do[sBMD=RandomSample[sBMD],{i,Max[2,Floor @ Log[2.,npopin]]}];
Label[exit];
sBMD
];

CategBlockGraph0[{px_,qy_},{labx_,laby_},iopt_,parmL_]:=Block[{qm,qT,ftsz=14}
,qT=Transpose @ Table[Drop[q,1]-Drop[q,-1],{q,qy}];
qm=Table[Mean[q],{q,qT}];
qm=Table[Total @ Take[qm,i],{i,0,Length[qm]}];

If[ListQ[parmL] &&  Length[parmL]≥ 1,
If[TrueQ[parmL[[1]]>0],ftsz=parmL[[1]],];
(* If[Length[parmL]≥ 2  &&  TrueQ[parmL[[2]]>0],imgs=parmL[[2]],];
If[Length[parmL]≥ 3  &&  TrueQ[parmL[[3]]>0],aspr=parmL[[3]],]; *)
,];


If[TrueQ[iopt==1],
Graphics[{EdgeForm[Black],Table[Table[{Hue[((j-1)/(2Length[qy[[i]]]-1))+0.54,0.65,1,1]
,Rectangle[{qy[[i,j]],px[[i]]},{qy[[i,j+1]],px[[i+1]]}]},{j,Length[qy[[i]]]-1}]
,{i,Length[px]-1}]
,EdgeForm[]
,Table[{Hue[((i-1)/(2Length[px] -1))+0.05,0.7,1,0.2] 
,Rectangle[{0,px[[i]]},{1,px[[i+1]]}]},{i,Length[px]-1}]
,Table[Text[Style[labx[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{-0.1,0.5(px[[i]]+px[[i+1]])},{0,0},{0,1}]
,{i,Length[px]-1}]
,Table[Text[Style[laby[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{0.5(qm[[i]]+qm[[i+1]]),-0.1}]
,{i,Length[qm ]-1}] 
}]
,Graphics[{EdgeForm[Black],Table[Table[{Hue[((j-1)/(2Length[qy[[i]]]-1))+0.05,0.65,1,1]
,Rectangle[{px[[i]],qy[[i,j]]},{px[[i+1]],qy[[i,j+1]]}]},{j,Length[qy[[i]]]-1}]
,{i,Length[px]-1}]
,EdgeForm[]
,Table[{Hue[((i-1)/(2Length[px]+1))+0.54,0.7,1,0.2]
,Rectangle[{px[[i]],0},{px[[i+1]],1}]},{i,Length[px]-1}]
,If[Length[labx]>0
,Table[Text[Style[labx[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{0.5(px[[i]]+px[[i+1]]),-0.1}],{i,Length[px]-1}]
,{PointSize[0.0001],Point[{0,0}]}]
,If[Length[laby]>0
,Table[Text[Style[laby[[i]],ftsz,Black,FontFamily->"Century Gothic"]
,{-0.1,0.5(qm[[i]]+qm[[i+1]])},{0,0},{0,1}]
,{i,Length[qm ]-1}] 
,{PointSize[0.0001],Point[{0,0}]} ]
}]
]
];
}]
]

2019-nCoV RNA

rnaX0="1 attaaaggtt tataccttcc caggtaacaa accaaccaac tttcgatctc ttgtagatct
61 gttctctaaa cgaactttaa aatctgtgtg gctgtcactc ggctgcatgc ttagtgcact
121 cacgcagtat aattaataac taattactgt cgttgacagg acacgagtaa ctcgtctatc
181 ttctgcaggc tgcttacggt ttcgtccgtg ttgcagccga tcatcagcac atctaggttt
241 cgtccgggtg tgaccgaaag gtaagatgga gagccttgtc cctggtttca acgagaaaac
301 acacgtccaa ctcagtttgc ctgttttaca ggttcgcgac gtgctcgtac gtggctttgg
361 agactccgtg gaggaggtct tatcagaggc acgtcaacat cttaaagatg gcacttgtgg
421 cttagtagaa gttgaaaaag gcgttttgcc tcaacttgaa cagccctatg tgttcatcaa
481 acgttcggat gctcgaactg cacctcatgg tcatgttatg gttgagctgg tagcagaact
541 cgaaggcatt cagtacggtc gtagtggtga gacacttggt gtccttgtcc ctcatgtggg
601 cgaaatacca gtggcttacc gcaaggttct tcttcgtaag aacggtaata aaggagctgg
661 tggccatagt tacggcgccg atctaaagtc atttgactta ggcgacgagc ttggcactga
721 tccttatgaa gattttcaag aaaactggaa cactaaacat agcagtggtg ttacccgtga
781 actcatgcgt gagcttaacg gaggggcata cactcgctat gtcgataaca acttctgtgg
841 ccctgatggc taccctcttg agtgcattaa agaccttcta gcacgtgctg gtaaagcttc
901 atgcactttg tccgaacaac tggactttat tgacactaag aggggtgtat actgctgccg
961 tgaacatgag catgaaattg cttggtacac ggaacgttct gaaaagagct atgaattgca
1021 gacacctttt gaaattaaat tggcaaagaa atttgacacc ttcaatgggg aatgtccaaa
1081 ttttgtattt cccttaaatt ccataatcaa gactattcaa ccaagggttg aaaagaaaaa
1141 gcttgatggc tttatgggta gaattcgatc tgtctatcca gttgcgtcac caaatgaatg
1201 caaccaaatg tgcctttcaa ctctcatgaa gtgtgatcat tgtggtgaaa cttcatggca
1261 gacgggcgat tttgttaaag ccacttgcga attttgtggc actgagaatt tgactaaaga
1321 aggtgccact acttgtggtt acttacccca aaatgctgtt gttaaaattt attgtccagc
1381 atgtcacaat tcagaagtag gacctgagca tagtcttgcc gaataccata atgaatctgg
1441 cttgaaaacc attcttcgta agggtggtcg cactattgcc tttggaggct gtgtgttctc
1501 ttatgttggt tgccataaca agtgtgccta ttgggttcca cgtgctagcg ctaacatagg
1561 ttgtaaccat acaggtgttg ttggagaagg ttccgaaggt cttaatgaca accttcttga
1621 aatactccaa aaagagaaag tcaacatcaa tattgttggt gactttaaac ttaatgaaga
1681 gatcgccatt attttggcat ctttttctgc ttccacaagt gcttttgtgg aaactgtgaa
1741 aggtttggat tataaagcat tcaaacaaat tgttgaatcc tgtggtaatt ttaaagttac
1801 aaaaggaaaa gctaaaaaag gtgcctggaa tattggtgaa cagaaatcaa tactgagtcc
1861 tctttatgca tttgcatcag aggctgctcg tgttgtacga tcaattttct cccgcactct
1921 tgaaactgct caaaattctg tgcgtgtttt acagaaggcc gctataacaa tactagatgg
1981 aatttcacag tattcactga gactcattga tgctatgatg ttcacatctg atttggctac
2041 taacaatcta gttgtaatgg cctacattac aggtggtgtt gttcagttga cttcgcagtg
2101 gctaactaac atctttggca ctgtttatga aaaactcaaa cccgtccttg attggcttga
2161 agagaagttt aaggaaggtg tagagtttct tagagacggt tgggaaattg ttaaatttat
2221 ctcaacctgt gcttgtgaaa ttgtcggtgg acaaattgtc acctgtgcaa aggaaattaa
2281 ggagagtgtt cagacattct ttaagcttgt aaataaattt ttggctttgt gtgctgactc
2341 tatcattatt ggtggagcta aacttaaagc cttgaattta ggtgaaacat ttgtcacgca
2401 ctcaaaggga ttgtacagaa agtgtgttaa atccagagaa gaaactggcc tactcatgcc
2461 tctaaaagcc ccaaaagaaa ttatcttctt agagggagaa acacttccca cagaagtgtt
2521 aacagaggaa gttgtcttga aaactggtga tttacaacca ttagaacaac ctactagtga
2581 agctgttgaa gctccattgg ttggtacacc agtttgtatt aacgggctta tgttgctcga
2641 aatcaaagac acagaaaagt actgtgccct tgcacctaat atgatggtaa caaacaatac
2701 cttcacactc aaaggcggtg caccaacaaa ggttactttt ggtgatgaca ctgtgataga
2761 agtgcaaggt tacaagagtg tgaatatcac ttttgaactt gatgaaagga ttgataaagt
2821 acttaatgag aagtgctctg cctatacagt tgaactcggt acagaagtaa atgagttcgc
2881 ctgtgttgtg gcagatgctg tcataaaaac tttgcaacca gtatctgaat tacttacacc
2941 actgggcatt gatttagatg agtggagtat ggctacatac tacttatttg atgagtctgg
3001 tgagtttaaa ttggcttcac atatgtattg ttctttctac cctccagatg aggatgaaga
3061 agaaggtgat tgtgaagaag aagagtttga gccatcaact caatatgagt atggtactga
3121 agatgattac caaggtaaac ctttggaatt tggtgccact tctgctgctc ttcaacctga
3181 agaagagcaa gaagaagatt ggttagatga tgatagtcaa caaactgttg gtcaacaaga
3241 cggcagtgag gacaatcaga caactactat tcaaacaatt gttgaggttc aacctcaatt
3301 agagatggaa cttacaccag ttgttcagac tattgaagtg aatagtttta gtggttattt
3361 aaaacttact gacaatgtat acattaaaaa tgcagacatt gtggaagaag ctaaaaaggt
3421 aaaaccaaca gtggttgtta atgcagccaa tgtttacctt aaacatggag gaggtgttgc
3481 aggagcctta aataaggcta ctaacaatgc catgcaagtt gaatctgatg attacatagc
3541 tactaatgga ccacttaaag tgggtggtag ttgtgtttta agcggacaca atcttgctaa
3601 acactgtctt catgttgtcg gcccaaatgt taacaaaggt gaagacattc aacttcttaa
3661 gagtgcttat gaaaatttta atcagcacga agttctactt gcaccattat tatcagctgg
3721 tatttttggt gctgacccta tacattcttt aagagtttgt gtagatactg ttcgcacaaa
3781 tgtctactta gctgtctttg ataaaaatct ctatgacaaa cttgtttcaa gctttttgga
3841 aatgaagagt gaaaagcaag ttgaacaaaa gatcgctgag attcctaaag aggaagttaa
3901 gccatttata actgaaagta aaccttcagt tgaacagaga aaacaagatg ataagaaaat
3961 caaagcttgt gttgaagaag ttacaacaac tctggaagaa actaagttcc tcacagaaaa
4021 cttgttactt tatattgaca ttaatggcaa tcttcatcca gattctgcca ctcttgttag
4081 tgacattgac atcactttct taaagaaaga tgctccatat atagtgggtg atgttgttca
4141 agagggtgtt ttaactgctg tggttatacc tactaaaaag gctggtggca ctactgaaat
4201 gctagcgaaa gctttgagaa aagtgccaac agacaattat ataaccactt acccgggtca
4261 gggtttaaat ggttacactg tagaggaggc aaagacagtg cttaaaaagt gtaaaagtgc
4321 cttttacatt ctaccatcta ttatctctaa tgagaagcaa gaaattcttg gaactgtttc
4381 ttggaatttg cgagaaatgc ttgcacatgc agaagaaaca cgcaaattaa tgcctgtctg
4441 tgtggaaact aaagccatag tttcaactat acagcgtaaa tataagggta ttaaaataca
4501 agagggtgtg gttgattatg gtgctagatt ttacttttac accagtaaaa caactgtagc
4561 gtcacttatc aacacactta acgatctaaa tgaaactctt gttacaatgc cacttggcta
4621 tgtaacacat ggcttaaatt tggaagaagc tgctcggtat atgagatctc tcaaagtgcc
4681 agctacagtt tctgtttctt cacctgatgc tgttacagcg tataatggtt atcttacttc
4741 ttcttctaaa acacctgaag aacattttat tgaaaccatc tcacttgctg gttcctataa
4801 agattggtcc tattctggac aatctacaca actaggtata gaatttctta agagaggtga
4861 taaaagtgta tattacacta gtaatcctac cacattccac ctagatggtg aagttatcac
4921 ctttgacaat cttaagacac ttctttcttt gagagaagtg aggactatta aggtgtttac
4981 aacagtagac aacattaacc tccacacgca agttgtggac atgtcaatga catatggaca
5041 acagtttggt ccaacttatt tggatggagc tgatgttact aaaataaaac ctcataattc
5101 acatgaaggt aaaacatttt atgttttacc taatgatgac actctacgtg ttgaggcttt
5161 tgagtactac cacacaactg atcctagttt tctgggtagg tacatgtcag cattaaatca
5221 cactaaaaag tggaaatacc cacaagttaa tggtttaact tctattaaat gggcagataa
5281 caactgttat cttgccactg cattgttaac actccaacaa atagagttga agtttaatcc
5341 acctgctcta caagatgctt attacagagc aagggctggt gaagctgcta acttttgtgc
5401 acttatctta gcctactgta ataagacagt aggtgagtta ggtgatgtta gagaaacaat
5461 gagttacttg tttcaacatg ccaatttaga ttcttgcaaa agagtcttga acgtggtgtg
5521 taaaacttgt ggacaacagc agacaaccct taagggtgta gaagctgtta tgtacatggg
5581 cacactttct tatgaacaat ttaagaaagg tgttcagata ccttgtacgt gtggtaaaca
5641 agctacaaaa tatctagtac aacaggagtc accttttgtt atgatgtcag caccacctgc
5701 tcagtatgaa cttaagcatg gtacatttac ttgtgctagt gagtacactg gtaattacca
5761 gtgtggtcac tataaacata taacttctaa agaaactttg tattgcatag acggtgcttt
5821 acttacaaag tcctcagaat acaaaggtcc tattacggat gttttctaca aagaaaacag
5881 ttacacaaca accataaaac cagttactta taaattggat ggtgttgttt gtacagaaat
5941 tgaccctaag ttggacaatt attataagaa agacaattct tatttcacag agcaaccaat
6001 tgatcttgta ccaaaccaac catatccaaa cgcaagcttc gataatttta agtttgtatg
6061 tgataatatc aaatttgctg atgatttaaa ccagttaact ggttataaga aacctgcttc
6121 aagagagctt aaagttacat ttttccctga cttaaatggt gatgtggtgg ctattgatta
6181 taaacactac acaccctctt ttaagaaagg agctaaattg ttacataaac ctattgtttg
6241 gcatgttaac aatgcaacta ataaagccac gtataaacca aatacctggt gtatacgttg
6301 tctttggagc acaaaaccag ttgaaacatc aaattcgttt gatgtactga agtcagagga
6361 cgcgcaggga atggataatc ttgcctgcga agatctaaaa ccagtctctg aagaagtagt
6421 ggaaaatcct accatacaga aagacgttct tgagtgtaat gtgaaaacta ccgaagttgt
6481 aggagacatt atacttaaac cagcaaataa tagtttaaaa attacagaag aggttggcca
6541 cacagatcta atggctgctt atgtagacaa ttctagtctt actattaaga aacctaatga
6601 attatctaga gtattaggtt tgaaaaccct tgctactcat ggtttagctg ctgttaatag
6661 tgtcccttgg gatactatag ctaattatgc taagcctttt cttaacaaag ttgttagtac
6721 aactactaac atagttacac ggtgtttaaa ccgtgtttgt actaattata tgccttattt
6781 ctttacttta ttgctacaat tgtgtacttt tactagaagt acaaattcta gaattaaagc
6841 atctatgccg actactatag caaagaatac tgttaagagt gtcggtaaat tttgtctaga
6901 ggcttcattt aattatttga agtcacctaa tttttctaaa ctgataaata ttataatttg
6961 gtttttacta ttaagtgttt gcctaggttc tttaatctac tcaaccgctg ctttaggtgt
7021 tttaatgtct aatttaggca tgccttctta ctgtactggt tacagagaag gctatttgaa
7081 ctctactaat gtcactattg caacctactg tactggttct ataccttgta gtgtttgtct
7141 tagtggttta gattctttag acacctatcc ttctttagaa actatacaaa ttaccatttc
7201 atcttttaaa tgggatttaa ctgcttttgg cttagttgca gagtggtttt tggcatatat
7261 tcttttcact aggtttttct atgtacttgg attggctgca atcatgcaat tgtttttcag
7321 ctattttgca gtacatttta ttagtaattc ttggcttatg tggttaataa ttaatcttgt
7381 acaaatggcc ccgatttcag ctatggttag aatgtacatc ttctttgcat cattttatta
7441 tgtatggaaa agttatgtgc atgttgtaga cggttgtaat tcatcaactt gtatgatgtg
7501 ttacaaacgt aatagagcaa caagagtcga atgtacaact attgttaatg gtgttagaag
7561 gtccttttat gtctatgcta atggaggtaa aggcttttgc aaactacaca attggaattg
7621 tgttaattgt gatacattct gtgctggtag tacatttatt agtgatgaag ttgcgagaga
7681 cttgtcacta cagtttaaaa gaccaataaa tcctactgac cagtcttctt acatcgttga
7741 tagtgttaca gtgaagaatg gttccatcca tctttacttt gataaagctg gtcaaaagac
7801 ttatgaaaga cattctctct ctcattttgt taacttagac aacctgagag ctaataacac
7861 taaaggttca ttgcctatta atgttatagt ttttgatggt aaatcaaaat gtgaagaatc
7921 atctgcaaaa tcagcgtctg tttactacag tcagcttatg tgtcaaccta tactgttact
7981 agatcaggca ttagtgtctg atgttggtga tagtgcggaa gttgcagtta aaatgtttga
8041 tgcttacgtt aatacgtttt catcaacttt taacgtacca atggaaaaac tcaaaacact
8101 agttgcaact gcagaagctg aacttgcaaa gaatgtgtcc ttagacaatg tcttatctac
8161 ttttatttca gcagctcggc aagggtttgt tgattcagat gtagaaacta aagatgttgt
8221 tgaatgtctt aaattgtcac atcaatctga catagaagtt actggcgata gttgtaataa
8281 ctatatgctc acctataaca aagttgaaaa catgacaccc cgtgaccttg gtgcttgtat
8341 tgactgtagt gcgcgtcata ttaatgcgca ggtagcaaaa agtcacaaca ttgctttgat
8401 atggaacgtt aaagatttca tgtcattgtc tgaacaacta cgaaaacaaa tacgtagtgc
8461 tgctaaaaag aataacttac cttttaagtt gacatgtgca actactagac aagttgttaa
8521 tgttgtaaca acaaagatag cacttaaggg tggtaaaatt gttaataatt ggttgaagca
8581 gttaattaaa gttacacttg tgttcctttt tgttgctgct attttctatt taataacacc
8641 tgttcatgtc atgtctaaac atactgactt ttcaagtgaa atcataggat acaaggctat
8701 tgatggtggt gtcactcgtg acatagcatc tacagatact tgttttgcta acaaacatgc
8761 tgattttgac acatggttta gccagcgtgg tggtagttat actaatgaca aagcttgccc
8821 attgattgct gcagtcataa caagagaagt gggttttgtc gtgcctggtt tgcctggcac
8881 gatattacgc acaactaatg gtgacttttt gcatttctta cctagagttt ttagtgcagt
8941 tggtaacatc tgttacacac catcaaaact tatagagtac actgactttg caacatcagc
9001 ttgtgttttg gctgctgaat gtacaatttt taaagatgct tctggtaagc cagtaccata
9061 ttgttatgat accaatgtac tagaaggttc tgttgcttat gaaagtttac gccctgacac
9121 acgttatgtg ctcatggatg gctctattat tcaatttcct aacacctacc ttgaaggttc
9181 tgttagagtg gtaacaactt ttgattctga gtactgtagg cacggcactt gtgaaagatc
9241 agaagctggt gtttgtgtat ctactagtgg tagatgggta cttaacaatg attattacag
9301 atctttacca ggagttttct gtggtgtaga tgctgtaaat ttacttacta atatgtttac
9361 accactaatt caacctattg gtgctttgga catatcagca tctatagtag ctggtggtat
9421 tgtagctatc gtagtaacat gccttgccta ctattttatg aggtttagaa gagcttttgg
9481 tgaatacagt catgtagttg cctttaatac tttactattc cttatgtcat tcactgtact
9541 ctgtttaaca ccagtttact cattcttacc tggtgtttat tctgttattt acttgtactt
9601 gacattttat cttactaatg atgtttcttt tttagcacat attcagtgga tggttatgtt
9661 cacaccttta gtacctttct ggataacaat tgcttatatc atttgtattt ccacaaagca
9721 tttctattgg ttctttagta attacctaaa gagacgtgta gtctttaatg gtgtttcctt
9781 tagtactttt gaagaagctg cgctgtgcac ctttttgtta aataaagaaa tgtatctaaa
9841 gttgcgtagt gatgtgctat tacctcttac gcaatataat agatacttag ctctttataa
9901 taagtacaag tattttagtg gagcaatgga tacaactagc tacagagaag ctgcttgttg
9961 tcatctcgca aaggctctca atgacttcag taactcaggt tctgatgttc tttaccaacc
10021 accacaaacc tctatcacct cagctgtttt gcagagtggt tttagaaaaa tggcattccc
10081 atctggtaaa gttgagggtt gtatggtaca agtaacttgt ggtacaacta cacttaacgg
10141 tctttggctt gatgacgtag tttactgtcc aagacatgtg atctgcacct ctgaagacat
10201 gcttaaccct aattatgaag atttactcat tcgtaagtct aatcataatt tcttggtaca
10261 ggctggtaat gttcaactca gggttattgg acattctatg caaaattgtg tacttaagct
10321 taaggttgat acagccaatc ctaagacacc taagtataag tttgttcgca ttcaaccagg
10381 acagactttt tcagtgttag cttgttacaa tggttcacca tctggtgttt accaatgtgc
10441 tatgaggccc aatttcacta ttaagggttc attccttaat ggttcatgtg gtagtgttgg
10501 ttttaacata gattatgact gtgtctcttt ttgttacatg caccatatgg aattaccaac
10561 tggagttcat gctggcacag acttagaagg taacttttat ggaccttttg ttgacaggca
10621 aacagcacaa gcagctggta cggacacaac tattacagtt aatgttttag cttggttgta
10681 cgctgctgtt ataaatggag acaggtggtt tctcaatcga tttaccacaa ctcttaatga
10741 ctttaacctt gtggctatga agtacaatta tgaacctcta acacaagacc atgttgacat
10801 actaggacct ctttctgctc aaactggaat tgccgtttta gatatgtgtg cttcattaaa
10861 agaattactg caaaatggta tgaatggacg taccatattg ggtagtgctt tattagaaga
10921 tgaatttaca ccttttgatg ttgttagaca atgctcaggt gttactttcc aaagtgcagt
10981 gaaaagaaca atcaagggta cacaccactg gttgttactc acaattttga cttcactttt
11041 agttttagtc cagagtactc aatggtcttt gttctttttt ttgtatgaaa atgccttttt
11101 accttttgct atgggtatta ttgctatgtc tgcttttgca atgatgtttg tcaaacataa
11161 gcatgcattt ctctgtttgt ttttgttacc ttctcttgcc actgtagctt attttaatat
11221 ggtctatatg cctgctagtt gggtgatgcg tattatgaca tggttggata tggttgatac
11281 tagtttgtct ggttttaagc taaaagactg tgttatgtat gcatcagctg tagtgttact
11341 aatccttatg acagcaagaa ctgtgtatga tgatggtgct aggagagtgt ggacacttat
11401 gaatgtcttg acactcgttt ataaagttta ttatggtaat gctttagatc aagccatttc
11461 catgtgggct cttataatct ctgttacttc taactactca ggtgtagtta caactgtcat
11521 gtttttggcc agaggtattg tttttatgtg tgttgagtat tgccctattt tcttcataac
11581 tggtaataca cttcagtgta taatgctagt ttattgtttc ttaggctatt tttgtacttg
11641 ttactttggc ctcttttgtt tactcaaccg ctactttaga ctgactcttg gtgtttatga
11701 ttacttagtt tctacacagg agtttagata tatgaattca cagggactac tcccacccaa
11761 gaatagcata gatgccttca aactcaacat taaattgttg ggtgttggtg gcaaaccttg
11821 tatcaaagta gccactgtac agtctaaaat gtcagatgta aagtgcacat cagtagtctt
11881 actctcagtt ttgcaacaac tcagagtaga atcatcatct aaattgtggg ctcaatgtgt
11941 ccagttacac aatgacattc tcttagctaa agatactact gaagcctttg aaaaaatggt
12001 ttcactactt tctgttttgc tttccatgca gggtgctgta gacataaaca agctttgtga
12061 agaaatgctg gacaacaggg caaccttaca agctatagcc tcagagttta gttcccttcc
12121 atcatatgca gcttttgcta ctgctcaaga agcttatgag caggctgttg ctaatggtga
12181 ttctgaagtt gttcttaaaa agttgaagaa gtctttgaat gtggctaaat ctgaatttga
12241 ccgtgatgca gccatgcaac gtaagttgga aaagatggct gatcaagcta tgacccaaat
12301 gtataaacag gctagatctg aggacaagag ggcaaaagtt actagtgcta tgcagacaat
12361 gcttttcact atgcttagaa agttggataa tgatgcactc aacaacatta tcaacaatgc
12421 aagagatggt tgtgttccct tgaacataat acctcttaca acagcagcca aactaatggt
12481 tgtcatacca gactataaca catataaaaa tacgtgtgat ggtacaacat ttacttatgc
12541 atcagcattg tgggaaatcc aacaggttgt agatgcagat agtaaaattg ttcaacttag
12601 tgaaattagt atggacaatt cacctaattt agcatggcct cttattgtaa cagctttaag
12661 ggccaattct gctgtcaaat tacagaataa tgagcttagt cctgttgcac tacgacagat
12721 gtcttgtgct gccggtacta cacaaactgc ttgcactgat gacaatgcgt tagcttacta
12781 caacacaaca aagggaggta ggtttgtact tgcactgtta tccgatttac aggatttgaa
12841 atgggctaga ttccctaaga gtgatggaac tggtactatc tatacagaac tggaaccacc
12901 ttgtaggttt gttacagaca cacctaaagg tcctaaagtg aagtatttat actttattaa
12961 aggattaaac aacctaaata gaggtatggt acttggtagt ttagctgcca cagtacgtct
13021 acaagctggt aatgcaacag aagtgcctgc caattcaact gtattatctt tctgtgcttt
13081 tgctgtagat gctgctaaag cttacaaaga ttatctagct agtgggggac aaccaatcac
13141 taattgtgtt aagatgttgt gtacacacac tggtactggt caggcaataa cagttacacc
13201 ggaagccaat atggatcaag aatcctttgg tggtgcatcg tgttgtctgt actgccgttg
13261 ccacatagat catccaaatc ctaaaggatt ttgtgactta aaaggtaagt atgtacaaat
13321 acctacaact tgtgctaatg accctgtggg ttttacactt aaaaacacag tctgtaccgt
13381 ctgcggtatg tggaaaggtt atggctgtag ttgtgatcaa ctccgcgaac ccatgcttca
13441 gtcagctgat gcacaatcgt ttttaaacgg gtttgcggtg taagtgcagc ccgtcttaca
13501 ccgtgcggca caggcactag tactgatgtc gtatacaggg cttttgacat ctacaatgat
13561 aaagtagctg gttttgctaa attcctaaaa actaattgtt gtcgcttcca agaaaaggac
13621 gaagatgaca atttaattga ttcttacttt gtagttaaga gacacacttt ctctaactac
13681 caacatgaag aaacaattta taatttactt aaggattgtc cagctgttgc taaacatgac
13741 ttctttaagt ttagaataga cggtgacatg gtaccacata tatcacgtca acgtcttact
13801 aaatacacaa tggcagacct cgtctatgct ttaaggcatt ttgatgaagg taattgtgac
13861 acattaaaag aaatacttgt cacatacaat tgttgtgatg atgattattt caataaaaag
13921 gactggtatg attttgtaga aaacccagat atattacgcg tatacgccaa cttaggtgaa
13981 cgtgtacgcc aagctttgtt aaaaacagta caattctgtg atgccatgcg aaatgctggt
14041 attgttggtg tactgacatt agataatcaa gatctcaatg gtaactggta tgatttcggt
14101 gatttcatac aaaccacgcc aggtagtgga gttcctgttg tagattctta ttattcattg
14161 ttaatgccta tattaacctt gaccagggct ttaactgcag agtcacatgt tgacactgac
14221 ttaacaaagc cttacattaa gtgggatttg ttaaaatatg acttcacgga agagaggtta
14281 aaactctttg accgttattt taaatattgg gatcagacat accacccaaa ttgtgttaac
14341 tgtttggatg acagatgcat tctgcattgt gcaaacttta atgttttatt ctctacagtg
14401 ttcccaccta caagttttgg accactagtg agaaaaatat ttgttgatgg tgttccattt
14461 gtagtttcaa ctggatacca cttcagagag ctaggtgttg tacataatca ggatgtaaac
14521 ttacatagct ctagacttag ttttaaggaa ttacttgtgt atgctgctga ccctgctatg
14581 cacgctgctt ctggtaatct attactagat aaacgcacta cgtgcttttc agtagctgca
14641 cttactaaca atgttgcttt tcaaactgtc aaacccggta attttaacaa agacttctat
14701 gactttgctg tgtctaaggg tttctttaag gaaggaagtt ctgttgaatt aaaacacttc
14761 ttctttgctc aggatggtaa tgctgctatc agcgattatg actactatcg ttataatcta
14821 ccaacaatgt gtgatatcag acaactacta tttgtagttg aagttgttga taagtacttt
14881 gattgttacg atggtggctg tattaatgct aaccaagtca tcgtcaacaa cctagacaaa
14941 tcagctggtt ttccatttaa taaatggggt aaggctagac tttattatga ttcaatgagt
15001 tatgaggatc aagatgcact tttcgcatat acaaaacgta atgtcatccc tactataact
15061 caaatgaatc ttaagtatgc cattagtgca aagaatagag ctcgcaccgt agctggtgtc
15121 tctatctgta gtactatgac caatagacag tttcatcaaa aattattgaa atcaatagcc
15181 gccactagag gagctactgt agtaattgga acaagcaaat tctatggtgg ttggcacaac
15241 atgttaaaaa ctgtttatag tgatgtagaa aaccctcacc ttatgggttg ggattatcct
15301 aaatgtgata gagccatgcc taacatgctt agaattatgg cctcacttgt tcttgctcgc
15361 aaacatacaa cgtgttgtag cttgtcacac cgtttctata gattagctaa tgagtgtgct
15421 caagtattga gtgaaatggt catgtgtggc ggttcactat atgttaaacc aggtggaacc
15481 tcatcaggag atgccacaac tgcttatgct aatagtgttt ttaacatttg tcaagctgtc
15541 acggccaatg ttaatgcact tttatctact gatggtaaca aaattgccga taagtatgtc
15601 cgcaatttac aacacagact ttatgagtgt ctctatagaa atagagatgt tgacacagac
15661 tttgtgaatg agttttacgc atatttgcgt aaacatttct caatgatgat actctctgac
15721 gatgctgttg tgtgtttcaa tagcacttat gcatctcaag gtctagtggc tagcataaag
15781 aactttaagt cagttcttta ttatcaaaac aatgttttta tgtctgaagc aaaatgttgg
15841 actgagactg accttactaa aggacctcat gaattttgct ctcaacatac aatgctagtt
15901 aaacagggtg atgattatgt gtaccttcct tacccagatc catcaagaat cctaggggcc
15961 ggctgttttg tagatgatat cgtaaaaaca gatggtacac ttatgattga acggttcgtg
16021 tctttagcta tagatgctta cccacttact aaacatccta atcaggagta tgctgatgtc
16081 tttcatttgt acttacaata cataagaaag ctacatgatg agttaacagg acacatgtta
16141 gacatgtatt ctgttatgct tactaatgat aacacttcaa ggtattggga acctgagttt
16201 tatgaggcta tgtacacacc gcatacagtc ttacaggctg ttggggcttg tgttctttgc
16261 aattcacaga cttcattaag atgtggtgct tgcatacgta gaccattctt atgttgtaaa
16321 tgctgttacg accatgtcat atcaacatca cataaattag tcttgtctgt taatccgtat
16381 gtttgcaatg ctccaggttg tgatgtcaca gatgtgactc aactttactt aggaggtatg
16441 agctattatt gtaaatcaca taaaccaccc attagttttc cattgtgtgc taatggacaa
16501 gtttttggtt tatataaaaa tacatgtgtt ggtagcgata atgttactga ctttaatgca
16561 attgcaacat gtgactggac aaatgctggt gattacattt tagctaacac ctgtactgaa
16621 agactcaagc tttttgcagc agaaacgctc aaagctactg aggagacatt taaactgtct
16681 tatggtattg ctactgtacg tgaagtgctg tctgacagag aattacatct ttcatgggaa
16741 gttggtaaac ctagaccacc acttaaccga aattatgtct ttactggtta tcgtgtaact
16801 aaaaacagta aagtacaaat aggagagtac acctttgaaa aaggtgacta tggtgatgct
16861 gttgtttacc gaggtacaac aacttacaaa ttaaatgttg gtgattattt tgtgctgaca
16921 tcacatacag taatgccatt aagtgcacct acactagtgc cacaagagca ctatgttaga
16981 attactggct tatacccaac actcaatatc tcagatgagt tttctagcaa tgttgcaaat
17041 tatcaaaagg ttggtatgca aaagtattct acactccagg gaccacctgg tactggtaag
17101 agtcattttg ctattggcct agctctctac tacccttctg ctcgcatagt gtatacagct
17161 tgctctcatg ccgctgttga tgcactatgt gagaaggcat taaaatattt gcctatagat
17221 aaatgtagta gaattatacc tgcacgtgct cgtgtagagt gttttgataa attcaaagtg
17281 aattcaacat tagaacagta tgtcttttgt actgtaaatg cattgcctga gacgacagca
17341 gatatagttg tctttgatga aatttcaatg gccacaaatt atgatttgag tgttgtcaat
17401 gccagattac gtgctaagca ctatgtgtac attggcgacc ctgctcaatt acctgcacca
17461 cgcacattgc taactaaggg cacactagaa ccagaatatt tcaattcagt gtgtagactt
17521 atgaaaacta taggtccaga catgttcctc ggaacttgtc ggcgttgtcc tgctgaaatt
17581 gttgacactg tgagtgcttt ggtttatgat aataagctta aagcacataa agacaaatca
17641 gctcaatgct ttaaaatgtt ttataagggt gttatcacgc atgatgtttc atctgcaatt
17701 aacaggccac aaataggcgt ggtaagagaa ttccttacac gtaaccctgc ttggagaaaa
17761 gctgtcttta tttcacctta taattcacag aatgctgtag cctcaaagat tttgggacta
17821 ccaactcaaa ctgttgattc atcacagggc tcagaatatg actatgtcat attcactcaa
17881 accactgaaa cagctcactc ttgtaatgta aacagattta atgttgctat taccagagca
17941 aaagtaggca tactttgcat aatgtctgat agagaccttt atgacaagtt gcaatttaca
18001 agtcttgaaa ttccacgtag gaatgtggca actttacaag ctgaaaatgt aacaggactc
18061 tttaaagatt gtagtaaggt aatcactggg ttacatccta cacaggcacc tacacacctc
18121 agtgttgaca ctaaattcaa aactgaaggt ttatgtgttg acatacctgg catacctaag
18181 gacatgacct atagaagact catctctatg atgggtttta aaatgaatta tcaagttaat
18241 ggttacccta acatgtttat cacccgcgaa gaagctataa gacatgtacg tgcatggatt
18301 ggcttcgatg tcgaggggtg tcatgctact agagaagctg ttggtaccaa tttaccttta
18361 cagctaggtt tttctacagg tgttaaccta gttgctgtac ctacaggtta tgttgataca
18421 cctaataata cagatttttc cagagttagt gctaaaccac cgcctggaga tcaatttaaa
18481 cacctcatac cacttatgta caaaggactt ccttggaatg tagtgcgtat aaagattgta
18541 caaatgttaa gtgacacact taaaaatctc tctgacagag tcgtatttgt cttatgggca
18601 catggctttg agttgacatc tatgaagtat tttgtgaaaa taggacctga gcgcacctgt
18661 tgtctatgtg atagacgtgc cacatgcttt tccactgctt cagacactta tgcctgttgg
18721 catcattcta ttggatttga ttacgtctat aatccgttta tgattgatgt tcaacaatgg
18781 ggttttacag gtaacctaca aagcaaccat gatctgtatt gtcaagtcca tggtaatgca
18841 catgtagcta gttgtgatgc aatcatgact aggtgtctag ctgtccacga gtgctttgtt
18901 aagcgtgttg actggactat tgaatatcct ataattggtg atgaactgaa gattaatgcg
18961 gcttgtagaa aggttcaaca catggttgtt aaagctgcat tattagcaga caaattccca
19021 gttcttcacg acattggtaa ccctaaagct attaagtgtg tacctcaagc tgatgtagaa
19081 tggaagttct atgatgcaca gccttgtagt gacaaagctt ataaaataga agaattattc
19141 tattcttatg ccacacattc tgacaaattc acagatggtg tatgcctatt ttggaattgc
19201 aatgtcgata gatatcctgc taattccatt gtttgtagat ttgacactag agtgctatct
19261 aaccttaact tgcctggttg tgatggtggc agtttgtatg taaataaaca tgcattccac
19321 acaccagctt ttgataaaag tgcttttgtt aatttaaaac aattaccatt tttctattac
19381 tctgacagtc catgtgagtc tcatggaaaa caagtagtgt cagatataga ttatgtacca
19441 ctaaagtctg ctacgtgtat aacacgttgc aatttaggtg gtgctgtctg tagacatcat
19501 gctaatgagt acagattgta tctcgatgct tataacatga tgatctcagc tggctttagc
19561 ttgtgggttt acaaacaatt tgatacttat aacctctgga acacttttac aagacttcag
19621 agtttagaaa atgtggcttt taatgttgta aataagggac actttgatgg acaacagggt
19681 gaagtaccag tttctatcat taataacact gtttacacaa aagttgatgg tgttgatgta
19741 gaattgtttg aaaataaaac aacattacct gttaatgtag catttgagct ttgggctaag
19801 cgcaacatta aaccagtacc agaggtgaaa atactcaata atttgggtgt ggacattgct
19861 gctaatactg tgatctggga ctacaaaaga gatgctccag cacatatatc tactattggt
19921 gtttgttcta tgactgacat agccaagaaa ccaactgaaa cgatttgtgc accactcact
19981 gtcttttttg atggtagagt tgatggtcaa gtagacttat ttagaaatgc ccgtaatggt
20041 gttcttatta cagaaggtag tgttaaaggt ttacaaccat ctgtaggtcc caaacaagct
20101 agtcttaatg gagtcacatt aattggagaa gccgtaaaaa cacagttcaa ttattataag
20161 aaagttgatg gtgttgtcca acaattacct gaaacttact ttactcagag tagaaattta
20221 caagaattta aacccaggag tcaaatggaa attgatttct tagaattagc tatggatgaa
20281 ttcattgaac ggtataaatt agaaggctat gccttcgaac atatcgttta tggagatttt
20341 agtcatagtc agttaggtgg tttacatcta ctgattggac tagctaaacg ttttaaggaa
20401 tcaccttttg aattagaaga ttttattcct atggacagta cagttaaaaa ctatttcata
20461 acagatgcgc aaacaggttc atctaagtgt gtgtgttctg ttattgattt attacttgat
20521 gattttgttg aaataataaa atcccaagat ttatctgtag tttctaaggt tgtcaaagtg
20581 actattgact atacagaaat ttcatttatg ctttggtgta aagatggcca tgtagaaaca
20641 ttttacccaa aattacaatc tagtcaagcg tggcaaccgg gtgttgctat gcctaatctt
20701 tacaaaatgc aaagaatgct attagaaaag tgtgaccttc aaaattatgg tgatagtgca
20761 acattaccta aaggcataat gatgaatgtc gcaaaatata ctcaactgtg tcaatattta
20821 aacacattaa cattagctgt accctataat atgagagtta tacattttgg tgctggttct
20881 gataaaggag ttgcaccagg tacagctgtt ttaagacagt ggttgcctac gggtacgctg
20941 cttgtcgatt cagatcttaa tgactttgtc tctgatgcag attcaacttt gattggtgat
21001 tgtgcaactg tacatacagc taataaatgg gatctcatta ttagtgatat gtacgaccct
21061 aagactaaaa atgttacaaa agaaaatgac tctaaagagg gttttttcac ttacatttgt
21121 gggtttatac aacaaaagct agctcttgga ggttccgtgg ctataaagat aacagaacat
21181 tcttggaatg ctgatcttta taagctcatg ggacacttcg catggtggac agcctttgtt
21241 actaatgtga atgcgtcatc atctgaagca tttttaattg gatgtaatta tcttggcaaa
21301 ccacgcgaac aaatagatgg ttatgtcatg catgcaaatt acatattttg gaggaataca
21361 aatccaattc agttgtcttc ctattcttta tttgacatga gtaaatttcc ccttaaatta
21421 aggggtactg ctgttatgtc tttaaaagaa ggtcaaatca atgatatgat tttatctctt
21481 cttagtaaag gtagacttat aattagagaa aacaacagag ttgttatttc tagtgatgtt
21541 cttgttaaca actaaacgaa caatgtttgt ttttcttgtt ttattgccac tagtctctag
21601 tcagtgtgtt aatcttacaa ccagaactca attaccccct gcatacacta attctttcac
21661 acgtggtgtt tattaccctg acaaagtttt cagatcctca gttttacatt caactcagga
21721 cttgttctta cctttctttt ccaatgttac ttggttccat gctatacatg tctctgggac
21781 caatggtact aagaggtttg ataaccctgt cctaccattt aatgatggtg tttattttgc
21841 ttccactgag aagtctaaca taataagagg ctggattttt ggtactactt tagattcgaa
21901 gacccagtcc ctacttattg ttaataacgc tactaatgtt gttattaaag tctgtgaatt
21961 tcaattttgt aatgatccat ttttgggtgt ttattaccac aaaaacaaca aaagttggat
22021 ggaaagtgag ttcagagttt attctagtgc gaataattgc acttttgaat atgtctctca
22081 gccttttctt atggaccttg aaggaaaaca gggtaatttc aaaaatctta gggaatttgt
22141 gtttaagaat attgatggtt attttaaaat atattctaag cacacgccta ttaatttagt
22201 gcgtgatctc cctcagggtt tttcggcttt agaaccattg gtagatttgc caataggtat
22261 taacatcact aggtttcaaa ctttacttgc tttacataga agttatttga ctcctggtga
22321 ttcttcttca ggttggacag ctggtgctgc agcttattat gtgggttatc ttcaacctag
22381 gacttttcta ttaaaatata atgaaaatgg aaccattaca gatgctgtag actgtgcact
22441 tgaccctctc tcagaaacaa agtgtacgtt gaaatccttc actgtagaaa aaggaatcta
22501 tcaaacttct aactttagag tccaaccaac agaatctatt gttagatttc ctaatattac
22561 aaacttgtgc ccttttggtg aagtttttaa cgccaccaga tttgcatctg tttatgcttg
22621 gaacaggaag agaatcagca actgtgttgc tgattattct gtcctatata attccgcatc
22681 attttccact tttaagtgtt atggagtgtc tcctactaaa ttaaatgatc tctgctttac
22741 taatgtctat gcagattcat ttgtaattag aggtgatgaa gtcagacaaa tcgctccagg
22801 gcaaactgga aagattgctg attataatta taaattacca gatgatttta caggctgcgt
22861 tatagcttgg aattctaaca atcttgattc taaggttggt ggtaattata attacctgta
22921 tagattgttt aggaagtcta atctcaaacc ttttgagaga gatatttcaa ctgaaatcta
22981 tcaggccggt agcacacctt gtaatggtgt tgaaggtttt aattgttact ttcctttaca
23041 atcatatggt ttccaaccca ctaatggtgt tggttaccaa ccatacagag tagtagtact
23101 ttcttttgaa cttctacatg caccagcaac tgtttgtgga cctaaaaagt ctactaattt
23161 ggttaaaaac aaatgtgtca atttcaactt caatggttta acaggcacag gtgttcttac
23221 tgagtctaac aaaaagtttc tgcctttcca acaatttggc agagacattg ctgacactac
23281 tgatgctgtc cgtgatccac agacacttga gattcttgac attacaccat gttcttttgg
23341 tggtgtcagt gttataacac caggaacaaa tacttctaac caggttgctg ttctttatca
23401 ggatgttaac tgcacagaag tccctgttgc tattcatgca gatcaactta ctcctacttg
23461 gcgtgtttat tctacaggtt ctaatgtttt tcaaacacgt gcaggctgtt taataggggc
23521 tgaacatgtc aacaactcat atgagtgtga catacccatt ggtgcaggta tatgcgctag
23581 ttatcagact cagactaatt ctcctcggcg ggcacgtagt gtagctagtc aatccatcat
23641 tgcctacact atgtcacttg gtgcagaaaa ttcagttgct tactctaata actctattgc
23701 catacccaca aattttacta ttagtgttac cacagaaatt ctaccagtgt ctatgaccaa
23761 gacatcagta gattgtacaa tgtacatttg tggtgattca actgaatgca gcaatctttt
23821 gttgcaatat ggcagttttt gtacacaatt aaaccgtgct ttaactggaa tagctgttga
23881 acaagacaaa aacacccaag aagtttttgc acaagtcaaa caaatttaca aaacaccacc
23941 aattaaagat tttggtggtt ttaatttttc acaaatatta ccagatccat caaaaccaag
24001 caagaggtca tttattgaag atctactttt caacaaagtg acacttgcag atgctggctt
24061 catcaaacaa tatggtgatt gccttggtga tattgctgct agagacctca tttgtgcaca
24121 aaagtttaac ggccttactg ttttgccacc tttgctcaca gatgaaatga ttgctcaata
24181 cacttctgca ctgttagcgg gtacaatcac ttctggttgg acctttggtg caggtgctgc
24241 attacaaata ccatttgcta tgcaaatggc ttataggttt aatggtattg gagttacaca
24301 gaatgttctc tatgagaacc aaaaattgat tgccaaccaa tttaatagtg ctattggcaa
24361 aattcaagac tcactttctt ccacagcaag tgcacttgga aaacttcaag atgtggtcaa
24421 ccaaaatgca caagctttaa acacgcttgt taaacaactt agctccaatt ttggtgcaat
24481 ttcaagtgtt ttaaatgata tcctttcacg tcttgacaaa gttgaggctg aagtgcaaat
24541 tgataggttg atcacaggca gacttcaaag tttgcagaca tatgtgactc aacaattaat
24601 tagagctgca gaaatcagag cttctgctaa tcttgctgct actaaaatgt cagagtgtgt
24661 acttggacaa tcaaaaagag ttgatttttg tggaaagggc tatcatctta tgtccttccc
24721 tcagtcagca cctcatggtg tagtcttctt gcatgtgact tatgtccctg cacaagaaaa
24781 gaacttcaca actgctcctg ccatttgtca tgatggaaaa gcacactttc ctcgtgaagg
24841 tgtctttgtt tcaaatggca cacactggtt tgtaacacaa aggaattttt atgaaccaca
24901 aatcattact acagacaaca catttgtgtc tggtaactgt gatgttgtaa taggaattgt
24961 caacaacaca gtttatgatc ctttgcaacc tgaattagac tcattcaagg aggagttaga
25021 taaatatttt aagaatcata catcaccaga tgttgattta ggtgacatct ctggcattaa
25081 tgcttcagtt gtaaacattc aaaaagaaat tgaccgcctc aatgaggttg ccaagaattt
25141 aaatgaatct ctcatcgatc tccaagaact tggaaagtat gagcagtata taaaatggcc
25201 atggtacatt tggctaggtt ttatagctgg cttgattgcc atagtaatgg tgacaattat
25261 gctttgctgt atgaccagtt gctgtagttg tctcaagggc tgttgttctt gtggatcctg
25321 ctgcaaattt gatgaagacg actctgagcc agtgctcaaa ggagtcaaat tacattacac
25381 ataaacgaac ttatggattt gtttatgaga atcttcacaa ttggaactgt aactttgaag
25441 caaggtgaaa tcaaggatgc tactccttca gattttgttc gcgctactgc aacgataccg
25501 atacaagcct cactcccttt cggatggctt attgttggcg ttgcacttct tgctgttttt
25561 cagagcgctt ccaaaatcat aaccctcaaa aagagatggc aactagcact ctccaagggt
25621 gttcactttg tttgcaactt gctgttgttg tttgtaacag tttactcaca ccttttgctc
25681 gttgctgctg gccttgaagc cccttttctc tatctttatg ctttagtcta cttcttgcag
25741 agtataaact ttgtaagaat aataatgagg ctttggcttt gctggaaatg ccgttccaaa
25801 aacccattac tttatgatgc caactatttt ctttgctggc atactaattg ttacgactat
25861 tgtatacctt acaatagtgt aacttcttca attgtcatta cttcaggtga tggcacaaca
25921 agtcctattt ctgaacatga ctaccagatt ggtggttata ctgaaaaatg ggaatctgga
25981 gtaaaagact gtgttgtatt acacagttac ttcacttcag actattacca gctgtactca
26041 actcaattga gtacagacac tggtgttgaa catgttacct tcttcatcta caataaaatt
26101 gttgatgagc ctgaagaaca tgtccaaatt cacacaatcg acggttcatc cggagttgtt
26161 aatccagtaa tggaaccaat ttatgatgaa ccgacgacga ctactagcgt gcctttgtaa
26221 gcacaagctg atgagtacga acttatgtac tcattcgttt cggaagagac aggtacgtta
26281 atagttaata gcgtacttct ttttcttgct ttcgtggtat tcttgctagt tacactagcc
26341 atccttactg cgcttcgatt gtgtgcgtac tgctgcaata ttgttaacgt gagtcttgta
26401 aaaccttctt tttacgttta ctctcgtgtt aaaaatctga attcttctag agttcctgat
26461 cttctggtct aaacgaacta aatattatat tagtttttct gtttggaact ttaattttag
26521 ccatggcaga ttccaacggt actattaccg ttgaagagct taaaaagctc cttgaacaat
26581 ggaacctagt aataggtttc ctattcctta catggatttg tcttctacaa tttgcctatg
26641 ccaacaggaa taggtttttg tatataatta agttaatttt cctctggctg ttatggccag
26701 taactttagc ttgttttgtg cttgctgctg tttacagaat aaattggatc accggtggaa
26761 ttgctatcgc aatggcttgt cttgtaggct tgatgtggct cagctacttc attgcttctt
26821 tcagactgtt tgcgcgtacg cgttccatgt ggtcattcaa tccagaaact aacattcttc
26881 tcaacgtgcc actccatggc actattctga ccagaccgct tctagaaagt gaactcgtaa
26941 tcggagctgt gatccttcgt ggacatcttc gtattgctgg acaccatcta ggacgctgtg
27001 acatcaagga cctgcctaaa gaaatcactg ttgctacatc acgaacgctt tcttattaca
27061 aattgggagc ttcgcagcgt gtagcaggtg actcaggttt tgctgcatac agtcgctaca
27121 ggattggcaa ctataaatta aacacagacc attccagtag cagtgacaat attgctttgc
27181 ttgtacagta agtgacaaca gatgtttcat ctcgttgact ttcaggttac tatagcagag
27241 atattactaa ttattatgag gacttttaaa gtttccattt ggaatcttga ttacatcata
27301 aacctcataa ttaaaaattt atctaagtca ctaactgaga ataaatattc tcaattagat
27361 gaagagcaac caatggagat tgattaaacg aacatgaaaa ttattctttt cttggcactg
27421 ataacactcg ctacttgtga gctttatcac taccaagagt gtgttagagg tacaacagta
27481 cttttaaaag aaccttgctc ttctggaaca tacgagggca attcaccatt tcatcctcta
27541 gctgataaca aatttgcact gacttgcttt agcactcaat ttgcttttgc ttgtcctgac
27601 ggcgtaaaac acgtctatca gttacgtgcc agatcagttt cacctaaact gttcatcaga
27661 caagaggaag ttcaagaact ttactctcca atttttctta ttgttgcggc aatagtgttt
27721 ataacacttt gcttcacact caaaagaaag acagaatgat tgaactttca ttaattgact
27781 tctatttgtg ctttttagcc tttctgctat tccttgtttt aattatgctt attatctttt
27841 ggttctcact tgaactgcaa gatcataatg aaacttgtca cgcctaaacg aacatgaaat
27901 ttcttgtttt cttaggaatc atcacaactg tagctgcatt tcaccaagaa tgtagtttac
27961 agtcatgtac tcaacatcaa ccatatgtag ttgatgaccc gtgtcctatt cacttctatt
28021 ctaaatggta tattagagta ggagctagaa aatcagcacc tttaattgaa ttgtgcgtgg
28081 atgaggctgg ttctaaatca cccattcagt acatcgatat cggtaattat acagtttcct
28141 gtttaccttt tacaattaat tgccaggaac ctaaattggg tagtcttgta gtgcgttgtt
28201 cgttctatga agacttttta gagtatcatg acgttcgtgt tgttttagat ttcatctaaa
28261 cgaacaaact aaaatgtctg ataatggacc ccaaaatcag cgaaatgcac cccgcattac
28321 gtttggtgga ccctcagatt caactggcag taaccagaat ggagaacgca gtggggcgcg
28381 atcaaaacaa cgtcggcccc aaggtttacc caataatact gcgtcttggt tcaccgctct
28441 cactcaacat ggcaaggaag accttaaatt ccctcgagga caaggcgttc caattaacac
28501 caatagcagt ccagatgacc aaattggcta ctaccgaaga gctaccagac gaattcgtgg
28561 tggtgacggt aaaatgaaag atctcagtcc aagatggtat ttctactacc taggaactgg
28621 gccagaagct ggacttccct atggtgctaa caaagacggc atcatatggg ttgcaactga
28681 gggagccttg aatacaccaa aagatcacat tggcacccgc aatcctgcta acaatgctgc
28741 aatcgtgcta caacttcctc aaggaacaac attgccaaaa ggcttctacg cagaagggag
28801 cagaggcggc agtcaagcct cttctcgttc ctcatcacgt agtcgcaaca gttcaagaaa
28861 ttcaactcca ggcagcagta ggggaacttc tcctgctaga atggctggca atggcggtga
28921 tgctgctctt gctttgctgc tgcttgacag attgaaccag cttgagagca aaatgtctgg
28981 taaaggccaa caacaacaag gccaaactgt cactaagaaa tctgctgctg aggcttctaa
29041 gaagcctcgg caaaaacgta ctgccactaa agcatacaat gtaacacaag ctttcggcag
29101 acgtggtcca gaacaaaccc aaggaaattt tggggaccag gaactaatca gacaaggaac
29161 tgattacaaa cattggccgc aaattgcaca atttgccccc agcgcttcag cgttcttcgg
29221 aatgtcgcgc attggcatgg aagtcacacc ttcgggaacg tggttgacct acacaggtgc
29281 catcaaattg gatgacaaag atccaaattt caaagatcaa gtcattttgc tgaataagca
29341 tattgacgca tacaaaacat tcccaccaac agagcctaaa aaggacaaaa agaagaaggc
29401 tgatgaaact caagccttac cgcagagaca gaagaaacag caaactgtga ctcttcttcc
29461 tgctgcagat ttggatgatt tctccaaaca attgcaacaa tccatgagca gtgctgactc
29521 aactcaggcc taaactcatg cagaccacac aaggcagatg ggctatataa acgttttcgc
29581 ttttccgttt acgatatata gtctactctt gtgcagaatg aattctcgta actacatagc
29641 acaagtagat gtagttaact ttaatctcac atagcaatct ttaatcagtg tgtaacatta
29701 gggaggactt gaaagagcca ccacattttc accgaggcca cgcggagtac gatcgagtgt
29761 acagtgaaca atgctaggga gagctgccta tatggaagag ccctaatgtg taaaattaat
29821 tttagtagtg ctatccccat gtgattttaa tagcttctta ggagaatgac aaaaaaaaaa
29881 aaaaaaaaaa aaaaaaaaaa aaa";

rnaX1=ToString /@ Select[ToExpression[StringSplit[rnaX0," "]],!NumberQ[#] &];

rna=StringJoin[rnaX1];
StringLength[rna]

rnaS1=StringSplit[rna,""];
rnaH1=Transpose @ Tally[rnaS1];

rnaH1

BarChart[rnaH1[[2]]]