在生物信息学中,FASTA格式(又称为Pearson格式),是一种基于文本用于表示核苷酸序列或氨基酸序列的格式。格式:第一行为一个大于号加序列名称;第二列为序列信息(核苷酸用ACGT四种字母表示;氨基酸用20个字母表示),接下来利用R语言一些函数循环编写多个fasta序列,并储存到本地。
教程参考自生信星球,海边拾贝的旺财,嘻嘻~
![](https://img.haomeiwen.com/i20354525/b27f1ef03d2a3a66.png)
涉及的两个基础函数
- sample抽样函数
sample(x,n,replace=TRUE)
三个参数依次表示抽样数据源,抽样次数,抽样方法(TRUE表示有放回的抽取) - paste连接函数,有两个特殊参数,一个是sep、一个是collapse,分别对应两种连接用法。
(1)一般使用paste需要提供两个数据对象,以供连接;使用sep参数表示连接方式,而默认为空格连接sep=" "
paste('A','B','C')
paste(c('A','B','C'),c(1,2,3))
paste(c('A','B','C'),c(1,2,3),sep="-")
![](https://img.haomeiwen.com/i20354525/0cee7efe2ad24cd7.png)
(2)如果仅提供一个数据对象,以希望修改数据对象内的连接方式,需要使用collapse参数。(可能用的比较少,但的确这次用到了)
paste('1','2','3') #多个对象
paste(1:3) #一个对象
paste(1:3, collapse="")
paste(1:3, collapse="-")
![](https://img.haomeiwen.com/i20354525/7917b37681e3b6d2.png)
开始吧~
步骤一:function()
x= c("A","T","C","G")
ms <-function(n){
paste(sample(x,n,replace = TRUE),collapse = "")
}
ms(25)
![](https://img.haomeiwen.com/i20354525/34b6d0afb00249cc.png)
步骤二:for循环批量抽10个
y = c()
for(i in 1:10){
y[i] = ms(25)
}
y
![](https://img.haomeiwen.com/i20354525/b9d674e01b6f57bf.png)
步骤三:利用换行符\n
组成fasta文件格式
- 法1
x1 = paste0("seq",1:10)
# x1=paste("seq",1:10,sep="")
# paste0()就是sep=""的paste()
res <- paste0(">",x1,"\n",y)
res
writeLines(res)
![](https://img.haomeiwen.com/i20354525/3e8a01641338e6ed.png)
- 法2
df <- data.frame(V1=paste0("seq",1:10),V2=y)
#转成表格,其中V1,V2表示列名
res2 = apply(df,1,function(x){
paste0(">",x[1],"\n",x[2])
})
writeLines(res2)
步骤四:导出
write.table(res1,
file = "test.fasta",
row.names = F,
quote = F)
![](https://img.haomeiwen.com/i20354525/7113e080283581ab.png)
就最后的结果来看,首行为单独一个x的多余行,奇怪,存疑!有知道为什么的朋友吗?欢迎评论区留言。
网友评论