首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从perl和ruby脚本创建applescript?

从perl和ruby脚本创建applescript?
EN

Stack Overflow用户
提问于 2012-06-17 21:23:46
回答 1查看 215关注 0票数 1

我从http://ncbi.nlm.nih.gov/genomes/FLU/Database/nph-select.cgi#mainform下载了蛋白质序列,文件名为FASTA.FA。对于文件中的每个蛋白质,它都包含一个描述行,然后蛋白质序列在每70个字符后以新行分隔。

示例:

AAB26739 AAB26739流感病毒1973年// NA DVPCIGIEMVHDGGKETWHSAATAIYCLMGSGQLLWDIVTGVAMAL

CAA47401 B/Yamagata/16/88 1988

我有一个ruby脚本,可以将其转换成更适合Excel的文件,其中第一行得到一个细胞,整个蛋白质序列得到另一个细胞(perl在两个细胞之间做一个制表符,Excel将用制表符分隔的内容放在一个新的单元格中)。

这是我的脚本:

代码语言:javascript
复制
ruby -e 'first_line = true; while line = STDIN.gets; line.chomp!; 
if line =~ /^>/; puts unless first_line; print line[1..-1]; print "\t"; 
else; print line; end; first_line = false; end; puts' < ~/Downloads/FASTA.fa > ~/Downloads/Sequences.xls

在我下载文件的网站上,您可以更改第一行的格式,我在每个描述之间包含一个"+“,然后我有一个将+转换为tab的perl脚本(有些描述中有一个空格,所以我不能使用空格作为分隔符)。

代码语言:javascript
复制
perl -p -i -e "s/\+/\t/g" ~/Downloads/Sequences.xls

这两个hack成功地为我创建了一个很好的excel文件,我已经从这两个脚本中创建了一个Automator程序,它位于我的dock中。

然而,现在我的团队希望我用它来创建一个applescript。如果我理解正确的话,这并不像输入"do shell script“然后粘贴脚本那么简单,而是必须格式化实际的脚本,使applescript能够理解它。有没有人能帮我做这个?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-06-17 21:53:15

我建议您应该将ruby脚本转换为合适的.rb文件,然后使用Ruby进行制表符替换(或者使用Spreadsheet gem,如果您想要更美观的Excel输出,尽管这可能需要在其他人的计算机上进行一些设置)。或者使用Perl来完成所有这些工作。只是为了省去你为这种琐碎的搜索/替换工作创建两个运行时的麻烦。就这一点而言,我相信你可以用sed完成所有的工作。

无论如何,一旦你有了脚本作为一个文件,你可以在AppleScript编辑器中创建一个新的脚本,并将其保存为一个脚本包。然后,您可以将脚本“包含在”AppleScript中。这样一来,你就知道脚本在哪里了,如果需要的话,它们就更容易编辑了。然后,您可以使用do shell script使用适当的参数调用该脚本。简化示例:

代码语言:javascript
复制
-- get script path
set rb to POSIX path of (path to me) & "Contents/Resources/Scripts/convert.rb"

-- run script
do shell script "ruby '" & rb & "' < inputfile.fa > outputfile.xls"

如果你愿意,你甚至可以进行一些拖放转换,而不是硬编码到~/Downloads/FASTA.fa的路径(如果有人忘记移动/删除旧的下载,它会一直转换那个下载,并重写相同的xls,因为新的下载将是"FASTA-1.fa“或其他东西,所以请尽可能避免硬编码的路径)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11071595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档