Clinical-Genomics-Lund / nextflow_wgs

5 stars 5 forks source link

Added GQ to format field of all individuals via filter_mutect2 #192

Closed ViktorHy closed 4 months ago

ViktorHy commented 4 months ago

Description

This is a change to make mitochondrial variants loadable by loqusdb. Loqusdb requires a genotype quality field.

Type of change

Checklist:

Patch

How to test the changes

  1. In the split_normalize_mito step, use the ${group}.mutect2.breakmulti.filtered5p.0genotyped.vcf
  2. Run the updated filter_mutect2_mito.pl as usual

Expected outcome

The GQ field should be added to all filtered variants

Review

Post-merge

ViktorHy commented 4 months ago

I have ran two cases, one trio and one single wgs. These both completed without errors. I then took one mitochondrial variant and one nuclear variant from each case and loaded into scout using LOQUS-MITO-SINGLE and LOQUS-MITO-TRIO to see that the variants loaded as expected. UPDATE: I tried adding homozygous mito variants to scout, it works.

I then loaded the variants into loqusdb_38_dev to see that loqusdb accepted the variants.

The results from this is as such: BEFORE _id: 'M_3572_T_G', chrom: 'M', alt: 'G', ref: 'T', start: 3572, end: 3573, observations: 79, homozygote: 0, hemizygote: 0, AFTER _id: 'M_3572_T_G', chrom: 'M', alt: 'G', ref: 'T', start: 3572, end: 3573, observations: 80, homozygote: 0, hemizygote: 0,

This is also true for the nuclear variants and the other mito variant for the single and trio cases.

UPDATE2: loqusdb load also loads homozygotes as expected

ViktorHy commented 4 months ago

Test samples have been documented in teams-excel file

ViktorHy commented 4 months ago

In a conversation with Sofie we decided that we should also treat mito variants above 99% AF as homozygotes.

UPDATE3: This seems to only induce a change in genotype, does not affect RankScore as inheritance models are not used for mito scoring.

Jakob37 commented 4 months ago

I'll start looking at this one now

Jakob37 commented 4 months ago

(Reposted as I first posted a lab ID -_-)

I tested by grabbing the latest wgs run, and using Alexanders magic cdp script to find the work dir. Then copied out the target vcf, and tried running it using PR-version of this Perl script.

Looks like the GQ values are added successfully.

gq

They were not there prior to running the script.

I got a flood of warnings though:

Singularity wgs_2021-03-16.sif:/fs1/jakob/scratch/240426_mito_pr> ./filter_mutect2_mito.pl <id>.mutect2.breakmulti.filtered5p.0genotyped.vcf > out.vcf
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 250.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 251.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 251.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 252.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 252.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 253.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 253.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 254.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 254.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 255.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 255.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 256.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 256.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 257.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 257.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 258.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 258.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 259.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 259.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 260.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 260.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 261.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 261.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 262.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 263.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 263.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 264.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 264.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 265.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 265.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 266.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 266.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 267.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 267.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 268.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 268.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 269.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 269.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 270.

Not sure how concerning, but should be understood and perhaps fixed.

ViktorHy commented 4 months ago

(Reposted as I first posted a lab ID -_-)

I tested by grabbing the latest wgs run, and using Alexanders magic cdp script to find the work dir. Then copied out the target vcf, and tried running it using PR-version of this Perl script.

Looks like the GQ values are added successfully.

gq

They were not there prior to running the script.

I got a flood of warnings though:

Singularity wgs_2021-03-16.sif:/fs1/jakob/scratch/240426_mito_pr> ./filter_mutect2_mito.pl <id>.mutect2.breakmulti.filtered5p.0genotyped.vcf > out.vcf
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 250.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 251.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 251.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 252.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 252.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 253.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 253.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 254.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 254.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 255.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 255.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 256.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 256.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 257.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 257.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 258.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 258.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 259.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 259.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 260.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 260.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 261.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 261.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 262.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 263.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 263.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 264.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 264.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 265.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 265.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 266.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 266.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 267.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 267.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 268.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 268.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 269.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 269.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 270.

Not sure how concerning, but should be understood and perhaps fixed.

Yeah it only concerning in the sense that you forgot to give the script an proband ID. Don't know how it managed to give a result anyway

ViktorHy commented 4 months ago

Did a quick test to see that code still runs, merging

Jakob37 commented 4 months ago

(Reposted as I first posted a lab ID -_-) I tested by grabbing the latest wgs run, and using Alexanders magic cdp script to find the work dir. Then copied out the target vcf, and tried running it using PR-version of this Perl script. Looks like the GQ values are added successfully.

gq

They were not there prior to running the script. I got a flood of warnings though:

Singularity wgs_2021-03-16.sif:/fs1/jakob/scratch/240426_mito_pr> ./filter_mutect2_mito.pl <id>.mutect2.breakmulti.filtered5p.0genotyped.vcf > out.vcf
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $proband in string eq at ./filter_mutect2_mito.pl line 24, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 249.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 250.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 251.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 251.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 252.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 252.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 253.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 253.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 254.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 254.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 255.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 255.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 256.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 256.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 257.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 257.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 258.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 258.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 259.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 259.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 260.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 260.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 261.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 261.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 262.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 263.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 263.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 264.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 264.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 265.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 265.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 266.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 266.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 267.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 267.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 268.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 268.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 269.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 33, <__ANONIO__> line 269.
Use of uninitialized value $index in array element at ./filter_mutect2_mito.pl line 31, <__ANONIO__> line 270.

Not sure how concerning, but should be understood and perhaps fixed.

Yeah it only concerning in the sense that you forgot to give the script an proband ID. Don't know how it managed to give a result anyway

OK interesting. An argument for my point about a primitive input check / help message.