[续]生成特定碱基比例的随机序列

前文《生成特定碱基比例的随机序列》介绍了如何用Perl来生成特定碱基比例的随机序列。

此处补充一种使用R(Bioconductor)的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
#如果没有安装Bioconductor,首先按照下述步骤安装需要的Biostrings包
source("http://bioconductor.org/biocLite.R")
biocLite("Biostrings")
 
#产生特定碱基比例的随机序列
library(Biostrings)
x 《- paste(sample(c("A", "C", "G", "T"), 10000, replace=TRUE,prob=c(0.3, 0.3, 0.2, 0.2)), collapse="")
x 《- DNAString(x)
x # will print x
alphabetFrequency(x,baseOnly=TRUE)
#最终碱基比例如下
A      C     G     T    other
3047  2946  1990  2017     0

参考资料:
Install Bioconductor Packages
Generating random DNA/protein sequence permutation