Я искал в Интернете это без особой удачи. Более или менее вы всегда получаете пример из пакета VariantAnnotation. И поскольку этот пример отлично работает на моем компьютере, я понятия не имею, почему созданный мной VCF не работает.
Проблема: я хочу определить количество и расположение SNP в выбранных генах. У меня есть большой файл VCF (более 5 ГБ), в котором есть информация обо всех SNP на всех хромосомах для нескольких линий мышей. Очевидно, что мой компьютер зависает, если я пытаюсь сделать что-либо в масштабе всего генома, поэтому я сначала определил геномное расположение интересующих генов на хромосоме 1. Затем я использовал пакет VariantAnnotation, чтобы получить из массива только данные, относящиеся к интересующим меня генам. VCF-файл:
library(VariantAnnotation)
param<-ScanVcfParam(
info=c("AC1","AF1","DP","DP4","INDEL","MDV","MQ","MSD","PV0","PV1","PV2","PV3","PV4","QD"),
geno=c("DP","GL","GQ","GT","PL","SP","FI"),
samples=strain,
fixed="FILTER",
which=gnrng
)
Приведенный выше код взят из написанной мной функции, которая принимает напряжение в качестве аргумента. gnrng относится к объекту GRange, содержащему геномные местоположения интересующих меня генов.
vcf<-readVcf(file, "mm10",param)
Это отлично работает, и я получаю свой vcf (dim: 21783 1), но когда я пытаюсь сохранить, это не сработает.
file.vcf<-tempfile()
writeVcf(vcf, file.vcf)
Error in .pasteCollapse(ALT, ",") : 'x' must be a CharacterList
Я даже пробовал параллельно, сначала делая пример из пакета, а потом подставляя свой файл VCF:
#This is the example:
out1.vcf<-tempfile()
in1<-readVcf(fl,"hg19")
writeVcf(in1,out1.vcf)
Это прекрасно работает, но если я заменю in1 только на vcf, я получу ту же ошибку.
Надеюсь, я ясно выразился... И любая помощь будет принята с благодарностью!! Заранее спасибо!
sessionInfo()
, так как это похоже на ошибку в VariantAnnotation. пакет. - person Martin Morgan   schedule 27.03.2014