1

我们有一个用于基因组数据的定制压缩器,称为 CRAM,尽管它提供了卓越的压缩能力,但人们不敢使用它,因为使用生物信息学工具作为“常规”文件处理并不那么容易。我们希望允许将压缩文件用作脚本的参数、在 GUI 中打开等等,就像经典文件一样。

就像命名管道或块设备文件一样,它会在读取时自动执行解压缩命令。如果可以轻松地从系统复制到系统(到电子邮件、sftp 等),那就更好了。

我们目前的解决方案:

  1. 假设我们有两个命令,cram 和 uncram(你可以在这里替换 gzip 和 gunzip),以及一个输入文件 fileX.

  2. 我们压缩:

    补习班<fileX> fileX.cram

  3. 我们为 cram 创建自解压存档:

    echo "uncram < fileX.cram" > fileX.cram.sex
    chmod +x fileX.cram.sex

  4. 我们将其用作工具中的参数:

    我的工具 <(fileX.cram.sex)

现在它几乎很容易使用,除了“<()”符号,而且您不能立即在 GUI 中打开它。

任何想法如何使过程透明?

4

1 回答 1

2

您可以尝试为处理文件的每个命令提供一个简单的包装器:

$ mytool () {
>  command mytool <( "$1" )
> }
$ mytool fileX.cram.sex

command内置命令允许您运行原始命令,而不是隐藏它的函数。

请注意,这fileX.cram.sex不是自解压存档;它只是一个带有硬编码输入文件的 shell 脚本。

于 2013-04-15T17:03:52.470 回答