2013-01-12 46 views
3

生物化学家/生物信息学使用此网站(http://dgpred.cbr.su.se/index.php?p=TMpred)。进入蛋白质序列后,你会得到这样的事情:从其他号码的网站中提取数字列

http://dgpred.cbr.su.se/analyze.php?with_length=on&seq=RGFTPLQWECVMASDFGHH

一些数据在顶部和底部,并在中间的4列,其中第四是我们想要的数据。我想从第四列(对于很多蛋白质序列)中取出这些数字并放入Excel中。

我目前的工作流程(Mac OS X)是将所有内容复制到RTF格式的文本编辑器中,然后拖动数字(以便只选择第四列的数字),然后执行我的AppleScript :

do shell script "pbpaste | sed 's/[^0-9.-]//g' | pbcopy" 
do shell script "pbpaste | sed '/^$/d' | pbcopy" 

我在正则表达式仅仅初学者,但这种成功给我留下了由换行符分隔的数字,准备一个漂亮的名单被粘贴到Excel中。

什么是真正的甜蜜是沟文本编辑步骤,只是让正则表达式直接从网站采取数字。但是,这超出了我的水平。任何人都可以帮助我吗?即,只能从第4列

+0

所以你想提取'Delta G aa(i)应用程序列,对不对? – 2013-01-12 21:28:04

+0

这是正确的 – Johan

回答

1

选择号码。当我复制这个数据我得到这样的结果:在每个奇数行

R 1 -9.00   
     +0.03 
G 2 -8.00   
     +0.36 
F 3 -7.00  
-0.26 

3列,从一个[A-Z],你想在那么数据后续的行。你想

号码有两种形式:

^\t {3}([-+][0-9]+\.[0-9]{2})$ //for the red numbers 

和:

^([-+][0-9]+\.[0-9]{2}) {3}\t$ //the green numbers 

您可以提取这两种类型是这样的:

^(\t {3})?([-+][0-9]+\.[0-9]{2})({3}\t)?$ 

第二捕获组,([-+][0-9]+.[0-9]{2})是您所在的内容:

s/^(\t {3})?([-+][0-9]+\.[0-9]{2})({3}\t)?$/$2/g 

而不是Applescript,考虑BBEdit或Textwrangler,您可能会发现更容易使用。

把这个在搜索领域:

\r[A-Z].*\r(\t {3})?([-+][0-9]+.[0-9]{2})({3}\t)?$ 

,这在替换:

\ r \ 2

选择 “全部替换”


如何作品

在BBE/TW

重要细节,捕捉的群体被称为\ 1 \ 2 \ 3,而不是$ 1,$ 2,$ 3 ...

+0

哇你很擅长这个。不幸的是,我不是。我可以问你是怎么做到的?我尝试制作一个applescript(我知道在剪贴板上运行正则表达式的唯一方法)'do shell script“pbpaste | sed's/^(\ t {3})?([ - +] [0-9] + \。[0-9] {2})({3} \ t)$/$ 2/g'| pbcopy“'但它给了我一个语法错误 – Johan

+0

我不知道applescript - 它会运行或者在BBEdit的搜索字段中。您可能会喜欢BBEdit的缩减版本,[Textwrangler](http://www.barebones.com/products/textwrangler/index.html) - 我认为它是免费的。它会对文件批处理进行grep搜索和搜索。 – foundry

+0

@ user1461829,请参阅我的最新答案,以及BBEdit/Textwrangler使用的精确说明 – foundry

1

我注意到,浏览器复制表不同。当我想从网页复制表格数据时,我倾向于尝试使用IE/Chrome/Opera浏览器,因为 - 至少在Windows上 - 我可以直接将复制的表格直接粘贴到Excel中,并保留所有列。另一方面,Firefox往往会把桌面搞乱。

使用Opera复制有问题的表格并从单元格A1粘贴到Excel中,我得到F列中的所有绿色数字和H列中的红色。然后,在行1右侧的列中键入以下公式并拖动单元格的角落以复制下一行:

=IF(AND(ISBLANK(F1), ISBLANK(H1)), "", IF(ISBLANK(F1), H1, F1)) 

现在在这个新列中我看到了数据。我可以在原始数据顶部粘贴一个新表格,并将公式重新计算到右侧。 (其他浏览器的实际列可能不同)。

我承认这不是一个完全自动化的解决方案,但我发现这种方法在很多情况下都快速有用,我认为它值得分享。而座右铭:如果起初您的浏览器选择不正确,请尝试另一种!

+0

真的很欣赏那个配方。在这种情况下,对我来说这不是理想的解决方案,但是我有很多类似的情况,这个公式适合我完美。谢谢! – Johan