BGI-shenzhen / LDBlockShow

LDBlockShow: a fast and convenient tool for visualizing linkage disequilibrium and haplotype blocks based on VCF files
MIT License
136 stars 40 forks source link

Use of uninitialized value in subtraction #6

Closed KajBro closed 3 years ago

KajBro commented 3 years ago

Hi,

I have tried with several different things but I get these error messages: aWrining: SVG module in Perl is missing, trying to loading the built-in [SVG.pm]... Loading SVG module done Start draw... SVG info: SNPNumber :0 , SVG (width,height) = (0,0) Use of uninitialized value in subtraction (-) at /Users/kajsabrolin/Desktop/LDBlockShow-1.38/bin//ShowLDSVG line 564, line 1. Use of uninitialized value in subtraction (-) at /Users/kajsabrolin/Desktop/LDBlockShow-1.38/bin//ShowLDSVG line 564, line 1. Use of uninitialized value in subtraction (-) at /Users/kajsabrolin/Desktop/LDBlockShow-1.38/bin//ShowLDSVG line 586, line 1. Use of uninitialized value in subtraction (-) at /Users/kajsabrolin/Desktop/LDBlockShow-1.38/bin//ShowLDSVG line 586, line 1. Illegal division by zero at /Users/kajsabrolin/Desktop/LDBlockShow-1.38/bin//ShowLDSVG line 586, line 1.

Could you help me with this? Thanks!

hewm2008 commented 3 years ago

Dear @KajBro your input region have no SNP site.
I guess it is caused by the wrong region of ​​your input. Someone often make mistakes in the upper or lower characters of chr [chr3/ Chr3 / 3/ ], please make sure that the chr name you enter is consistent with vcf input file If the chr name is the same, you can enlarge the region ,so that there is a certain amount of snp in this region.

KajBro commented 3 years ago

Thank you for the quick reply! It worked when I increased the region. What is the minimum number of SNPs that can be used?

hewm2008 commented 3 years ago

I thinks the minimum number of SNPs should >=3 . >=5

hewm2008 commented 3 years ago

Dear @KajBro you can see more help (SNP filter parameters) by follow command: ./bin/LDBlockShow -h The 32 SNPs after filtering as follows "-MAF 0.05 -Het 0.90 -Miss 0.25" remain 17 SNPs . you can modify these three parameters according to your own situation.

I still have some issues: when using a VCF file with 32 SNPs as an input, and --Region is covering all SNPs in the file, only 17 are used (In This Region TotalSNP Number is 17). I cannot see any errors in my VCF file that would cause this and I do not understand why this is happening. Do you know why this is happening? Thank you!

KajBro commented 3 years ago

Thank you, I discovered my own error.

I do although have one final question. I use -Selevar 1, -BlockType 1 and -ShowNum. I do get proper blocks (the same as when running in PLINK) but the coloring is not correct. I have several high values of (0.98-1.00) that are white or pale yellow and low values, 0.00 that are red. Am I missing something again or why could this be? Currently, I cannot use the plot since some of the blocks are completely in white even though the values are high. Just discovered that the numbers are shifted to the left, there are numbers outside of the heatmap on the left and squares on the right that do not contain any numbers. Have used the input file for ShowNum generated in the earlier step as suggested.

Thanks again!

hewm2008 commented 3 years ago

@KajBro I thinks the col and the value what you said is impossible to exist. and the numbers are shifted is a bug of lower version( <1.30 ); Do you use the newerversion? >=1.36 ; The latest version of is 1.38 . if you use the V1.38 also have the same think , you can send me your region vcf and the shell . I will test what is wrong here .

KajBro commented 3 years ago

I do use the latest version, v1.38. Will send you an email

hewm2008 commented 3 years ago

Dear @KajBro
I check the code of v1.38 again ,it can't be [values of (0.98-1.00) that are white or pale yellow and low values, 0.00 that are red. ] . may be you see wrong the value to the wrong site? or take the wrong statistic value ?

the PLINK's calculation statistic is R2 ; Haploview 's calculation statistic is D‘ ;R:LDheatmap calculation statistic is R2 ; and LDBlockShow can be D' and R2 (defaut :D' ) ; If you want to compare with Plink, make sure the statistics are the same. -SeleVar <int> Select statistic for deal. 1: D' 2: R^2 3/4: Both [1]

If you check PLINK's values ,you should take para -SeleVar 2 for R2 . Other infomation : The -BlockType 1 Gabriel use the D' to cal the blocks , so if you take para -SeleVar 2 -BlockType 1 , the LDheatmap col will be the R^2 col , and the block will be the D‘ Blocks. if you take the -SeleVar 1 -BlockType 1 see the result will be better. LDheatmap :D‘ and blocks also D'

you can send me your region vcf and the shell script to my mails :hewm2008@gmail.com

KajBro commented 3 years ago

Hi,

Thank you but as I wrote, I used -SeleVar 1 -BlockType 1 and obtained the result as described.

hewm2008 commented 3 years ago

Dear @KajBro :
I looked at your picture carefully, the color is no problem, but show num moved one grid to the left. This bug is mainly affected by the adjustment of the canvas size. I provided a new parameter here , which can be moved the ShowNum. perl ShowLDSVG -MoreHelp will see the more help para you can add the para -ShiftShowNum
perl ShowLDSVG -ShiftShowNum 1.0 ... any information tell me. if ok. I will update to the github and add the -ShiftXShowNum -ShiftYShowNum on the later ver

KajBro commented 3 years ago

Thank you for trying to solve the issue. However, there is no difference in the output file (neither the png or svg) when using the -ShiftShowNum 1.0. Hopefully, I can get it to work with a later version

hewm2008 commented 3 years ago

@KajBro I have fixed this bug(ShowNum shiftX to left) on version 1.39 。 you can try at this version . also I provideed the -ShiftXShowNum para for user to move X of ShowNum manually.