isglobal-brge / recombClust

Clustering of chromosomal subpopulations based on recombination patterns
MIT License
0 stars 1 forks source link

Error en computeRecombProbabilities_inFile #3

Open yocra3 opened 3 years ago

yocra3 commented 3 years ago

La función computeRecombProbabilities_inFile me ha dado el siguiente error:

res <- computeRecombProbabilities_inFile(gds, range, samples)

 File exists
# of selected variants: 582,076
# of selected samples: 503
[==================================================] 100%, completed, 5s
# of selected variants: 41,512
[==================================================] 100%, completed, 11s
# of selected variants: 85,791
Error in ipos:epos : argument of length 0
> traceback()
2: CgetIndexfromGenCoord(gds_file, seqlevels(range), start(range), 
       end(range), 0.1)
1: computeRecombProbabilities_inFile(gds, range, samples)
yocra3 commented 3 years ago

Acabo de ver que la función llama a computeRecombProbabilities pero no están pasados los argumentos con ...

yocra3 commented 3 years ago

Te dejo un pequeño código por si quieres testear los errores que me dan. Si te pones en la carpeta $HOME/PublicData/STUDY/1000GENOME del servidor:

## Convert to GDS
library(recombClust)
library(GenomicRanges)
library(SeqArray)

vcf <- "VCF/ALL.chr22.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz"
gds <- "GDS/ALL.chr22.gds"
seqVCF2GDS(vcf, gds)

load("VCF/PopulationClassification.RData")
range <- GRanges("22:12085554-35814670") # Este rango evita que entren SNPs duplicados

samples <- subset(samp_pop, superpop == "EUR")$name
res <- computeRecombProbabilities_inFile(gds, range, samples)
yocra3 commented 3 years ago

He hecho más pruebas y tengo sigo teniendo errores. Para empezar he probado una región más pequeña:

## Convert to GDS
library(recombClust)
library(GenomicRanges)
library(SeqArray)

vcf <- "VCF/ALL.chr22.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz"
gds <- "GDS/ALL.chr22.gds"
seqVCF2GDS(vcf, gds)

load("VCF/PopulationClassification.RData")
 range <- GRanges("22:30085554-31304566")

 samples <- subset(samp_pop, superpop == "EUR")$name
 snpsData <- getData(gds, range, samples, 0.1)
# of selected variants: 34,794
# of selected samples: 503
[==================================================] 100%, completed, 1s
# of selected variants: 2,118
# of selected variants: 1,762
> res <- computeRecombProbabilities_inFile(gds, range, samples)
# of selected variants: 34,794
# of selected samples: 503
[==================================================] 100%, completed, 0s
# of selected variants: 2,118
# of selected variants: 1,762
[==================================================] 100%, completed, 13s
# of selected variants: 85,791
Error in haplos[, ind2] : subíndice fuera de  los límites
dpelegri commented 3 years ago

Hola Carlos, He revisado el error que te daba y creo que ya está solucionado, no lo he probado exactamente con tus datos porque en mi ordenador tardaba mucho, lo he probado con un rango todavía más reducido pero en el que se reproducía el mismo error, ya me dirás que tal ...

yocra3 commented 3 years ago

El código funciona y devuelve la matriz. No obstante, los nombres de las filas son los valores de los genotipos, en vez de los nombres de las muestras. ¿Se podría cambiar?

El valor correcto sería el rownames de snpData$genotypes