I am trying to simulate different genome of peoples, I have data (VCF files) of various genes from the 1000K Gene project.
I want to simulate different whole genomes i.e generate a new population by combining real haplotypes I have. I am wondering what is the best way to approach the problem. That is what is an efficient method of generating realistic (Not just randomly select parts and recombining them) new genotypes based on the real genotypes I already have.
I am using Bioconductor packages VariantAnnotation to read and manipulate the VCF files and TxDb.Hsapiens.UCSC.hg19.knownGene to determine the Genes positions.
The data looks as the following:
> gene58@rowRanges
GRanges object with 91 ranges and 1 metadata column:
seqnames ranges strand | paramRangeID
<Rle> <IRanges> <Rle> | <factor>
rs551585351 1 229566998 * | <NA>
rs528384854 1 229567027 * | <NA>
rs542093083 1 229567063 * | <NA>
rs561849701 1 229567128 * | <NA>
rs531042647 1 229567160 * | <NA>
... ... ... ... . ...
rs565479298 1 229569784 * | <NA>
rs572772527 1 229569785 * | <NA>
rs605430 1 229569803 * | <NA>
rs605428 1 229569804 * | <NA>
rs368699658 1 229569810 * | <NA>
-------
seqinfo: 86 sequences from "hg19" genome
The genotype matrix of the gene:
> gene.mat[1:5, 1:5]
HG00867 HG02371 HG00759 HG00766 HG00844
rs551585351 "0|0" "0|0" "0|0" "0|0" "0|0"
rs528384854 "0|0" "0|0" "0|0" "0|0" "0|0"
rs542093083 "0|0" "0|0" "0|0" "0|0" "0|0"
rs561849701 "0|0" "0|0" "0|0" "0|0" "0|0"
rs531042647 "0|0" "0|0" "0|0" "0|0" "0|0"