Skip to content
Snippets Groups Projects
Commit 21f352a2 authored by Peter van 't Hof's avatar Peter van 't Hof
Browse files

Added contig based merge step

parent cd1dbb8e
No related branches found
No related tags found
No related merge requests found
...@@ -60,25 +60,34 @@ class GwasTest(val root: Configurable) extends QScript with BiopetQScript with R ...@@ -60,25 +60,34 @@ class GwasTest(val root: Configurable) extends QScript with BiopetQScript with R
/** Pipeline itself */ /** Pipeline itself */
def biopetScript(): Unit = { def biopetScript(): Unit = {
val vcfFile: File = inputVcf.getOrElse { val (vcfFile, chrVcfFiles): (File, Map[String, File]) = inputVcf.map((_, Map[String, File]())).getOrElse {
require(inputGens.nonEmpty, "No vcf file or gens files defined in config") require(inputGens.nonEmpty, "No vcf file or gens files defined in config")
val outputDirGens = new File(outputDir, "gens_to_vcf") val outputDirGens = new File(outputDir, "gens_to_vcf")
val cv = new CatVariants(this) val cvTotal = new CatVariants(this)
cv.assumeSorted = true cvTotal.assumeSorted = true
cv.outputFile = new File(outputDirGens, "merge.gens.vcf.gz") cvTotal.outputFile = new File(outputDirGens, "merge.gens.vcf.gz")
inputGens.zipWithIndex.foreach { gen => val chrGens = inputGens.groupBy(_.contig).map { case (contig, gens) =>
val gensToVcf = new GensToVcf(this) val cvChr = new CatVariants(this)
gensToVcf.inputGens = gen._1.genotypes cvChr.assumeSorted = true
gensToVcf.inputInfo = gen._1.info //cvChr.isIntermediate = true
gensToVcf.contig = gen._1.contig cvChr.outputFile = new File(outputDirGens, s"${contig}.merge.gens.vcf.gz")
gensToVcf.samplesFile = phenotypeFile gens.zipWithIndex.foreach { gen =>
gensToVcf.outputVcf = new File(outputDirGens, gen._1.genotypes.getName + s".${gen._2}.vcf.gz") val gensToVcf = new GensToVcf(this)
gensToVcf.isIntermediate = true gensToVcf.inputGens = gen._1.genotypes
add(gensToVcf) gensToVcf.inputInfo = gen._1.info
cv.inputFiles :+= gensToVcf.outputVcf gensToVcf.contig = gen._1.contig
gensToVcf.samplesFile = phenotypeFile
gensToVcf.outputVcf = new File(outputDirGens, gen._1.genotypes.getName + s".${gen._2}.vcf.gz")
gensToVcf.isIntermediate = true
add(gensToVcf)
cvChr.inputFiles :+= gensToVcf.outputVcf
}
add(cvChr)
cvTotal.inputFiles :+= cvChr.outputFile
contig -> cvChr.outputFile
} }
add(cv) add(cvTotal)
cv.outputFile (cvTotal.outputFile, Map[String, File]())
} }
val snpTests = BedRecordList.fromReference(referenceFasta()) val snpTests = BedRecordList.fromReference(referenceFasta())
...@@ -91,7 +100,7 @@ class GwasTest(val root: Configurable) extends QScript with BiopetQScript with R ...@@ -91,7 +100,7 @@ class GwasTest(val root: Configurable) extends QScript with BiopetQScript with R
bedFile.deleteOnExit() bedFile.deleteOnExit()
val sv = new SelectVariants(this) val sv = new SelectVariants(this)
sv.inputFiles :+= vcfFile sv.inputFiles :+= chrVcfFiles.getOrElse(region.chr, vcfFile)
sv.outputFile = new File(regionDir, s"${region.chr}-${region.start + 1}-${region.end}.vcf.gz") sv.outputFile = new File(regionDir, s"${region.chr}-${region.start + 1}-${region.end}.vcf.gz")
sv.intervals :+= bedFile sv.intervals :+= bedFile
sv.isIntermediate = true sv.isIntermediate = true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment