Как сделать сжатый файл напрямую пригодным для использования как обычный файл?

У нас есть специальный компрессор для геномных данных, называемый CRAM, и, несмотря на это, он обеспечивает превосходное сжатие, и люди боятся его использовать, потому что с биоинформационными инструментами не так легко работать как "обычные" файлы. Мы бы хотели, чтобы сжатый файл использовался, например, как параметры для скриптов, открывался в графическом интерфейсе и т. Д., Как классические файлы.

Например, именованный канал или файл блочного устройства, который автоматически выполняет команду unzip при каждом чтении. Если его легко скопировать из системы в систему (в электронную почту, sftp и т. Д.), Было бы еще лучше.

Наше текущее решение:

  1. скажем, у нас есть две команды: cram и uncram (вы можете заменить gzip и gunzip здесь) и входной файл fileX.

  2. мы сжимаем:

    cram fileX.cram

  3. мы создаем самораспаковывающийся архив для крама:

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

  4. мы используем его в качестве параметра (ов) в инструментах:

    mytool <(fileX.cram.sex)

теперь он практически прост в использовании, за исключением записи "<()" и того факта, что вы не можете сразу открыть его в графическом интерфейсе.

Есть идеи, как сделать процесс прозрачным?

1 ответ

Вы можете попробовать предоставить простую оболочку для каждой команды, которая обрабатывает ваши файлы:

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

command Встроенная функция позволяет вам запускать оригинальную команду, а не функцию, которая ее скрывает.

Обратите внимание, что fileX.cram.sex не самораспаковывающийся архив; это просто сценарий оболочки с жестко заданным входным файлом.

Другие вопросы по тегам