热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在数据帧输出的序列向量中搜索图案矢量-Searchforvectorofmotifsinvectorofsequenceswithdataframeoutput

Ihaveasetofnucleotidesequencesinavectorofstringscalledx.我在称为x的字符串向量中有一组核苷酸序列。Iwant

I have a set of nucleotide sequences in a vector of strings called x.

我在称为x的字符串向量中有一组核苷酸序列。

I want to check whether some (say 10) motifs are present in x. I want to produce a data frame or table where the rows are the sequences in X and the columns are the patterns/motifs are in the vector sdseqs.

我想检查x中是否存在一些(比如10个)图案。我想生成一个数据框或表,其中行是X中的序列,列是模式/主题在向量sdseqs中。

sdframe <- data.frame
sdseqs = c("AGGAG.+ATG", 
"AGAAG.+ATG","AAAGG.+ATG","GGAGG.+ATG","GAAGA.+ATG",
"GGAGA.+ATG","AAGGT.+ATG","AGGAA.+ATG","AAGGA.+ATG","GTGGA.+ATG")
for (i in 1:10) {
sdframe <- cbind(sdframe,(grepl(sdseqs[i], x)))
}

This code works just fine but the first column of the data frame will be empty, with question marks. The other columns are populated with true and false - that's what i want.

此代码工作正常,但数据框的第一列将为空,带有问号。其他列填充了true和false - 这就是我想要的。

I tried to define an empty data frame outside the loop at the beginning. I am new to R and I am coming from Perl. This what I usually did in Perl: you define variables to be used within a loop outside. How can I do this in R?

我试图在开头的循环外定义一个空数据框。我是R的新手,我来自Perl。这就是我在Perl中经常做的事情:您定义要在外部循环中使用的变量。我怎么能在R中这样做?

Also, a viable option would be to delete the first column from my data frame, but that does not seem so straightforward to me.

另外,一个可行的选择是从我的数据框中删除第一列,但这对我来说似乎并不那么简单。

Any help is appreciated.

任何帮助表示赞赏。

The output i Get with my code now:

输出我现在使用我的代码:

  sdframe                                                            
[1,] ?       TRUE  FALSE TRUE  TRUE  FALSE TRUE  TRUE  TRUE  TRUE  FALSE
[2,] ?       FALSE TRUE  FALSE FALSE FALSE FALSE FALSE FALSE TRUE  TRUE 
[3,] ?       FALSE FALSE TRUE  FALSE TRUE  FALSE TRUE  TRUE  TRUE  TRUE 
[4,] ?       TRUE  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[5,] ?       FALSE TRUE  FALSE FALSE TRUE  FALSE FALSE FALSE FALSE FALSE
[6,] ?       FALSE FALSE FALSE TRUE  FALSE FALSE FALSE TRUE  FALSE TRUE 
[7,] ?       FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE  FALSE FALSE
[8,] ?       FALSE FALSE TRUE  FALSE FALSE TRUE  FALSE FALSE TRUE  FALSE
[9,] ?       FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[10,] ?       FALSE FALSE FALSE FALSE TRUE  FALSE FALSE FALSE FALSE FALSE
[11,] ?       FALSE FALSE TRUE  FALSE FALSE FALSE FALSE FALSE FALSE FALSE

I want the same but without the first column of ?. Note my x has 11 sequences, the motifs i checked for are the column (10 columns, 11 counting the first with ?)

我想要相同但没有第一列?注意我的x有11个序列,我检查的主题是列(10列,11个计数第一个?)

2 个解决方案

#1


0  

A common R solution would use a function from the apply family to apply a function over a a vector.

常见的R解决方案将使用apply系列中的函数来在向量上应用函数。

sdseqs = c(
  "AGGAG.+ATG",
  "AGAAG.+ATG",
  "AAAGG.+ATG",
  "GGAGG.+ATG",
  "GAAGA.+ATG",
  "GGAGA.+ATG",
  "AAGGT.+ATG",
  "AGGAA.+ATG",
  "AAGGA.+ATG",
  "GTGGA.+ATG"
)

sdframe <- sapply(sdseqs, function(one.motif) {
  grepl(one.motif, x = x)
})

sdframe

     AGGAG.+ATG AGAAG.+ATG AAAGG.+ATG GGAGG.+ATG GAAGA.+ATG GGAGA.+ATG AAGGT.+ATG AGGAA.+ATG AAGGA.+ATG GTGGA.+ATG
[1,]      FALSE       TRUE      FALSE      FALSE       TRUE       TRUE       TRUE      FALSE       TRUE      FALSE
[2,]      FALSE       TRUE      FALSE      FALSE       TRUE       TRUE       TRUE      FALSE       TRUE      FALSE
[3,]      FALSE       TRUE      FALSE      FALSE       TRUE       TRUE       TRUE      FALSE       TRUE      FALSE

sdframe.t <- t(sdframe)

sdframe.t

            [,1]  [,2]  [,3]
AGGAG.+ATG FALSE FALSE FALSE
AGAAG.+ATG  TRUE  TRUE  TRUE
AAAGG.+ATG FALSE FALSE FALSE
GGAGG.+ATG FALSE FALSE FALSE
GAAGA.+ATG  TRUE  TRUE  TRUE
GGAGA.+ATG  TRUE  TRUE  TRUE
AAGGT.+ATG  TRUE  TRUE  TRUE
AGGAA.+ATG FALSE FALSE FALSE
AAGGA.+ATG  TRUE  TRUE  TRUE
GTGGA.+ATG FALSE FALSE FALSE

#2


0  

In first line in fact you do not create a data.frame. So your output is a list.

事实上,在第一行中,您不会创建data.frame。所以你的输出是一个列表。

Instead of cbind you need rbind to add rows:

而不是cbind你需要rbind来添加行:

sdframe <- data.frame()
sdseqs = c("AGGAG.+ATG", 
       "AGAAG.+ATG","AAAGG.+ATG","GGAGG.+ATG","GAAGA.+ATG",
       "GGAGA.+ATG","AAGGT.+ATG","AGGAA.+ATG","AAGGA.+ATG","GTGGA.+ATG")
for (i in 1:10) {
sdframe <- rbind(sdframe,(grepl(sdseqs[i], x)))
}

推荐阅读
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
author-avatar
mobiledu2502868653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有