объединение двух пользовательских файлов .gtf (r) - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть два пользовательских файла, и я пытался объединить их в один файл .gtf, чтобы в конечном итоге сделать пользовательский fast-файл для kallisto. я использовал библиотеку биострок (bioconductor) в R и прочитал оба файла как Genomi c Ranges

genes.gf <-readGFFAsGRanges("novel_genes.gtf")
isoforms.gf <-readGFFAsGRanges("novel_isoforms.gtf")

, однако, когда я пытаюсь использовать cat для их объединения, я получаю ошибку:

cat(genes.gf, isoforms.gf, file = "custom.gf")

Ошибка в cat (tgenes.gf, isoforms.gf, file = "custom.gf"): аргумент 1 (тип 'S4') не может быть обработан 'cat'

rbind также, похоже, не работает:

rbind(genes.gf, isoforms.gf, file = "custom.gf")

выдавая эту ошибку: Ошибка в rbind2 (argl [[i]], r): нет метода для приведения этого класса S4 к вектору

Я все еще очень новичок в этом, и любые советы / предложения будут с благодарностью!

1 Ответ

0 голосов
/ 05 апреля 2020

Я создаю два примера файлов gtf:

library(rtracklayer)
gtf = import("ftp://ftp.ensembl.org/pub/release-99/gtf/saccharomyces_cerevisiae/Saccharomyces_cerevisiae.R64-1-1.99.gtf.gz")
export(gtf[gtf$gene_biotype=="protein_coding"],"coding.gtf")
export(gtf[gtf$gene_biotype=="tRNA"],"tRNA.gtf")

Если это GRanges, вы можете объединить их, используя c ():

g1 = import("coding.gtf")
g2 = import("tRNA.gtf")

export(c(g1,g2),"combined.gtf")

Однако обратите внимание на комбинированный gtf выше не отсортирован, и что если некоторые столбцы появляются в одном, но не в другом, он будет заполнен NA.

...