zkutalik / ssimp_software

GNU General Public License v3.0
16 stars 10 forks source link

ssimp: src/ssimp.cc:1771 Assertion 'c_l1 >= -1.0' failed #108

Open Xuemin-Wang opened 4 years ago

Xuemin-Wang commented 4 years ago

Dear author,

While using ssimp, the issue below raised: chrm1 11,000,000-12,000,000 5,497 # GWAS SNPs in this window (with 250,000 flanking) 4,193 # SNPs in both (i.e. useful as tags) 9,134 # target SNPs (anything in narrow window, will include some tags) ssimp: src/ssimp.cc:1771: mvn::SquareMatrix ssimp::make_C_tag_tag_matrix(const std::vector<const std::vector*>&): Assertion `c_kl >= -1.0' failed.

Here is the command I used for the imputation. ssimp \ --gwas ../allEC_unmunged \ --ref ~/reference_panels/1000genomes/ALL.chr{CHRM}.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz \ --out allEC_unmunged_ssimp \ --sample.names ~/reference_panels/1000genomes/integrated_call_samples_v3.20130502.ALL.panel/sample/super_pop=EUR \ --log allEC_unmunged.log \ --impute.maf 0.01

Do you know what caused this issue and how to fix this?

Many thanks, patrick

zkutalik commented 4 years ago

Hi Patrick,

Thanks for letting us know about this issue. To be able to understand why lower than -1 correlations appear between the tag SNPs, could you please insert the following line just before line 1771 (i.e. just before "assert(c_kl >= -1.0);"):

if (c_kl< -1) {printf(“Problematic correlation: SNP %d - %d: %2.15f\n”,k,l,c_kl);}

Can you pls then recompile and rerun your code then copy me the text written before you get the error message?

Thanks

Zoltan

Xuemin-Wang commented 4 years ago

ssimp.log.log Dear Zlotan,

Thanks very much for your information.

Please find attached the log file after adding the line of scripts as suggested. Arguments used to run ssimp were as below: module load ssimp/0.5.6 ssimp \ --gwas ../allEC_unmunged \ --ref ~/reference_panels/1000genomes/ALL.chr{CHRM}.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz \ --out allEC_unmunged_ssimp \ --sample.names ~/reference_panels/1000genomes/integrated_call_samples_v3.20130502.ALL.panel/sample/super_pop=EUR \ --log allEC_unmunged.log

The command was executed on GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

Regards, patrick

zkutalik commented 4 years ago

This looks strange, if c_kl were smaller than -1, it would have printed the SNP pair that violated it, but then it throws an error message that c_kl>=-1 is violated. May it has generated a missing value (monomorphic SNPs).

Can you replace the line I asked you to add with this one:

if (isnan(c_kl)) {printf(“Problematic correlation: SNP %d - %d\n”,k,l);}

Recompile the code and pls send me the log file.

Best

Zoltan

Xuemin-Wang commented 4 years ago

Hi Zoltan,

Thanks for your comments.

Please find attached the log file after updating the script as suggested. The last few lines of log file are as follows.

Regards,

chrm1 10,000,000-11,000,000 4,534 # GWAS SNPs in this window (with 250,000 flanking) 3,386 # SNPs in both (i.e. useful as tags) 8,342 # target SNPs (anything in narrow window, will include some tags)

chrm1 11,000,000-12,000,000 5,497 # GWAS SNPs in this window (with 250,000 flanking) 4,193 # SNPs in both (i.e. useful as tags) 9,134 # target SNPs (anything in narrow window, will include some tags) ssimp: src/ssimp.cc:1772: mvn::SquareMatrix ssimp::make_C_tag_tag_matrix(const std::vector<const std::vector*>&): Assertion `c_kl >= -1.0' failed.

chrm1 12,000,000-13,000,000 5,297 # GWAS SNPs in this window (with 250,000 flanking) 4,059 # SNPs in both (i.e. useful as tags) 9,234 # target SNPs (anything in narrow window, will include some tags) Problematic correlation: SMP 0 - 3623

ssimp_2.log

zkutalik commented 4 years ago

Thanks, Patrick. Indeed it was a missing value problem. I updated the ssimp.cc file by adding

if (isnan(c_kl)) {c_kl=0.0;}

before the problematic line 1772.

Could you please download the updated ssimp.cc, recompile it and let me know if it runs now correctly?

Thanks

Zoltan