打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用R获取DNA的反向互补序列

    前面跟大家聊了一下☞R如何reverse一个字符串,其实这个只能实现反向,那怎么样才能实现互补呢?其实获取DNA的反向互补序列这个事情本身并不是很难。有很多网页工具都能够实现,我随便在网上搜了一下就找到3个。我这里只是想结合R语言来解决我们生物信息里面的一些小问题,帮助大家理解R。我们还是用上次的DNA序列来举例

DNA='ATTTAGCGATGCGGCTATGCTATCGGA'

如果大家只是想解决这个问题,可以使用下面提到的三个网页工具

1.https://www.bioinformatics.org/sms/rev_comp.html

将你的序列贴进对话框,点击SUBMIT就能得到方向互补序列

2.https://arep.med.harvard.edu/labgc/adnan/projects/Utilities/revcomp.html

你会发现这个工具不仅可以得到反向互补序列,还可以得到反向序列,互补序列,看你自己的需求是什么。将你的序列贴进对话框,点击reverse complement就能得到反向互补序列

3.http://www.cellbiol.com/cgi-bin/complement/rev_comp.cgi

将你的序列贴进对话框,点击Do the Job!就可以得到反向互补序列了

接下来我们用R语言来实现这个功能,我还是给大家介绍两种不同的方法。一种是比较原始一点的方法。第二种是站在前人的肩膀上,使用已有的R包来实现。

1.使用strsplit,rev,paste等R自带的函数来实现

DNA='ATTTAGCGATGCGGCTATGCTATCGGA'#定义互补配对的表from=c("A","T","G","C","a","g","t","c","N","n")to =c("T","A","C","G","t","c","a","g","N","n")#得到带有名字的向量,名字是原始碱基,值是互补碱基names(to)=from
#字符串拆分成字符串向量sep_DNA=unlist(strsplit(DNA,""))#获取互补序列complementary_DNA=to[sep_DNA]#获取反向序列rev_complementary=rev(complementary_DNA)#将字符串向量粘贴成字符串rev_complementary_DNA=paste(rev_complementary,collapse = "")#输出反向互补序列rev_complementary_DNA

2.使用mgsub包中的mgsub函数

#安装mgsub和stringiBiocManager::install("mgsub")BiocManager::install("stringi")#加载mgsub和stringilibrary(mgsub)library(stringi)DNA='ATTTAGCGATGCGGCTATGCTATCGGA'#使用mgsub获取互补序列complementary_DNA=mgsub(DNA, #原始序列 c("A","T","G","C","a","g","t","c","N","n"), #原始碱基 c("T","A","C","G","t","c","a","g","N","n") #互补碱基 )#使用stri_reverse获取反向序列rev_complementary_DNA=stri_reverse(complementary_DNA)#输出反向互补序列rev_complementary_DNA

参考资料:R如何reverse一个字符串

为了方便大家交流学习,共同进步,我特地创建了微信交流群

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Nature:如何用一公斤的DNA满足全球的信息储存需求?
神包ggseqlogo,让你的序列缤纷多彩
【遗传学】异常重组
问答| DNA序列是怎么测量出来的?
DNA测序结果分析比对-教你怎么看测序图
高通量测序原理篇-Illumina测序原理4
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服