Как сделать сжатый файл напрямую пригодным для использования как обычный файл?
У нас есть специальный компрессор для геномных данных, называемый CRAM, и, несмотря на это, он обеспечивает превосходное сжатие, и люди боятся его использовать, потому что с биоинформационными инструментами не так легко работать как "обычные" файлы. Мы бы хотели, чтобы сжатый файл использовался, например, как параметры для скриптов, открывался в графическом интерфейсе и т. Д., Как классические файлы.
Например, именованный канал или файл блочного устройства, который автоматически выполняет команду unzip при каждом чтении. Если его легко скопировать из системы в систему (в электронную почту, sftp и т. Д.), Было бы еще лучше.
Наше текущее решение:
скажем, у нас есть две команды: cram и uncram (вы можете заменить gzip и gunzip здесь) и входной файл fileX.
мы сжимаем:
cram
fileX.cram мы создаем самораспаковывающийся архив для крама:
echo "uncram
fileX.cram.sex
chmod + x fileX.cram.sexмы используем его в качестве параметра (ов) в инструментах:
mytool <(fileX.cram.sex)
теперь он практически прост в использовании, за исключением записи "<()" и того факта, что вы не можете сразу открыть его в графическом интерфейсе.
Есть идеи, как сделать процесс прозрачным?
1 ответ
Вы можете попробовать предоставить простую оболочку для каждой команды, которая обрабатывает ваши файлы:
$ mytool () {
> command mytool <( "$1" )
> }
$ mytool fileX.cram.sex
command
Встроенная функция позволяет вам запускать оригинальную команду, а не функцию, которая ее скрывает.
Обратите внимание, что fileX.cram.sex
не самораспаковывающийся архив; это просто сценарий оболочки с жестко заданным входным файлом.