前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用R获取DNA的反向互补序列

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

作者头像
生信交流平台
发布2022-09-21 16:14:45
8360
发布2022-09-21 16:14:45
举报

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

代码语言:javascript
复制
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自带的函数来实现

代码语言:javascript
复制
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函数

代码语言:javascript
复制
#安装mgsub和stringi
BiocManager::install("mgsub")
BiocManager::install("stringi")
#加载mgsub和stringi
library(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一个字符串

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档