Category Archives: Biology

SIR Model of Epidemics

The SIR model divides the population to three compartments: Susceptible, Infected and Recovered. If the disease dynamic fits the SIR model, then the flow of individuals is one direction from the susceptible group to infected group and then to the recovered group. All individuals are assumed to be identical in terms of their susceptibility to infection, infectiousness if infected and mixing behaviour associated with disease transmission.

We defined:

\(S_t\) = the number of susceptible individuals at time t

\(I_t\) = the number of infected individuals at time t

\(R_t\) = the number of recovered individuals at time t

Suppose on average every infected individual will contact \(\gamma\) person, and \(\kappa\) percent of these \(\gamma\) person will be infected. Then on average there are \(\beta = \gamma \times \kappa\) person will be infected an infected individual.

So with infected number \(I_t\) , they will infected \(\beta I_t\) individuals. Since not all people are susceptible, this number should multiple to the percentage of susceptible individuals. Therefore, \(I_t\) infected individuals will infect \(\beta \frac{S_t}{N} I_t\) individuals.

Another parameter \(\alpha\) describes the percentage of infected individuals to recover in a time period. That is on average, it takes \(1/\alpha\) periods for an infected person to recover.
Read more »

m4s0n501

multiple annotation in ChIPseeker

Nearest gene annotation

Almost all annotation software calculate the distance of a peak to the nearest TSS and assign the peak to that gene. This can be misleading, as binding sites might be located between two start sites of different genes or hit different genes which have the same TSS location in the genome.

The function annotatePeak provides option to assign genes with a max distance cutoff and all genes within this distance were reported for each peak.

Read more »

hierachical clustering with mlass

构建phylogenetic tree最简单的方法莫过于UPGMA (unweighted pair group method with arithmetic mean),因为这个方法假定所有的evolution rate是一样的,构建出来的树是有bias的,所以在phylogenetic research上应用很少,但由于简单,通常会使用它来介绍一些基本概念。

UPGMA实际上是使用average linkage的层次聚类,说到聚类,不得不吐槽一下,当年某人在暨大要开个生物信息学的课,叫我去讲聚类分析,我准备好了slides,结果还没轮到我去讲,那课已经结束了,Y叔长这么大,就没遇到这么放鸽子的!于是我准备的"Cluster Analysis and its Applications",从此至终没有讲过。

课表上可以看到,其它所有的课都是在讲怎么使用软件,只有我是准备讲代码的,我觉得既然要讲聚类分析,最起码就应该讲清楚层次聚类和kmeans,而要讲清楚原理,莫过于把最基本的东西,通过结构化的代码实现,通过讲代码来演示计算过程和原理。

kmeans之前实现过,所以是现成的。对于层次聚类,本来想通过分析hclust函数来讲解,结果发现R里的hclust函数实际上是调用了fortran的代码,这种老古董的语言,反正也是看不懂,于是自己写。
Read more »

install 454 GS Data Analysis Software on ubuntu

Usually Roche's installer is a catastrophe, they only provides rpm packages of the software for 454 GS FLX (version 2.9). Although the package contains setup.sh, the script is useless since it is actually a binary payload.

I run the setup.sh, and it throw error of not finding /sbin/lspci. In debian derived distribution, lspci command is located in /bin folder. This issue is easy to solve by adding a soft link to /sbin/lspci.

The second error message popping up says: "Error: Could not execute command: type rocks 2>&1", and I used the command, sudo ln -s /bin/true /bin/rocks, to solve it.

The third error is lack of libraries zlib.i386, libXi.i386, libXtst.i386, and libXaw.i386.
Since my OS is 64bit ubuntu 14.04 LTS, I used, sudo apt-get install ia32-libs, to install all the 32bit compatible libraries.

The fourth error is weird for it can't found /bin/sh which is available for all unix-like systems. Since debian links sh to dash, while most of the Linux distributions links to bash, I changed the link to bash but the error still exists.

I can't figure out how to solve the fourth error and tried to install the rpm packages by using rpm -ivh command but the error doesn't change.
Read more »

insertion size

在进行测序的时候,需要将DNA打断,构建library,这些fragment需要接上adaptor,好进行扩增,illumina的测序,可以有single end和paired end两种,分别从一端和两端进行测序。

fragment                  ========================================
fragment + adaptors    ~~~========================================~~~
SE read                   --------->
PE reads                R1--------->                    < ---------R2
unknown gap                         ....................

insertion并不是指R1和R2之间的unknown gap,早在NGS之前,当我们在使用ecoli构建载体的时候,这个概念就已经形成,它是adaptors之间的序列。而unknown gap则称之为inner mate:

PE reads      R1--------->                    < ---------R2
fragment     ~~~========================================~~~
insert          ========================================
inner mate                ....................

Read more »