我从http://ncbi.nlm.nih.gov/genomes/FLU/Database/nph-select.cgi#mainform下载蛋白质序列,使用文件名FASTA.FA下载。对于文件中的每个蛋白质,它包括一个描述行,然后蛋白质序列在每70个字符后用新行分隔。
示例:
> CAA47401 B / Yamagata / 16/88 1988 // NA MLPSTIQTLTLFLTSGGVLLSLYVSASLSYLLYSDILLKFSPTEITAPKVPLDCANASNVQAVNRSATKG MTLLLSEPEWTYPRLSCQGSTFQKALLISPHRFGESRGNSAPLIIREPFIACGPKECKHFALTHYAAQPG > AAB26739 B型流感病毒1973 // NA MLPSTIQTLTLFLTSGGVLLSLYVSASLSYLLYSDILLKFSPTKITAPTMSLDCANVSNVQAVNRSATKE DVPCIGIEMVHDGGKETWHSAATAIYCLMGSGQLLWDIVTGVAMAL
我有一个ruby脚本,可以将其转换为更适合Excel的文件,其中第一行获取一个单元格,整个蛋白质序列获取另一个单元格(perl在Excel和Excel之间放置一个标签新细胞)。
这是我的剧本:
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
在我下载文件的网站上,您可以更改第一行的格式,并在每个描述之间加一个“+”,然后我有一个perl脚本将+转换为tab(某些描述有一个其中的空间,所以我不能使用空格作为分隔符。)
perl -p -i -e "s/\+/\t/g" ~/Downloads/Sequences.xls
这两个hacks成功为我创建了一个很好的excel文件,我已经从这两个脚本中创建了一个Automator程序。
但是,现在我的小组希望我创建一个AppleScript。如果我已经正确理解了这一点,那就不像输入“do shell script”然后粘贴脚本那么简单,但你必须格式化实际的脚本本身,以便applescript能够理解它。有人可以帮我创建吗?
谢谢!
答案 0 :(得分:0)
我会说你应该把ruby脚本变成一个合适的.rb
文件,当你在它的时候,使用Ruby来做替换选项卡(或使用Spreadsheet gem,如果你想要更好的Excel输出,虽然这可能需要在其他人的计算机上进行一些设置)。或者在Perl中完成所有操作。只是为了省去你为这些简单的搜索/替换内容启动两个运行时的麻烦。就此而言,你可以在sed
中完成所有工作,我敢肯定。
无论如何,将脚本作为文件后,您可以在AppleScript编辑器中创建一个新脚本并将其另存为脚本包。然后,您可以在AppleScript“内部”包含脚本。这样,您就知道脚本在哪里,如果需要,它们更容易编辑。然后,您可以使用do shell script
使用正确的参数调用脚本。简化示例:
-- 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”或其他东西,所以如果可以,请避免使用硬编码路径