Есть ли способ избежать создания временного файла в R?

#r

#r

Вопрос:

У меня есть база данных, в которую файлы VCF были вставлены в качестве переменной большого двоичного объекта. Я могу получить его без проблем. Однако затем мне нужно передать его некоторым различным функциям (VariantAnnotation и т. Д.), Которые Ожидают имя файла VCF. Есть ли способ «подделать» объект file для передачи этим функциям, если у меня уже есть все данные в символьной строке?

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

 #x contains the entire vcf file as a character string

temp_filename = tempfile(fileext = ".vcf")
writeChar(x, temp_filename)
testVcf = readVcf(temp_filename)
unlink(temp_filename)
  

Это работает нормально, но я хотел бы избежать ненужного ввода-вывода файлов, если это возможно.

Комментарии:

1. похоже, readVcf обладает большой гибкостью при обработке файла в возвращаемый объект, который вам может понадобиться. Таким образом, подход может заключаться в том, чтобы заглянуть внутрь функции readVcf и посмотреть, не загружает ли она где-нибудь эквивалент вашего большого двоичного объекта (в этом случае вы могли бы просто создать версию, которая принимает большой двоичный объект в этот момент. Или, если readVcf выполняет много умных построчных операций чтения / пропуска, посмотрите, можете ли вы более эффективно заставить базу данных записывать большой двоичный объект на диск, а не в R и обратно и обратно? rdocumentation.org/packages/VariantAnnotation/versions/1.18.5 /…

2. Вы должны указать, какие пакеты вы используете. Принимают ли эти функции только символьные значения с именами путей? Или они позволяют передавать объект подключения?