基本上输入文件是这样的:
> U51677人非组蛋白染色质蛋白HMG1(HMG1)基因,完整
Run Code Online (Sandbox Code Playgroud)cds. #some records don't have this line (see below) Length = 2575(一些文字)
> U51677人非组蛋白染色质蛋白HMG1(HMG1)基因,完整
Run Code Online (Sandbox Code Playgroud)Length = 2575(一些文字)
(等等...)
现在我写了这个来提取以>开头的行和长度的数字
import re
regex = re.compile("^(>.*)\r\n.*Length\s=\s(\d+)", re.MULTILINE)
match = regex.findall(sample_blast.read())
print match[0]
Run Code Online (Sandbox Code Playgroud)
当长度线是>线的下一行时,它适用于提取记录.
然后我尝试了re.DOTALL,它应该使任何记录匹配(.*Length),无论是否有额外的行.
regex = re.compile("^(>.*)\r\n.*(?:\r\n*.?)Length\s=\s(\d+)", re.MULTILINE|re.DOTALL)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我尝试了re.MULTILINE和re.DOTALL而不是管道,但仍然无法正常工作.
所以问题是如何创建一个匹配记录的正则表达式并返回所需的组,而不管记录中是否有额外的行.如果有人能够在re.VERBOSE中展示这一点,那将会很好.对不起,很长的帖子,并提前感谢您的任何帮助.:)
第一个计时器...所以让我知道在提出问题时是否有任何我没有注意的事情.
问题是如何使用标量作为条件,因为下面的代码不起作用.
my @parameter=('hub');
my %condition;
$condition{'hub'}{'1'}='$degree>=5';
foreach (@parameter) {
if ($condition{$_}{'1'}) {..}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是因为条件没有被正确解释,所以我也尝试了以下,这也没有用.
if ("$condition{$parameter}{'1'}") { ..}
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助.:)
所以我试图将文件的每一行与正则表达式匹配,我做了以下事情:
import re
regex='\S+\s+(\S{6})\s+VAR'
with open('/home/jyt109/humsavar.txt') as humsavar:
for line in humsavar:
match=regex.search(line)
print match.group(1)
Run Code Online (Sandbox Code Playgroud)
预期输出是每行中的特定 6 个字符,而是出现如下错误:
Traceback (most recent call last):
File "exercise.py", line 74, in <module>
match=regex.search(line)
AttributeError: 'str' object has no attribute 'search'
Run Code Online (Sandbox Code Playgroud)
我发现(从下面的链接)要将正则表达式与文件的每一行匹配,必须首先将文件转换为 file.read() 列表
要重新处理帖子,是否有更简单的方法(最好超过 1 行而不是 2 行)?
humsavar=open('/home/jyt109/humsavar.txt')
text=humsavar.read()
Run Code Online (Sandbox Code Playgroud)
谢谢!
我是R的新手,我正在尝试使用以下代码将数据帧转换为数字矩阵
expData <- read.table("GSM469176.txt",header = F)
expVec <- as.numeric(as.matrix(exp_data))
Run Code Online (Sandbox Code Playgroud)
当我使用as.matrix时,没有as.numeric,它会返回一些数字(如下所示)
0.083531 0.083496 0.083464 0.083435 0.083406 0.083377 0.083348"
[9975] "-0.00285 -0.0028274 -0.0028046 -0.0027814 -0.0027574 -0.0027319 -0.0027042
Run Code Online (Sandbox Code Playgroud)
但当我输入as.numeric时,它们都转换为"NA"
如果有人之前提出过这个问题我很抱歉,但我找不到解决问题的帖子.提前致谢