我们有一个名为CRAM的基因组数据的定制压缩器,并且它提供了高级压缩,人们不敢使用它,因为它不太容易使用生物信息学工具处理,如常规"文件。我们希望允许压缩文件用作脚本的参数,在GUI中打开等,就像经典文件一样。
类似于命名管道或块设备文件,无论何时从中读取,都会自动执行解压缩命令。如果很容易从系统复制到系统(到电子邮件,sftp等),那就更好了。
我们目前的解决方案:
让我们说我们有两个命令,cram和uncram(你可以在这里替换gzip和gunzip)和一个输入文件fileX。
我们压缩:
cram< fileX> fileX.cram
我们为cram创建自解压档案:
echo" uncram< fileX.cram" > fileX.cram.sex
chmod + x fileX.cram.sex
我们将它用作工具中的参数:
mytool<(fileX.cram.sex)
现在它几乎易于使用,除了"<()"符号,以及您无法立即在GUI中打开它。
如何使流程透明化?
答案 0 :(得分:2)
您可以尝试在处理文件的每个命令周围提供一个简单的包装器:
$ mytool () {
> command mytool <( "$1" )
> }
$ mytool fileX.cram.sex
command
内置允许您运行原始命令,而不是影响它的功能。
请注意,fileX.cram.sex
不是自解压存档;它只是一个带有硬编码输入文件的shell脚本。