【问题标题】:How to reverse complement a DNA strand using R如何使用 R 反向互补 DNA 链
【发布时间】:2021-12-15 04:08:01
【问题描述】:

我正在尝试使用 R 反向互补 DNA 链,但是我的代码无法正常工作。

  map=c("A"="T","T"="A","G"="C","C"="G")
  r<-sapply(lapply(strsplit(y,NULL),rev),paste,collpase="")
  t<-paste(map[unlist(strsplit(r,NULL))],collapse="")
  return(t)}

这是返回 [1] "GNACNACNACNATNA"

有什么建议吗?

【问题讨论】:

标签: r bioinformatics dna-sequence


【解决方案1】:

可能有很多方法可以做到这一点,包括专用的遗传学包。但是,如果您正在寻找一个简单的基本 R 方法,您可以使用 chartr 进行字符替换:

x = 'ACGTGTAC'
y = chartr('ATGC', 'TACG', x)
# [1] "TGCACATG"

然后我们可以反转结果:

intToUtf8(rev(utf8ToInt(y)))  
# [1] "GTACACGT"

【讨论】:

  • 这是完美的。但是要得到序列的反向补码,即标准5'到3'方向的互补序列,你还必须恢复结果。使用基础 R 的示例:intToUtf8(rev(utf8ToInt(dna)))
猜你喜欢
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多