r - 从 DNA 字符串集中的字符串中选择序列
问题描述
我正在分析一个像这样的大型 DNA 字符串集:
SEQUENCE
A DNAStringSet instance of length 6
width seq names
[1] 253 GAACAGCATGAATGTTAAAACTGAAATGGATGATGATGATGATGATGATGATG...GTATTATGGCATCATGATGAATGATGGTTAGGTTTTCAGAAAAAGCAGAAGA C3
[2] 158 TATATATATATAGTCAATTCGAGGATGTTAGATCGACAATGGGGATTATAGAA...AGCAAGAATTAGCAGGACCACTCCGGATACTATTCCAGAGTTTCCTTGCAAA B4
[3] 619 ATAGACATACACACAAATATTTTTATATCACATGCATACCCATACACACACAT...TCATATATAGACACAAATATATATATACATATTTATACATATATATATATAT A0
[4] 359 TCACCAGTGGCAGCCGCGGCTACAGCAAAAGGTGGCCGGCCAAGGAGTGTCGT...GGTGTCGCGTGCCCTTGTGGACACGGGCTGTACAACGACCCTGATGACTCCG A1
[5] 239 GAAGTGGTAAAGAGTGCGATGCGCTGAAAAAAGAGAGAACAGTACTTGAAATG...CCACACTTCAAGTACTGTTCTCTCTTTTTTCAGCGCATCGCACTCTTTACCA A2
[6] 212 CAAAAAGAAGGTTATGGTGACTGTTTGGTGGTGTACTGCTGGACCCATCCCCT...ATAGGGCCAATCATTCTTCATGACAATGCTCGACCACACGTTTTACTAATGA A3
... .... .....
好吧,假设我需要找到一个特定的序列,例如GCGGCTACAGCAAAAGGTGGCCGGCCAAGG
在名称为 A1 的字符串中,我不明白如何获取它。我试过这个:
s1= SEQUENCE[4]
A DNAStringSet instance of length 1
width seq names
[1] 359 TCACCAGTGGCAGCCGCGGCTACAGCAAAAGGTGGCCGGCCAAGGAGTGTCGT...AGGTGTCGCGTGCCCTTGTGGACACGGGCTGTACAACGACCCTGATGACTCCG A1
现在这是一个简单的例子,我可以看到名称A1
对应于字符串[4]
,但如果只知道 10000 多个字符串中的名称,我不能这样做。无论如何,我只想获取序列,而不是名称,而不是宽度,但我不知道如何从这个字符串集中提取它。你能帮助我吗?
解决方案
一种基本 R 选项是使用grepl
. 作为原始数据的较小版本,我使用的是:
sequences <- c("GAACAGCATG", "TATATATATA", "ATAGACATAC")
sequences[grepl("GAACA", sequences)]
[1] "GAACAGCATG"
如果您使用数据框来存储序列信息,请使用以下内容:
df[,grepl(df$seq, "GCGGCTACAGCAAAAGGTGGCCGGCCAAGG")]
推荐阅读
- oracle - 作为关键字/值符号输入 => 在 Oracle 中的输入值列表
- sass - 如何包含具有给定参数的 sass 文件
- d3.js - 我如何在 5 年内物流中的货流世界地图上创建两个可视化?
- highcharts - highcharts - 在标记悬停时禁用淡入淡出系列
- node.js - 在 Node.js 中实现同步和异步
- marklogic - cts:value-co-occurrences() 与 cts:value-tuples() 索引延迟
- sql-server - 如何根据 SQL 中的行数对表进行子集化?
- sql - 表(实体)之间的识别和非识别关系
- javascript - 如何遍历一组对象(链接)并验证其中一个是否存在?
- ios - `node cordova/lib/copy-www-build-step.js`在构建阶段时出现cordova构建错误