diff --git a/impute_jass/data/Region_LD.csv b/impute_jass/data/Region_LD.csv deleted file mode 100644 index d6da216b2a887051048af1201933a26419ffd0bb..0000000000000000000000000000000000000000 --- a/impute_jass/data/Region_LD.csv +++ /dev/null @@ -1,1704 +0,0 @@ -chr,start,stop -chr1,10583,1892607 -chr1,1892607,3582736 -chr1,3582736,4380811 -chr1,4380811,5913893 -chr1,5913893,7247335 -chr1,7247335,9365199 -chr1,9365199,10806984 -chr1,10806984,11777841 -chr1,11777841,12779466 -chr1,12779466,14891511 -chr1,14891511,16897730 -chr1,16897730,18662899 -chr1,18662899,20469149 -chr1,20469149,21736588 -chr1,21736588,23086883 -chr1,23086883,23920590 -chr1,23920590,25516845 -chr1,25516845,27401867 -chr1,27401867,30161881 -chr1,30161881,32438685 -chr1,32438685,34799758 -chr1,34799758,37549183 -chr1,37549183,38731847 -chr1,38731847,40200567 -chr1,40200567,41975327 -chr1,41975327,43758457 -chr1,43758457,44969183 -chr1,44969183,46899501 -chr1,46899501,48002576 -chr1,48002576,48978188 -chr1,48978188,49894177 -chr1,49894177,51713726 -chr1,51713726,54226262 -chr1,54226262,56413117 -chr1,56413117,57021728 -chr1,57021728,58865399 -chr1,58865399,59890409 -chr1,59890409,61922365 -chr1,61922365,63455089 -chr1,63455089,65041704 -chr1,65041704,66939404 -chr1,66939404,68477895 -chr1,68477895,69687616 -chr1,69687616,71372470 -chr1,71372470,71684405 -chr1,71684405,74326907 -chr1,74326907,76728135 -chr1,76728135,79661198 -chr1,79661198,81354191 -chr1,81354191,83991748 -chr1,83991748,84844495 -chr1,84844495,86454751 -chr1,86454751,88128631 -chr1,88128631,90066303 -chr1,90066303,91886317 -chr1,91886317,93536459 -chr1,93536459,94506191 -chr1,94506191,96150893 -chr1,96150893,97885249 -chr1,97885249,99800604 -chr1,99800604,100826405 -chr1,100826405,102041016 -chr1,102041016,102898745 -chr1,102898745,103914211 -chr1,103914211,106087842 -chr1,106087842,108409665 -chr1,108409665,110303931 -chr1,110303931,111741737 -chr1,111741737,113273306 -chr1,113273306,114873845 -chr1,114873845,115880593 -chr1,115880593,118839067 -chr1,118839067,144977494 -chr1,144977494,148361253 -chr1,148361253,151538881 -chr1,151538881,153180829 -chr1,153180829,154770403 -chr1,154770403,156336133 -chr1,156336133,158027412 -chr1,158027412,159913048 -chr1,159913048,162346721 -chr1,162346721,165191702 -chr1,165191702,166460517 -chr1,166460517,169086324 -chr1,169086324,170557776 -chr1,170557776,173097907 -chr1,173097907,175089768 -chr1,175089768,177433381 -chr1,177433381,178944309 -chr1,178944309,178954470 -chr1,178954470,181144121 -chr1,181144121,182755356 -chr1,182755356,184595513 -chr1,184595513,186810023 -chr1,186810023,188759945 -chr1,188759945,189904130 -chr1,189904130,191868930 -chr1,191868930,194107442 -chr1,194107442,196176201 -chr1,196176201,197311514 -chr1,197311514,199239884 -chr1,199239884,200137649 -chr1,200137649,201589975 -chr1,201589975,203334734 -chr1,203334734,204681068 -chr1,204681068,206073265 -chr1,206073265,208410364 -chr1,208410364,210787750 -chr1,210787750,212842330 -chr1,212842330,214578266 -chr1,214578266,216243634 -chr1,216243634,218705513 -chr1,218705513,219590571 -chr1,219590571,221858231 -chr1,221858231,222230220 -chr1,222230220,224938520 -chr1,224938520,226810860 -chr1,226810860,229156248 -chr1,229156248,230685255 -chr1,230685255,232090252 -chr1,232090252,233429284 -chr1,233429284,234599434 -chr1,234599434,235819436 -chr1,235819436,237555628 -chr1,237555628,238567807 -chr1,238567807,239925314 -chr1,239925314,240564091 -chr1,240564091,241582220 -chr1,241582220,242071602 -chr1,242071602,244109499 -chr1,244109499,245506746 -chr1,245506746,247344518 -chr1,247344518,249239466 -chr2,10133,1781022 -chr2,1781022,3973779 -chr2,3973779,5708337 -chr2,5708337,6836254 -chr2,6836254,8422147 -chr2,8422147,10298469 -chr2,10298469,12419150 -chr2,12419150,14335308 -chr2,14335308,16329735 -chr2,16329735,18647423 -chr2,18647423,19692404 -chr2,19692404,21050490 -chr2,21050490,23341383 -chr2,23341383,24686918 -chr2,24686918,26894985 -chr2,26894985,28598777 -chr2,28598777,29217559 -chr2,29217559,30463711 -chr2,30463711,31550450 -chr2,31550450,33363777 -chr2,33363777,35345028 -chr2,35345028,36122006 -chr2,36122006,38132712 -chr2,38132712,39031337 -chr2,39031337,40281483 -chr2,40281483,43309590 -chr2,43309590,44313803 -chr2,44313803,46482634 -chr2,46482634,47318772 -chr2,47318772,48213001 -chr2,48213001,50022257 -chr2,50022257,50818928 -chr2,50818928,52491133 -chr2,52491133,53508452 -chr2,53508452,54685226 -chr2,54685226,56203345 -chr2,56203345,57429100 -chr2,57429100,58297315 -chr2,58297315,60292000 -chr2,60292000,62429044 -chr2,62429044,64625913 -chr2,64625913,65933444 -chr2,65933444,67226166 -chr2,67226166,68010176 -chr2,68010176,69139564 -chr2,69139564,70755198 -chr2,70755198,73174848 -chr2,73174848,75630086 -chr2,75630086,76913661 -chr2,76913661,78079264 -chr2,78079264,80050403 -chr2,80050403,81620841 -chr2,81620841,85140680 -chr2,85140680,88038507 -chr2,88038507,89154526 -chr2,89154526,95326452 -chr2,95326452,98995201 -chr2,98995201,101822329 -chr2,101822329,102688765 -chr2,102688765,103588215 -chr2,103588215,105125034 -chr2,105125034,106210058 -chr2,106210058,107408267 -chr2,107408267,108429177 -chr2,108429177,110572432 -chr2,110572432,113921856 -chr2,113921856,116772470 -chr2,116772470,118367466 -chr2,118367466,121303783 -chr2,121303783,123302906 -chr2,123302906,124732250 -chr2,124732250,125840921 -chr2,125840921,127373764 -chr2,127373764,128034347 -chr2,128034347,129474441 -chr2,129474441,130067170 -chr2,130067170,130658085 -chr2,130658085,133042784 -chr2,133042784,135158578 -chr2,135158578,137042794 -chr2,137042794,138698117 -chr2,138698117,140100271 -chr2,140100271,141805351 -chr2,141805351,142518602 -chr2,142518602,144519484 -chr2,144519484,146445570 -chr2,146445570,147277162 -chr2,147277162,150210292 -chr2,150210292,151731462 -chr2,151731462,152486782 -chr2,152486782,154005056 -chr2,154005056,155391135 -chr2,155391135,157560635 -chr2,157560635,158533218 -chr2,158533218,159577082 -chr2,159577082,161769733 -chr2,161769733,163503551 -chr2,163503551,164466638 -chr2,164466638,165178840 -chr2,165178840,167160270 -chr2,167160270,167355970 -chr2,167355970,169968236 -chr2,169968236,171226245 -chr2,171226245,173138905 -chr2,173138905,175588929 -chr2,175588929,177363636 -chr2,177363636,178553183 -chr2,178553183,181312739 -chr2,181312739,182266031 -chr2,182266031,184357608 -chr2,184357608,185280173 -chr2,185280173,189882065 -chr2,189882065,191973357 -chr2,191973357,195861164 -chr2,195861164,196447456 -chr2,196447456,198078110 -chr2,198078110,199311125 -chr2,199311125,201576284 -chr2,201576284,202818637 -chr2,202818637,205799241 -chr2,205799241,206735704 -chr2,206735704,208645399 -chr2,208645399,209941529 -chr2,209941529,212379518 -chr2,212379518,214014282 -chr2,214014282,215573795 -chr2,215573795,217715661 -chr2,217715661,218395480 -chr2,218395480,220454551 -chr2,220454551,222521176 -chr2,222521176,224859419 -chr2,224859419,225840004 -chr2,225840004,228119842 -chr2,228119842,229370787 -chr2,229370787,231843389 -chr2,231843389,233550003 -chr2,233550003,235150987 -chr2,235150987,236043550 -chr2,236043550,237449032 -chr2,237449032,238760981 -chr2,238760981,239952643 -chr2,239952643,241560084 -chr2,241560084,242149921 -chr2,242149921,243188920 -chr3,60157,1441779 -chr3,1441779,2992120 -chr3,2992120,4431647 -chr3,4431647,6083183 -chr3,6083183,7083387 -chr3,7083387,8648561 -chr3,8648561,9543183 -chr3,9543183,11019665 -chr3,11019665,13070799 -chr3,13070799,14816900 -chr3,14816900,16282442 -chr3,16282442,17891118 -chr3,17891118,19125144 -chr3,19125144,20091348 -chr3,20091348,21643707 -chr3,21643707,22204244 -chr3,22204244,23804865 -chr3,23804865,25461558 -chr3,25461558,26877769 -chr3,26877769,27840910 -chr3,27840910,29142260 -chr3,29142260,30717955 -chr3,30717955,32351715 -chr3,32351715,33255592 -chr3,33255592,35283458 -chr3,35283458,36486842 -chr3,36486842,38356116 -chr3,38356116,40221298 -chr3,40221298,41064528 -chr3,41064528,42540002 -chr3,42540002,45165153 -chr3,45165153,46657500 -chr3,46657500,47727212 -chr3,47727212,49316972 -chr3,49316972,51832015 -chr3,51832015,54081390 -chr3,54081390,55348860 -chr3,55348860,56433907 -chr3,56433907,58157519 -chr3,58157519,60272906 -chr3,60272906,62355666 -chr3,62355666,63669286 -chr3,63669286,65273538 -chr3,65273538,66270447 -chr3,66270447,68286914 -chr3,68286914,69276762 -chr3,69276762,70449028 -chr3,70449028,72529329 -chr3,72529329,74321817 -chr3,74321817,75704949 -chr3,75704949,77508835 -chr3,77508835,79024541 -chr3,79024541,81427310 -chr3,81427310,82643886 -chr3,82643886,84367479 -chr3,84367479,85582231 -chr3,85582231,87409732 -chr3,87409732,88298373 -chr3,88298373,94255316 -chr3,94255316,95311971 -chr3,95311971,98215950 -chr3,98215950,99373762 -chr3,99373762,100592217 -chr3,100592217,103084960 -chr3,103084960,104581613 -chr3,104581613,106982811 -chr3,106982811,109522395 -chr3,109522395,110513770 -chr3,110513770,112815699 -chr3,112815699,113947863 -chr3,113947863,115447080 -chr3,115447080,116800153 -chr3,116800153,118530251 -chr3,118530251,120523055 -chr3,120523055,121974097 -chr3,121974097,123517768 -chr3,123517768,124936642 -chr3,124936642,126214943 -chr3,126214943,128194861 -chr3,128194861,130244735 -chr3,130244735,131836516 -chr3,131836516,133252173 -chr3,133252173,135456906 -chr3,135456906,137371083 -chr3,137371083,139954597 -chr3,139954597,141339097 -chr3,141339097,143164628 -chr3,143164628,144410816 -chr3,144410816,145664619 -chr3,145664619,146726629 -chr3,146726629,149043237 -chr3,149043237,150252004 -chr3,150252004,151348730 -chr3,151348730,153256571 -chr3,153256571,154714218 -chr3,154714218,156008700 -chr3,156008700,157312028 -chr3,157312028,159477890 -chr3,159477890,161524504 -chr3,161524504,163253205 -chr3,163253205,165055469 -chr3,165055469,167117429 -chr3,167117429,168580960 -chr3,168580960,170964909 -chr3,170964909,172295731 -chr3,172295731,173477285 -chr3,173477285,175116539 -chr3,175116539,176320287 -chr3,176320287,178107165 -chr3,178107165,179374586 -chr3,179374586,181511166 -chr3,181511166,183769683 -chr3,183769683,185068255 -chr3,185068255,186890344 -chr3,186890344,188856214 -chr3,188856214,190226607 -chr3,190226607,192343814 -chr3,192343814,194059671 -chr3,194059671,194786674 -chr3,194786674,195971408 -chr3,195971408,197075987 -chr3,197075987,197946622 -chr4,10240,694715 -chr4,694715,1478711 -chr4,1478711,2842979 -chr4,2842979,3846040 -chr4,3846040,4684116 -chr4,4684116,5502388 -chr4,5502388,6773043 -chr4,6773043,7539692 -chr4,7539692,8152235 -chr4,8152235,9326479 -chr4,9326479,10699152 -chr4,10699152,12323034 -chr4,12323034,14272001 -chr4,14272001,15147446 -chr4,15147446,15927009 -chr4,15927009,17383322 -chr4,17383322,18841874 -chr4,18841874,20544557 -chr4,20544557,22319347 -chr4,22319347,24135529 -chr4,24135529,25609322 -chr4,25609322,27343722 -chr4,27343722,27965868 -chr4,27965868,29762208 -chr4,29762208,30454535 -chr4,30454535,31782981 -chr4,31782981,33172766 -chr4,33172766,35151415 -chr4,35151415,36020436 -chr4,36020436,37255047 -chr4,37255047,38907022 -chr4,38907022,40202609 -chr4,40202609,42213058 -chr4,42213058,43965045 -chr4,43965045,45189157 -chr4,45189157,47411896 -chr4,47411896,48123600 -chr4,48123600,53877433 -chr4,53877433,55429556 -chr4,55429556,56547644 -chr4,56547644,58935008 -chr4,58935008,60741087 -chr4,60741087,62371763 -chr4,62371763,64341001 -chr4,64341001,66600492 -chr4,66600492,68059497 -chr4,68059497,68854765 -chr4,68854765,71049152 -chr4,71049152,72140558 -chr4,72140558,74592390 -chr4,74592390,77130707 -chr4,77130707,79093979 -chr4,79093979,80990297 -chr4,80990297,82125315 -chr4,82125315,83372593 -chr4,83372593,84799656 -chr4,84799656,86930609 -chr4,86930609,87534648 -chr4,87534648,89238028 -chr4,89238028,90231564 -chr4,90231564,91560677 -chr4,91560677,94233299 -chr4,94233299,96182188 -chr4,96182188,97540703 -chr4,97540703,99424067 -chr4,99424067,100678360 -chr4,100678360,103221356 -chr4,103221356,105305294 -chr4,105305294,107501305 -chr4,107501305,108815348 -chr4,108815348,111256567 -chr4,111256567,113870102 -chr4,113870102,115666246 -chr4,115666246,117276929 -chr4,117276929,118479918 -chr4,118479918,119933512 -chr4,119933512,120392684 -chr4,120392684,122657987 -chr4,122657987,124286481 -chr4,124286481,125210862 -chr4,125210862,126480886 -chr4,126480886,127275477 -chr4,127275477,127830293 -chr4,127830293,128996665 -chr4,128996665,130591885 -chr4,130591885,131283821 -chr4,131283821,132954033 -chr4,132954033,134628434 -chr4,134628434,136566407 -chr4,136566407,138541971 -chr4,138541971,139556511 -chr4,139556511,141084631 -chr4,141084631,143443265 -chr4,143443265,146178187 -chr4,146178187,148521873 -chr4,148521873,150683580 -chr4,150683580,152782184 -chr4,152782184,154477641 -chr4,154477641,155056126 -chr4,155056126,157485097 -chr4,157485097,158743718 -chr4,158743718,161058864 -chr4,161058864,161826435 -chr4,161826435,163243679 -chr4,163243679,164478234 -chr4,164478234,165823448 -chr4,165823448,167018858 -chr4,167018858,167852917 -chr4,167852917,169676825 -chr4,169676825,170776510 -chr4,170776510,172558635 -chr4,172558635,174264132 -chr4,174264132,176570716 -chr4,176570716,178991910 -chr4,178991910,180122043 -chr4,180122043,182066807 -chr4,182066807,183371275 -chr4,183371275,184929455 -chr4,184929455,186909090 -chr4,186909090,188472981 -chr4,188472981,189693511 -chr4,189693511,191043594 -chr5,11940,982252 -chr5,982252,2132442 -chr5,2132442,3361941 -chr5,3361941,4632110 -chr5,4632110,5973233 -chr5,5973233,7143218 -chr5,7143218,8446336 -chr5,8446336,9718832 -chr5,9718832,11173271 -chr5,11173271,13464832 -chr5,13464832,14757804 -chr5,14757804,16963613 -chr5,16963613,18051592 -chr5,18051592,19917716 -chr5,19917716,22152073 -chr5,22152073,23494324 -chr5,23494324,26184851 -chr5,26184851,26857604 -chr5,26857604,27984513 -chr5,27984513,29714820 -chr5,29714820,31390249 -chr5,31390249,33500180 -chr5,33500180,35048970 -chr5,35048970,36433954 -chr5,36433954,38802410 -chr5,38802410,40287729 -chr5,40287729,41888710 -chr5,41888710,43983499 -chr5,43983499,50163398 -chr5,50163398,52134622 -chr5,52134622,53703044 -chr5,53703044,55417349 -chr5,55417349,56621102 -chr5,56621102,57340073 -chr5,57340073,58524622 -chr5,58524622,60935907 -chr5,60935907,61672995 -chr5,61672995,63218987 -chr5,63218987,63968304 -chr5,63968304,65911286 -chr5,65911286,67850860 -chr5,67850860,71240456 -chr5,71240456,73759326 -chr5,73759326,75798866 -chr5,75798866,77623332 -chr5,77623332,79393144 -chr5,79393144,80481471 -chr5,80481471,82025648 -chr5,82025648,83972689 -chr5,83972689,85767290 -chr5,85767290,87389991 -chr5,87389991,88891530 -chr5,88891530,90422654 -chr5,90422654,91840542 -chr5,91840542,93809984 -chr5,93809984,95963519 -chr5,95963519,97315601 -chr5,97315601,99260992 -chr5,99260992,101578769 -chr5,101578769,103320005 -chr5,103320005,104851483 -chr5,104851483,105893055 -chr5,105893055,107264196 -chr5,107264196,108633934 -chr5,108633934,110821144 -chr5,110821144,111981562 -chr5,111981562,113396285 -chr5,113396285,114830370 -chr5,114830370,115831047 -chr5,115831047,117346213 -chr5,117346213,118608820 -chr5,118608820,119669042 -chr5,119669042,120452166 -chr5,120452166,122556905 -chr5,122556905,123798100 -chr5,123798100,125785649 -chr5,125785649,127344604 -chr5,127344604,129519025 -chr5,129519025,132139649 -chr5,132139649,134777401 -chr5,134777401,136376050 -chr5,136376050,139265072 -chr5,139265072,140645971 -chr5,140645971,142981248 -chr5,142981248,144943354 -chr5,144943354,147181998 -chr5,147181998,148662624 -chr5,148662624,150561298 -chr5,150561298,152867774 -chr5,152867774,153773088 -chr5,153773088,155373505 -chr5,155373505,156628700 -chr5,156628700,158825698 -chr5,158825698,159973944 -chr5,159973944,161482133 -chr5,161482133,162743908 -chr5,162743908,163771582 -chr5,163771582,165642395 -chr5,165642395,166847740 -chr5,166847740,168525318 -chr5,168525318,169505664 -chr5,169505664,171074292 -chr5,171074292,172678327 -chr5,172678327,173642871 -chr5,173642871,175450595 -chr5,175450595,177251507 -chr5,177251507,178413464 -chr5,178413464,179401244 -chr5,179401244,180559933 -chr5,180559933,180885156 -chr6,73924,1452362 -chr6,1452362,2458936 -chr6,2458936,3573593 -chr6,3573593,4617817 -chr6,4617817,5791472 -chr6,5791472,6785207 -chr6,6785207,7808936 -chr6,7808936,9020026 -chr6,9020026,10540317 -chr6,10540317,11790816 -chr6,11790816,13209388 -chr6,13209388,14802924 -chr6,14802924,17386405 -chr6,17386405,19207487 -chr6,19207487,21684065 -chr6,21684065,22748307 -chr6,22748307,23936619 -chr6,23936619,24852275 -chr6,24852275,25684587 -chr6,25684587,26791233 -chr6,26791233,28017819 -chr6,28017819,28917608 -chr6,28917608,29737971 -chr6,29737971,30798168 -chr6,30798168,31571218 -chr6,31571218,32682664 -chr6,32682664,33236497 -chr6,33236497,35455756 -chr6,35455756,37572596 -chr6,37572596,39295677 -chr6,39295677,40345115 -chr6,40345115,42038721 -chr6,42038721,43756169 -chr6,43756169,45406563 -chr6,45406563,47311898 -chr6,47311898,48391125 -chr6,48391125,50386145 -chr6,50386145,52210476 -chr6,52210476,53279102 -chr6,53279102,55468270 -chr6,55468270,56105313 -chr6,56105313,57599465 -chr6,57599465,61880512 -chr6,61880512,63552888 -chr6,63552888,65765742 -chr6,65765742,67329215 -chr6,67329215,68849483 -chr6,68849483,69523448 -chr6,69523448,71609510 -chr6,71609510,73450097 -chr6,73450097,75462003 -chr6,75462003,77414881 -chr6,77414881,78957728 -chr6,78957728,80691170 -chr6,80691170,81929222 -chr6,81929222,83127149 -chr6,83127149,85209989 -chr6,85209989,87069500 -chr6,87069500,88822140 -chr6,88822140,89973052 -chr6,89973052,91843196 -chr6,91843196,93428644 -chr6,93428644,94118142 -chr6,94118142,94441175 -chr6,94441175,97093511 -chr6,97093511,97842284 -chr6,97842284,100630146 -chr6,100630146,102636772 -chr6,102636772,103983395 -chr6,103983395,106056733 -chr6,106056733,107450306 -chr6,107450306,108464380 -chr6,108464380,110304247 -chr6,110304247,112345014 -chr6,112345014,114220833 -chr6,114220833,116131396 -chr6,116131396,117672972 -chr6,117672972,118963115 -chr6,118963115,119963278 -chr6,119963278,120512128 -chr6,120512128,121905676 -chr6,121905676,123856181 -chr6,123856181,125424383 -chr6,125424383,127540461 -chr6,127540461,129861031 -chr6,129861031,130935454 -chr6,130935454,132765669 -chr6,132765669,134244243 -chr6,134244243,136224177 -chr6,136224177,137614218 -chr6,137614218,138822629 -chr6,138822629,139845436 -chr6,139845436,142288479 -chr6,142288479,145319810 -chr6,145319810,146665424 -chr6,146665424,148920352 -chr6,148920352,150253404 -chr6,150253404,151912703 -chr6,151912703,153094496 -chr6,153094496,154974120 -chr6,154974120,156763326 -chr6,156763326,158218719 -chr6,158218719,160580497 -chr6,160580497,162169564 -chr6,162169564,162931203 -chr6,162931203,164383521 -chr6,164383521,165586864 -chr6,165586864,167024733 -chr6,167024733,168042835 -chr6,168042835,169382050 -chr6,169382050,170330173 -chr6,170330173,171051270 -chr7,16161,972752 -chr7,972752,1353067 -chr7,1353067,2062398 -chr7,2062398,2772227 -chr7,2772227,4573428 -chr7,4573428,5416232 -chr7,5416232,5854526 -chr7,5854526,6573857 -chr7,6573857,7808752 -chr7,7808752,9123423 -chr7,9123423,9987499 -chr7,9987499,11299198 -chr7,11299198,12635461 -chr7,12635461,13884202 -chr7,13884202,15143657 -chr7,15143657,16902069 -chr7,16902069,19481547 -chr7,19481547,20124908 -chr7,20124908,22507629 -chr7,22507629,23471442 -chr7,23471442,25077259 -chr7,25077259,25909555 -chr7,25909555,28360309 -chr7,28360309,31137289 -chr7,31137289,33555768 -chr7,33555768,36213538 -chr7,36213538,37555184 -chr7,37555184,38966703 -chr7,38966703,39862670 -chr7,39862670,42001811 -chr7,42001811,43159074 -chr7,43159074,44763828 -chr7,44763828,45952922 -chr7,45952922,46986720 -chr7,46986720,49212278 -chr7,49212278,51675322 -chr7,51675322,53176312 -chr7,53176312,54222976 -chr7,54222976,55691584 -chr7,55691584,57382638 -chr7,57382638,63307359 -chr7,63307359,63641125 -chr7,63641125,65689809 -chr7,65689809,68234074 -chr7,68234074,69085364 -chr7,69085364,71874885 -chr7,71874885,73334602 -chr7,73334602,76458564 -chr7,76458564,78093859 -chr7,78093859,79888069 -chr7,79888069,82022686 -chr7,82022686,83801203 -chr7,83801203,85572182 -chr7,85572182,87825004 -chr7,87825004,90661784 -chr7,90661784,92493752 -chr7,92493752,93966601 -chr7,93966601,96073508 -chr7,96073508,97099570 -chr7,97099570,98715474 -chr7,98715474,100196651 -chr7,100196651,101199253 -chr7,101199253,103197510 -chr7,103197510,104159525 -chr7,104159525,105682905 -chr7,105682905,107780178 -chr7,107780178,109647594 -chr7,109647594,112618684 -chr7,112618684,113712387 -chr7,113712387,116780178 -chr7,116780178,118351581 -chr7,118351581,121045273 -chr7,121045273,121933630 -chr7,121933630,124156805 -chr7,124156805,124167552 -chr7,124167552,126519170 -chr7,126519170,126869221 -chr7,126869221,128778386 -chr7,128778386,130422414 -chr7,130422414,132805848 -chr7,132805848,134307596 -chr7,134307596,135591083 -chr7,135591083,136876562 -chr7,136876562,138744679 -chr7,138744679,139933177 -chr7,139933177,140235210 -chr7,140235210,141226557 -chr7,141226557,142656310 -chr7,142656310,144968289 -chr7,144968289,146427960 -chr7,146427960,147815318 -chr7,147815318,149840658 -chr7,149840658,150711505 -chr7,150711505,152249806 -chr7,152249806,153674019 -chr7,153674019,154964730 -chr7,154964730,156065250 -chr7,156065250,157634597 -chr7,157634597,159128575 -chr8,10422,1044217 -chr8,1044217,1163245 -chr8,1163245,2042942 -chr8,2042942,2573279 -chr8,2573279,3392926 -chr8,3392926,3783017 -chr8,3783017,4480476 -chr8,4480476,5146927 -chr8,5146927,6142797 -chr8,6142797,7153079 -chr8,7153079,9154694 -chr8,9154694,9640787 -chr8,9640787,10463197 -chr8,10463197,11278998 -chr8,11278998,13491775 -chr8,13491775,13944992 -chr8,13944992,15991660 -chr8,15991660,17387876 -chr8,17387876,17836399 -chr8,17836399,19492840 -chr8,19492840,20060856 -chr8,20060856,21661737 -chr8,21661737,22897057 -chr8,22897057,24674718 -chr8,24674718,25483454 -chr8,25483454,26682525 -chr8,26682525,28162392 -chr8,28162392,29327896 -chr8,29327896,31133729 -chr8,31133729,31548360 -chr8,31548360,32977218 -chr8,32977218,35317232 -chr8,35317232,37379389 -chr8,37379389,38938806 -chr8,38938806,40703337 -chr8,40703337,41721454 -chr8,41721454,42773823 -chr8,42773823,46841315 -chr8,46841315,50082470 -chr8,50082470,53302930 -chr8,53302930,54418044 -chr8,54418044,55945581 -chr8,55945581,56956383 -chr8,56956383,59068651 -chr8,59068651,59728100 -chr8,59728100,62329099 -chr8,62329099,63349306 -chr8,63349306,65232872 -chr8,65232872,66489090 -chr8,66489090,69863057 -chr8,69863057,70867979 -chr8,70867979,72289454 -chr8,72289454,73817199 -chr8,73817199,75445064 -chr8,75445064,76456542 -chr8,76456542,79132861 -chr8,79132861,81956395 -chr8,81956395,82693739 -chr8,82693739,84225589 -chr8,84225589,85955619 -chr8,85955619,87411709 -chr8,87411709,89085481 -chr8,89085481,90638162 -chr8,90638162,93554386 -chr8,93554386,95005527 -chr8,95005527,96534806 -chr8,96534806,99401581 -chr8,99401581,101620958 -chr8,101620958,104123306 -chr8,104123306,104988752 -chr8,104988752,107410754 -chr8,107410754,108648177 -chr8,108648177,109248173 -chr8,109248173,110484314 -chr8,110484314,111850847 -chr8,111850847,113064320 -chr8,113064320,116096495 -chr8,116096495,119685457 -chr8,119685457,121201700 -chr8,121201700,124861459 -chr8,124861459,125683719 -chr8,125683719,126410917 -chr8,126410917,128659111 -chr8,128659111,130381139 -chr8,130381139,131639625 -chr8,131639625,133351144 -chr8,133351144,134570001 -chr8,134570001,136035605 -chr8,136035605,137524151 -chr8,137524151,139254830 -chr8,139254830,140725643 -chr8,140725643,143044914 -chr8,143044914,144236881 -chr8,144236881,146303867 -chr9,10023,1079707 -chr9,1079707,1916877 -chr9,1916877,3190064 -chr9,3190064,4495328 -chr9,4495328,4884926 -chr9,4884926,6557589 -chr9,6557589,7154923 -chr9,7154923,8456299 -chr9,8456299,9166403 -chr9,9166403,10879253 -chr9,10879253,12276489 -chr9,12276489,14836363 -chr9,14836363,16659655 -chr9,16659655,18661051 -chr9,18661051,20463534 -chr9,20463534,22206559 -chr9,22206559,24158518 -chr9,24158518,25330810 -chr9,25330810,26111757 -chr9,26111757,28224283 -chr9,28224283,28811584 -chr9,28811584,30387392 -chr9,30387392,31310383 -chr9,31310383,32019368 -chr9,32019368,33578334 -chr9,33578334,34642243 -chr9,34642243,36743283 -chr9,36743283,38641599 -chr9,38641599,65472190 -chr9,65472190,72512711 -chr9,72512711,72753755 -chr9,72753755,74253040 -chr9,74253040,76203946 -chr9,76203946,76973081 -chr9,76973081,78900183 -chr9,78900183,79471208 -chr9,79471208,81079055 -chr9,81079055,82590928 -chr9,82590928,84211233 -chr9,84211233,85440801 -chr9,85440801,86938196 -chr9,86938196,88109333 -chr9,88109333,88590417 -chr9,88590417,90136246 -chr9,90136246,92528698 -chr9,92528698,94167203 -chr9,94167203,96671698 -chr9,96671698,98922040 -chr9,98922040,101592859 -chr9,101592859,104624437 -chr9,104624437,105967976 -chr9,105967976,107581749 -chr9,107581749,109298754 -chr9,109298754,110695062 -chr9,110695062,112778024 -chr9,112778024,114831082 -chr9,114831082,115693145 -chr9,115693145,117019801 -chr9,117019801,117921960 -chr9,117921960,121321537 -chr9,121321537,122260297 -chr9,122260297,124871322 -chr9,124871322,126971887 -chr9,126971887,129059665 -chr9,129059665,130055510 -chr9,130055510,132165470 -chr9,132165470,133223217 -chr9,133223217,134127888 -chr9,134127888,135298842 -chr9,135298842,137041122 -chr9,137041122,137589364 -chr9,137589364,138938978 -chr9,138938978,139500342 -chr9,139500342,141144796 -chr10,60523,751339 -chr10,751339,1523544 -chr10,1523544,2254500 -chr10,2254500,3352699 -chr10,3352699,4572274 -chr10,4572274,5983762 -chr10,5983762,7171484 -chr10,7171484,8774665 -chr10,8774665,10249396 -chr10,10249396,12586797 -chr10,12586797,13321600 -chr10,13321600,15026068 -chr10,15026068,16551767 -chr10,16551767,18537267 -chr10,18537267,19716878 -chr10,19716878,22772283 -chr10,22772283,23175132 -chr10,23175132,25578596 -chr10,25578596,26888684 -chr10,26888684,29323236 -chr10,29323236,29783692 -chr10,29783692,30458838 -chr10,30458838,31907519 -chr10,31907519,33707968 -chr10,33707968,35109355 -chr10,35109355,36572508 -chr10,36572508,37790029 -chr10,37790029,42372579 -chr10,42372579,43894771 -chr10,43894771,44730075 -chr10,44730075,48760450 -chr10,48760450,50840915 -chr10,50840915,53616629 -chr10,53616629,55103572 -chr10,55103572,57031140 -chr10,57031140,57662146 -chr10,57662146,58959528 -chr10,58959528,60289987 -chr10,60289987,61891409 -chr10,61891409,62659679 -chr10,62659679,63341695 -chr10,63341695,65794114 -chr10,65794114,67549615 -chr10,67549615,69900148 -chr10,69900148,70195991 -chr10,70195991,72220850 -chr10,72220850,73508512 -chr10,73508512,75422550 -chr10,75422550,78706814 -chr10,78706814,80876749 -chr10,80876749,82414679 -chr10,82414679,84383745 -chr10,84383745,85458703 -chr10,85458703,87937577 -chr10,87937577,89127064 -chr10,89127064,91013381 -chr10,91013381,92006581 -chr10,92006581,93335047 -chr10,93335047,95396368 -chr10,95396368,96221243 -chr10,96221243,97822357 -chr10,97822357,100241302 -chr10,100241302,100668400 -chr10,100668400,102949239 -chr10,102949239,104380410 -chr10,104380410,106695048 -chr10,106695048,108726686 -chr10,108726686,110317705 -chr10,110317705,112561493 -chr10,112561493,115328432 -chr10,115328432,116421406 -chr10,116421406,119523934 -chr10,119523934,120591353 -chr10,120591353,122407323 -chr10,122407323,123231465 -chr10,123231465,123900545 -chr10,123900545,125869346 -chr10,125869346,128001098 -chr10,128001098,129154362 -chr10,129154362,130844284 -chr10,130844284,131741327 -chr10,131741327,132580245 -chr10,132580245,134336329 -chr10,134336329,134494673 -chr10,134494673,135523865 -chr11,70855,1213590 -chr11,1213590,3665481 -chr11,3665481,4746709 -chr11,4746709,6322869 -chr11,6322869,7436701 -chr11,7436701,8333274 -chr11,8333274,9087317 -chr11,9087317,10952027 -chr11,10952027,12564229 -chr11,12564229,13373124 -chr11,13373124,15742552 -chr11,15742552,17578402 -chr11,17578402,19569535 -chr11,19569535,21017138 -chr11,21017138,22374142 -chr11,22374142,24088517 -chr11,24088517,26045753 -chr11,26045753,27020461 -chr11,27020461,28481593 -chr11,28481593,30141357 -chr11,30141357,32276901 -chr11,32276901,33958739 -chr11,33958739,35502605 -chr11,35502605,37116815 -chr11,37116815,39382003 -chr11,39382003,42310003 -chr11,42310003,44693799 -chr11,44693799,47006137 -chr11,47006137,49866050 -chr11,49866050,54695473 -chr11,54695473,55082657 -chr11,55082657,58457495 -chr11,58457495,58780549 -chr11,58780549,62223771 -chr11,62223771,63804569 -chr11,63804569,65898631 -chr11,65898631,68005825 -chr11,68005825,69516130 -chr11,69516130,70926292 -chr11,70926292,72286017 -chr11,72286017,74412351 -chr11,74412351,76797209 -chr11,76797209,78355058 -chr11,78355058,80722373 -chr11,80722373,81266712 -chr11,81266712,84381272 -chr11,84381272,86619301 -chr11,86619301,87430235 -chr11,87430235,89208936 -chr11,89208936,90966490 -chr11,90966490,92077144 -chr11,92077144,93276157 -chr11,93276157,94242260 -chr11,94242260,95726041 -chr11,95726041,97057058 -chr11,97057058,98705065 -chr11,98705065,100417169 -chr11,100417169,101331121 -chr11,101331121,103959636 -chr11,103959636,104873284 -chr11,104873284,106520894 -chr11,106520894,107844200 -chr11,107844200,108437037 -chr11,108437037,109866116 -chr11,109866116,111114397 -chr11,111114397,112459488 -chr11,112459488,114257728 -chr11,114257728,114830666 -chr11,114830666,116383348 -chr11,116383348,117747110 -chr11,117747110,119215476 -chr11,119215476,120766806 -chr11,120766806,121175943 -chr11,121175943,122591910 -chr11,122591910,123500117 -chr11,123500117,124495528 -chr11,124495528,126311320 -chr11,126311320,127316679 -chr11,127316679,128188537 -chr11,128188537,130342575 -chr11,130342575,131074612 -chr11,131074612,133000046 -chr11,133000046,134205993 -chr11,134205993,134946452 -chr12,61107,1080331 -chr12,1080331,2544786 -chr12,2544786,3677037 -chr12,3677037,4417679 -chr12,4417679,5321472 -chr12,5321472,6419753 -chr12,6419753,8377536 -chr12,8377536,9031395 -chr12,9031395,10481534 -chr12,10481534,11754846 -chr12,11754846,12733528 -chr12,12733528,15241484 -chr12,15241484,16310460 -chr12,16310460,18087873 -chr12,18087873,20863943 -chr12,20863943,23820634 -chr12,23820634,25371083 -chr12,25371083,27799773 -chr12,27799773,29651255 -chr12,29651255,30512406 -chr12,30512406,32165592 -chr12,32165592,33076989 -chr12,33076989,37856717 -chr12,37856717,39227169 -chr12,39227169,40816185 -chr12,40816185,41658586 -chr12,41658586,43984474 -chr12,43984474,46024229 -chr12,46024229,47714793 -chr12,47714793,49001866 -chr12,49001866,51776494 -chr12,51776494,53039004 -chr12,53039004,54778823 -chr12,54778823,55665837 -chr12,55665837,57548860 -chr12,57548860,59308666 -chr12,59308666,61123729 -chr12,61123729,64032461 -chr12,64032461,65559695 -chr12,65559695,67181144 -chr12,67181144,67909729 -chr12,67909729,69826542 -chr12,69826542,70957987 -chr12,70957987,72645075 -chr12,72645075,73818454 -chr12,73818454,76511314 -chr12,76511314,78570570 -chr12,78570570,80448150 -chr12,80448150,81467767 -chr12,81467767,83502666 -chr12,83502666,84303844 -chr12,84303844,85990426 -chr12,85990426,89682122 -chr12,89682122,92066155 -chr12,92066155,94514567 -chr12,94514567,96020785 -chr12,96020785,97108839 -chr12,97108839,99305987 -chr12,99305987,101447641 -chr12,101447641,101862690 -chr12,101862690,102964986 -chr12,102964986,104848696 -chr12,104848696,106436213 -chr12,106436213,106958748 -chr12,106958748,109025901 -chr12,109025901,110336719 -chr12,110336719,113263518 -chr12,113263518,113986709 -chr12,113986709,115036602 -chr12,115036602,115503216 -chr12,115503216,117087471 -chr12,117087471,118135375 -chr12,118135375,119754110 -chr12,119754110,122007651 -chr12,122007651,124977980 -chr12,124977980,126445505 -chr12,126445505,127875098 -chr12,127875098,129237297 -chr12,129237297,130377921 -chr12,130377921,131786751 -chr12,131786751,132807034 -chr12,132807034,133841511 -chr13,19020013,20686720 -chr13,20686720,22242174 -chr13,22242174,23594702 -chr13,23594702,24531937 -chr13,24531937,25784362 -chr13,25784362,27284362 -chr13,27284362,29257551 -chr13,29257551,30483267 -chr13,30483267,32301815 -chr13,32301815,33776903 -chr13,33776903,35026464 -chr13,35026464,36046367 -chr13,36046367,37498185 -chr13,37498185,38878163 -chr13,38878163,41069263 -chr13,41069263,43101027 -chr13,43101027,44901409 -chr13,44901409,46495214 -chr13,46495214,47431079 -chr13,47431079,49383962 -chr13,49383962,51591091 -chr13,51591091,53339622 -chr13,53339622,54682864 -chr13,54682864,55817131 -chr13,55817131,57554217 -chr13,57554217,58410626 -chr13,58410626,59302271 -chr13,59302271,60854778 -chr13,60854778,61591949 -chr13,61591949,63971559 -chr13,63971559,65200602 -chr13,65200602,67844453 -chr13,67844453,70724516 -chr13,70724516,71526791 -chr13,71526791,73934089 -chr13,73934089,75670143 -chr13,75670143,77410555 -chr13,77410555,78808813 -chr13,78808813,80585676 -chr13,80585676,82581814 -chr13,82581814,84133144 -chr13,84133144,85610916 -chr13,85610916,88559882 -chr13,88559882,90521311 -chr13,90521311,93129691 -chr13,93129691,93586455 -chr13,93586455,96087558 -chr13,96087558,97519210 -chr13,97519210,98938919 -chr13,98938919,100574095 -chr13,100574095,102300523 -chr13,102300523,104066710 -chr13,104066710,104844114 -chr13,104844114,106247554 -chr13,106247554,106750000 -chr13,106750000,108189877 -chr13,108189877,109121210 -chr13,109121210,109815112 -chr13,109815112,111232073 -chr13,111232073,112247592 -chr13,112247592,113572488 -chr13,113572488,115109853 -chr14,19002084,21589402 -chr14,21589402,23018665 -chr14,23018665,24905123 -chr14,24905123,26135686 -chr14,26135686,28466533 -chr14,28466533,29972145 -chr14,29972145,32383265 -chr14,32383265,34846251 -chr14,34846251,35859593 -chr14,35859593,38667725 -chr14,38667725,40341990 -chr14,40341990,41615502 -chr14,41615502,43137389 -chr14,43137389,44543227 -chr14,44543227,46081896 -chr14,46081896,46749130 -chr14,46749130,48573586 -chr14,48573586,49005471 -chr14,49005471,50507760 -chr14,50507760,51493572 -chr14,51493572,53474383 -chr14,53474383,53997831 -chr14,53997831,55233681 -chr14,55233681,56216880 -chr14,56216880,57481262 -chr14,57481262,59448336 -chr14,59448336,61680424 -chr14,61680424,63790015 -chr14,63790015,65220298 -chr14,65220298,66399555 -chr14,66399555,67992317 -chr14,67992317,71131957 -chr14,71131957,72889615 -chr14,72889615,76444767 -chr14,76444767,77229472 -chr14,77229472,78561945 -chr14,78561945,80186579 -chr14,80186579,81579714 -chr14,81579714,83138097 -chr14,83138097,84241633 -chr14,84241633,85746319 -chr14,85746319,86647002 -chr14,86647002,87635341 -chr14,87635341,89497643 -chr14,89497643,91296860 -chr14,91296860,93132299 -chr14,93132299,94325285 -chr14,94325285,95750867 -chr14,95750867,96262415 -chr14,96262415,98341162 -chr14,98341162,99138532 -chr14,99138532,101534307 -chr14,101534307,103012102 -chr14,103012102,105001723 -chr14,105001723,106340358 -chr14,106340358,107289454 -chr15,20001200,21131604 -chr15,21131604,24195127 -chr15,24195127,25108590 -chr15,25108590,27298112 -chr15,27298112,29338502 -chr15,29338502,30165568 -chr15,30165568,31591821 -chr15,31591821,32441811 -chr15,32441811,34015425 -chr15,34015425,35083251 -chr15,35083251,37456502 -chr15,37456502,38530777 -chr15,38530777,40384132 -chr15,40384132,41177514 -chr15,41177514,42776399 -chr15,42776399,44198049 -chr15,44198049,46618787 -chr15,46618787,48136048 -chr15,48136048,50008043 -chr15,50008043,51677560 -chr15,51677560,53069096 -chr15,53069096,54508528 -chr15,54508528,55136269 -chr15,55136269,56901773 -chr15,56901773,58441366 -chr15,58441366,59694116 -chr15,59694116,61265836 -chr15,61265836,63215222 -chr15,63215222,65104668 -chr15,65104668,67094767 -chr15,67094767,69017999 -chr15,69017999,70133341 -chr15,70133341,71922649 -chr15,71922649,73628714 -chr15,73628714,76398624 -chr15,76398624,78516053 -chr15,78516053,80860978 -chr15,80860978,84260468 -chr15,84260468,86652905 -chr15,86652905,88369943 -chr15,88369943,90475551 -chr15,90475551,92164392 -chr15,92164392,93780902 -chr15,93780902,94924330 -chr15,94924330,96141596 -chr15,96141596,98030910 -chr15,98030910,99244059 -chr15,99244059,100636847 -chr15,100636847,101552694 -chr15,101552694,102520966 -chr16,60054,1207206 -chr16,1207206,2764829 -chr16,2764829,4001196 -chr16,4001196,5118345 -chr16,5118345,5891580 -chr16,5891580,6893551 -chr16,6893551,7529121 -chr16,7529121,8338519 -chr16,8338519,9799419 -chr16,9799419,10426032 -chr16,10426032,11520161 -chr16,11520161,12613098 -chr16,12613098,13154437 -chr16,13154437,14464002 -chr16,14464002,16154060 -chr16,16154060,17644749 -chr16,17644749,18643607 -chr16,18643607,20150571 -chr16,20150571,22448904 -chr16,22448904,24136875 -chr16,24136875,25986862 -chr16,25986862,27445755 -chr16,27445755,29036613 -chr16,29036613,31382943 -chr16,31382943,46399473 -chr16,46399473,49007926 -chr16,49007926,52035823 -chr16,52035823,53382572 -chr16,53382572,55903774 -chr16,55903774,57664330 -chr16,57664330,59045405 -chr16,59045405,60745694 -chr16,60745694,62229849 -chr16,62229849,63691589 -chr16,63691589,65938566 -chr16,65938566,68841363 -chr16,68841363,71054028 -chr16,71054028,72935150 -chr16,72935150,74971503 -chr16,74971503,75977954 -chr16,75977954,77523678 -chr16,77523678,78456292 -chr16,78456292,79134815 -chr16,79134815,80297374 -chr16,80297374,81772536 -chr16,81772536,82747728 -chr16,82747728,83477208 -chr16,83477208,84445883 -chr16,84445883,85148685 -chr16,85148685,86156599 -chr16,86156599,86815411 -chr16,86815411,87647349 -chr16,87647349,89041165 -chr16,89041165,90292812 -chr17,56,1172399 -chr17,1172399,1928731 -chr17,1928731,3702312 -chr17,3702312,4696261 -chr17,4696261,5741334 -chr17,5741334,7317398 -chr17,7317398,8306425 -chr17,8306425,9965921 -chr17,9965921,11102815 -chr17,11102815,12534769 -chr17,12534769,13180372 -chr17,13180372,13894637 -chr17,13894637,15019097 -chr17,15019097,16412342 -chr17,16412342,18856320 -chr17,18856320,21290357 -chr17,21290357,27334244 -chr17,27334244,29786491 -chr17,29786491,31538425 -chr17,31538425,32912798 -chr17,32912798,34469036 -chr17,34469036,36809344 -chr17,36809344,38877404 -chr17,38877404,39899810 -chr17,39899810,41772087 -chr17,41772087,43056905 -chr17,43056905,45876022 -chr17,45876022,47517400 -chr17,47517400,49898957 -chr17,49898957,50719055 -chr17,50719055,51826118 -chr17,51826118,53599432 -chr17,53599432,55357541 -chr17,55357541,57487512 -chr17,57487512,59312755 -chr17,59312755,61545589 -chr17,61545589,63148128 -chr17,63148128,64800430 -chr17,64800430,67858770 -chr17,67858770,69387817 -chr17,69387817,72672203 -chr17,72672203,74375560 -chr17,74375560,76263413 -chr17,76263413,77298636 -chr17,77298636,78837588 -chr17,78837588,80034408 -chr17,80034408,81194908 -chr18,10644,912486 -chr18,912486,1942911 -chr18,1942911,3891658 -chr18,3891658,5834180 -chr18,5834180,7090485 -chr18,7090485,8498931 -chr18,8498931,11075913 -chr18,11075913,11905440 -chr18,11905440,14440799 -chr18,14440799,19485844 -chr18,19485844,20649472 -chr18,20649472,22996651 -chr18,22996651,24026191 -chr18,24026191,25927682 -chr18,25927682,26875587 -chr18,26875587,27866478 -chr18,27866478,30264066 -chr18,30264066,31780067 -chr18,31780067,33861964 -chr18,33861964,35075250 -chr18,35075250,36365490 -chr18,36365490,37684367 -chr18,37684367,39892648 -chr18,39892648,42922106 -chr18,42922106,44299246 -chr18,44299246,45939732 -chr18,45939732,47730584 -chr18,47730584,51062185 -chr18,51062185,51554175 -chr18,51554175,55213838 -chr18,55213838,56530220 -chr18,56530220,57630483 -chr18,57630483,59020751 -chr18,59020751,60277715 -chr18,60277715,61820252 -chr18,61820252,63463402 -chr18,63463402,64252801 -chr18,64252801,66125817 -chr18,66125817,67175820 -chr18,67175820,68621179 -chr18,68621179,69621618 -chr18,69621618,71038474 -chr18,71038474,71971462 -chr18,71971462,73526987 -chr18,73526987,74813815 -chr18,74813815,75976317 -chr18,75976317,77149991 -chr18,77149991,78017158 -chr19,80840,610729 -chr19,610729,2098396 -chr19,2098396,3019660 -chr19,3019660,4348967 -chr19,4348967,5811852 -chr19,5811852,6684885 -chr19,6684885,8347513 -chr19,8347513,9238393 -chr19,9238393,11284028 -chr19,11284028,13471127 -chr19,13471127,14486347 -chr19,14486347,15648610 -chr19,15648610,16374416 -chr19,16374416,18409862 -chr19,18409862,19877471 -chr19,19877471,20905757 -chr19,20905757,22732896 -chr19,22732896,23467746 -chr19,23467746,28557893 -chr19,28557893,29790947 -chr19,29790947,30727954 -chr19,30727954,32746520 -chr19,32746520,34262952 -chr19,34262952,36469295 -chr19,36469295,37527033 -chr19,37527033,40170619 -chr19,40170619,40984601 -chr19,40984601,42131573 -chr19,42131573,43862455 -chr19,43862455,44744108 -chr19,44744108,46102697 -chr19,46102697,47150082 -chr19,47150082,49282227 -chr19,49282227,51532567 -chr19,51532567,52985290 -chr19,52985290,54602362 -chr19,54602362,55728080 -chr19,55728080,57521335 -chr19,57521335,59118839 -chr20,60479,697600 -chr20,697600,2469501 -chr20,2469501,3828413 -chr20,3828413,5477850 -chr20,5477850,7084073 -chr20,7084073,8117011 -chr20,8117011,9730921 -chr20,9730921,11249536 -chr20,11249536,12447499 -chr20,12447499,13689864 -chr20,13689864,15958359 -chr20,15958359,17487232 -chr20,17487232,18972203 -chr20,18972203,20959710 -chr20,20959710,22491456 -chr20,22491456,23293790 -chr20,23293790,24717724 -chr20,24717724,25344231 -chr20,25344231,31614823 -chr20,31614823,32813441 -chr20,32813441,34960446 -chr20,34960446,36909530 -chr20,36909530,38436761 -chr20,38436761,39610856 -chr20,39610856,40585689 -chr20,40585689,41615460 -chr20,41615460,42680176 -chr20,42680176,44839056 -chr20,44839056,47199980 -chr20,47199980,49239658 -chr20,49239658,52472549 -chr20,52472549,54055266 -chr20,54055266,56447959 -chr20,56447959,58406572 -chr20,58406572,59561724 -chr20,59561724,61301855 -chr20,61301855,62190180 -chr20,62190180,62965163 -chr21,9411243,15950982 -chr21,15950982,18053165 -chr21,18053165,19480375 -chr21,19480375,20962339 -chr21,20962339,22072764 -chr21,22072764,23362875 -chr21,23362875,24696231 -chr21,24696231,26469122 -chr21,26469122,27271019 -chr21,27271019,29125226 -chr21,29125226,31197025 -chr21,31197025,32668642 -chr21,32668642,34376999 -chr21,34376999,35225465 -chr21,35225465,36524373 -chr21,36524373,37870779 -chr21,37870779,38711704 -chr21,38711704,40482902 -chr21,40482902,41389527 -chr21,41389527,43321528 -chr21,43321528,44506268 -chr21,44506268,46177105 -chr21,46177105,47492226 -chr21,47492226,48119752 -chr22,16050408,17674295 -chr22,17674295,18296088 -chr22,18296088,19912358 -chr22,19912358,22357325 -chr22,22357325,23712647 -chr22,23712647,24984204 -chr22,24984204,26791628 -chr22,26791628,27834752 -chr22,27834752,29651799 -chr22,29651799,31439918 -chr22,31439918,32664986 -chr22,32664986,34494914 -chr22,34494914,35530985 -chr22,35530985,37570269 -chr22,37570269,39307894 -chr22,39307894,40545797 -chr22,40545797,42690818 -chr22,42690818,43714200 -chr22,43714200,44995308 -chr22,44995308,46470495 -chr22,46470495,47596318 -chr22,47596318,48903703 -chr22,48903703,49824534 -chr22,49824534,51243298 diff --git a/impute_jass/doc/Makefile b/impute_jass/doc/Makefile deleted file mode 100644 index 8599558de10c8042c42e8f78169e9e3b2b5d5dcf..0000000000000000000000000000000000000000 --- a/impute_jass/doc/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -SPHINXPROJ = Peppa-PIG -SOURCEDIR = source -BUILDDIR = build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/impute_jass/doc/make.bat b/impute_jass/doc/make.bat deleted file mode 100644 index 87f5ba9ebcbd74cde6c954e753bd6564491448f7..0000000000000000000000000000000000000000 --- a/impute_jass/doc/make.bat +++ /dev/null @@ -1,36 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=build -set SPHINXPROJ=Peppa-PIG - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% - -:end -popd diff --git a/impute_jass/doc/source/_autosummary/impute_jass.imputation_launcher.rst b/impute_jass/doc/source/_autosummary/impute_jass.imputation_launcher.rst deleted file mode 100644 index 494ba8527921c1525991c09d2efd5f0159f9abbc..0000000000000000000000000000000000000000 --- a/impute_jass/doc/source/_autosummary/impute_jass.imputation_launcher.rst +++ /dev/null @@ -1,22 +0,0 @@ -impute\_jass.imputation\_launcher -================================= - -.. automodule:: impute_jass.imputation_launcher - - - - - - - - .. rubric:: Classes - - .. autosummary:: - - ImputationLauncher - - - - - - \ No newline at end of file diff --git a/impute_jass/doc/source/_autosummary/impute_jass.ld_matrix.rst b/impute_jass/doc/source/_autosummary/impute_jass.ld_matrix.rst deleted file mode 100644 index 6782bc7081932997eadfdbe467f6fc5db299ffbd..0000000000000000000000000000000000000000 --- a/impute_jass/doc/source/_autosummary/impute_jass.ld_matrix.rst +++ /dev/null @@ -1,24 +0,0 @@ -impute\_jass.ld\_matrix -======================= - -.. automodule:: impute_jass.ld_matrix - - - - .. rubric:: Functions - - .. autosummary:: - - generate_genome_matrices - generate_sparse_matrix - launch_plink_ld - - - - - - - - - - \ No newline at end of file diff --git a/impute_jass/doc/source/_autosummary/impute_jass.stat_models.rst b/impute_jass/doc/source/_autosummary/impute_jass.stat_models.rst deleted file mode 100644 index 3f7dfc0aefaf5128112d0ccf1aaf4f0909134630..0000000000000000000000000000000000000000 --- a/impute_jass/doc/source/_autosummary/impute_jass.stat_models.rst +++ /dev/null @@ -1,26 +0,0 @@ -impute\_jass.stat\_models -========================= - -.. automodule:: impute_jass.stat_models - - - - .. rubric:: Functions - - .. autosummary:: - - check_inversion - compute_mu - compute_var - impg_model - var_in_boundaries - - - - - - - - - - \ No newline at end of file diff --git a/impute_jass/doc/source/_autosummary/impute_jass.windows.rst b/impute_jass/doc/source/_autosummary/impute_jass.windows.rst deleted file mode 100644 index 251dc0005c9e09f8e2de1138c4f6994956ca2895..0000000000000000000000000000000000000000 --- a/impute_jass/doc/source/_autosummary/impute_jass.windows.rst +++ /dev/null @@ -1,30 +0,0 @@ -impute\_jass.windows -==================== - -.. automodule:: impute_jass.windows - - - - .. rubric:: Functions - - .. autosummary:: - - compute_window_and_size - empty_imputed_dataframe - format_result_df - impg_like_imputation - in_region - parse_region_position - prepare_zscore_for_imputation - print_progression - realigned_zfiles_on_panel - - - - - - - - - - \ No newline at end of file diff --git a/impute_jass/doc/source/conf.py b/impute_jass/doc/source/conf.py deleted file mode 100644 index 576513c78354d2d34a076f317f37f3d50bd048ec..0000000000000000000000000000000000000000 --- a/impute_jass/doc/source/conf.py +++ /dev/null @@ -1,177 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import sys -sys.path.insert(0, os.path.abspath('../..')) -#print(os.path.abspath('../..')) - - -# -- Project information ----------------------------------------------------- - -project = 'RAISS' -copyright = '2018, hjulienne' -author = 'hjulienne' - -# The short X.Y version -version = '' -# The full version, including alpha/beta/rc tags -release = '1.0' - - -# -- General configuration --------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.napoleon', - 'sphinx.ext.coverage', - 'sphinx.ext.mathjax', - 'sphinx.ext.viewcode', - 'sphinx.ext.autosummary', - 'sphinxcontrib.bibtex', - 'sphinxarg.ext' -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The master toctree document. -master_doc = 'index' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path . -exclude_patterns = [] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'sphinx_rtd_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# The default sidebars (for documents that don't match any pattern) are -# defined by theme itself. Builtin themes are using these templates by -# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', -# 'searchbox.html']``. -# -# html_sidebars = {} - - -# -- Options for HTMLHelp output --------------------------------------------- - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Peppa-PIGdoc' - - -# -- Options for LaTeX output ------------------------------------------------ - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'Peppa-PIG.tex', 'Peppa-PIG Documentation', - 'hjulienne', 'manual'), -] - - -# -- Options for manual page output ------------------------------------------ - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'peppa-pig', 'Peppa-PIG Documentation', - [author], 1) -] - - -# -- Options for Texinfo output ---------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'Peppa-PIG', 'Peppa-PIG Documentation', - author, 'Peppa-PIG', 'One line description of project.', - 'Miscellaneous'), -] - - -# -- Extension configuration -------------------------------------------------i - -autoclass_content = "both" # include both class docstring and __init__ -autodoc_default_flags = [ - # Make sure that any autodoc declarations show the right members - "members", - "inherited-members", - "private-members", - "show-inheritance", -] -autosummary_generate = True # Make _autosummary files and include them diff --git a/impute_jass/doc/source/index.rst b/impute_jass/doc/source/index.rst deleted file mode 100644 index c641405f3cdb130a4399425449218652e965ffd3..0000000000000000000000000000000000000000 --- a/impute_jass/doc/source/index.rst +++ /dev/null @@ -1,120 +0,0 @@ -.. RAISS documentation master file, created by - sphinx-quickstart on Mon Aug 20 16:17:59 2018. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to the Robust and Accurate Imputation from Summary Statistics (RAISS) documentation! -============================================================================================ - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - -What is RAISS ? -=================== - -RAISS is a python package to impute missing SNP summary statistics from -neighboring SNPs in linkage desiquilibrium. - -The statistical model used to make the imputation is described in :cite:`Pasaniuc2014` - -The imputation execution time is optimized by precomputing Linkage desiquilibrium between SNPs. - - -Dependencies -============ -RAISS requires plink version 1.9 : `<https://www.cog-genomics.org/plink2>`_ - -Installation -============ - -.. code-block:: shell - - pip3 install git+https://gitlab.pasteur.fr/statistical-genetics/imputation_for_jass - -Precomputation of LD-correlation -================================= - -The imputation is based the Linkage desiquilibrium -between SNPs. - -To save computation time, the LD is computed before imputation and saved as tabular format. -To limit the number of SNP pairs, the LD is computed between pairs of -SNPs in a approximately LD-independent regions. For an european ancestry, you can use -the region defined by :cite:`Berisa2015` that are provided in the package data folder. - -To compute the LD you need to specify a reference panel splitted by chromosomes -(bed, fam and bim formats of plink, see `PLINK formats <https://www.cog-genomics.org/plink2/formats>`_ ) - - -.. code-block:: python - - # path to the Region file - region_berisa = "/mnt/atlas/PCMA/WKD_Hanna/cleaned_jass_input/Region_LD.csv" - # Path to the reference panel - ref_folder="/mnt/atlas/PCMA/1._DATA/ImpG_refpanel" - # path to the folder to store the results - ld_folder_out = "/mnt/atlas/PCMA/WKD_Hanna/impute_for_jass/berisa_ld_block" - raiss.LD.generate_genome_matrices(, ...) - -Input format: -============= - -GWAS results files must be provided in the tabular format by chromosome (tab separated) -all in the same folder with the following columns with the same header: - -+----------+-------+------+-----+--------+ -| rsID | pos | A0 | A1 | Z | -+==========+=======+======+=====+========+ -| rs6548219| 30762 | A | G | -1.133 | -+----------+-------+------+-----+--------+ - -This format can be obtained with the `JASS PreProcessing package <https://gitlab.pasteur.fr/statistical-genetics/JASS_Pre-processing>`_. - - -Launching imputation on one chromosome -====================================== - -RAISS has an interface with the command line (see Command Line Usage bellow). - -If you have access to a cluster, an efficient way to use RAISS is to launch -the imputation of each chromosome on a separate cluster node. The script -`launch_imputation_all_gwas.sh <https://gitlab.pasteur.fr/statistical-genetics/raiss/blob/master/launch_imputation_all_gwas.sh>`_ -contain an example of raiss usage with a SLURM scheduler. - -Output -====== - -The raiss package outputs imputed GWAS files in the tabular format: -#TODO suppress complementary columns - -+------------+---+--+----------------+-----+-----+----------------+------------------+---------+---------+ -| |A0 |A1| Nsnp_to_impute |Var |Z |condition_number|correct_inversion |ld_score | pos | -+============+===+==+================+=====+=====+================+==================+=========+=========+ -| rs11584349 |C | T| 18 | 0.85|-0.28| 116.9 | False | 1.34 | 1000156 | -+------------+---+--+----------------+-----+-----+----------------+------------------+---------+---------+ - -# Keep only useful columns - -Command Line Usage -================== - -.. argparse:: - :ref: impute_jass.__main__.add_chromosome_imputation_argument - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -.. automodule:: impute_jass - :members: -* :ref:`search` - - - -.. autosummary:: - :toctree: _autosummary - - -.. bibliography:: reference.bib diff --git a/impute_jass/doc/source/reference.bib b/impute_jass/doc/source/reference.bib deleted file mode 100644 index 8e41dc074356c15837f371ab6c8375396299bbaa..0000000000000000000000000000000000000000 --- a/impute_jass/doc/source/reference.bib +++ /dev/null @@ -1,36 +0,0 @@ -@article{Pasaniuc2014, -abstract = {MOTIVATION Imputation using external reference panels (e.g. 1000 Genomes) is a widely used approach for increasing power in genome-wide association studies and meta-analysis. Existing hidden Markov models (HMM)-based imputation approaches require individual-level genotypes. Here, we develop a new method for Gaussian imputation from summary association statistics, a type of data that is becoming widely available. RESULTS In simulations using 1000 Genomes (1000G) data, this method recovers 84{\%} (54{\%}) of the effective sample size for common ({\textgreater}5{\%}) and low-frequency (1-5{\%}) variants [increasing to 87{\%} (60{\%}) when summary linkage disequilibrium information is available from target samples] versus the gold standard of 89{\%} (67{\%}) for HMM-based imputation, which cannot be applied to summary statistics. Our approach accounts for the limited sample size of the reference panel, a crucial step to eliminate false-positive associations, and it is computationally very fast. As an empirical demonstration, we apply our method to seven case-control phenotypes from the Wellcome Trust Case Control Consortium (WTCCC) data and a study of height in the British 1958 birth cohort (1958BC). Gaussian imputation from summary statistics recovers 95{\%} (105{\%}) of the effective sample size (as quantified by the ratio of [Formula: see text] association statistics) compared with HMM-based imputation from individual-level genotypes at the 227 (176) published single nucleotide polymorphisms (SNPs) in the WTCCC (1958BC height) data. In addition, for publicly available summary statistics from large meta-analyses of four lipid traits, we publicly release imputed summary statistics at 1000G SNPs, which could not have been obtained using previously published methods, and demonstrate their accuracy by masking subsets of the data. We show that 1000G imputation using our approach increases the magnitude and statistical evidence of enrichment at genic versus non-genic loci for these traits, as compared with an analysis without 1000G imputation. Thus, imputation of summary statistics will be a valuable tool in future functional enrichment analyses. AVAILABILITY AND IMPLEMENTATION Publicly available software package available at http://bogdan.bioinformatics.ucla.edu/software/. CONTACT bpasaniuc@mednet.ucla.edu or aprice@hsph.harvard.edu SUPPLEMENTARY INFORMATION Supplementary materials are available at Bioinformatics online.}, -archivePrefix = {arXiv}, -arxivId = {arXiv:1309.3258v1}, -author = {Pasaniuc, Bogdan and Zaitlen, Noah and Shi, Huwenbo and Bhatia, Gaurav and Gusev, Alexander and Pickrell, Joseph and Hirschhorn, Joel and Strachan, David P. and Patterson, Nick and Price, Alkes L.}, -doi = {10.1093/bioinformatics/btu416}, -eprint = {arXiv:1309.3258v1}, -file = {:home/hjulienn/.local/share/data/Mendeley Ltd./Mendeley Desktop/Downloaded/Pasaniuc et al. - 2014 - Fast and accurate imputation of summary statistics enhances evidence of functional enrichment.pdf:pdf}, -issn = {13674811}, -journal = {Bioinformatics (Oxford, England)}, -keywords = {Hughes}, -mendeley-tags = {Hughes}, -number = {20}, -pages = {2906--2914}, -pmid = {24990607}, -title = {{Fast and accurate imputation of summary statistics enhances evidence of functional enrichment}}, -volume = {30}, -year = {2014} -} - -@article{Berisa2015, -abstract = {We present a method to identify approximately independent blocks of linkage disequilibrium (LD) in the human genome. These blocks enable automated analysis of multiple genome-wide association studies.}, -author = {Berisa, Tomaz and Pickrell, Joseph K.}, -doi = {10.1093/bioinformatics/btv546}, -file = {:home/hjulienn/.local/share/data/Mendeley Ltd./Mendeley Desktop/Downloaded/Berisa, Pickrell - 2015 - Approximately independent linkage disequilibrium blocks in human populations.pdf:pdf}, -isbn = {1367-4811 (Electronic) 1367-4803 (Linking)}, -issn = {14602059}, -journal = {Bioinformatics}, -mendeley-groups = {Genetics}, -number = {2}, -pages = {283--285}, -pmid = {26395773}, -title = {{Approximately independent linkage disequilibrium blocks in human populations}}, -volume = {32}, -year = {2015} -} diff --git a/impute_jass/impute_jass/__init__.py b/impute_jass/impute_jass/__init__.py deleted file mode 100644 index 4a01d36725ad071f881e70c9228bd5a09adc2b30..0000000000000000000000000000000000000000 --- a/impute_jass/impute_jass/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -""" - -.. autosummary:: - :toctree: _autosummary - - imputation_launcher - ld_matrix - stat_models - windows -""" -import impute_jass.ld_matrix as LD -import impute_jass.stat_models as model -import impute_jass.windows -from impute_jass.imputation_launcher import ImputationLauncher diff --git a/impute_jass/impute_jass/__main__.py b/impute_jass/impute_jass/__main__.py deleted file mode 100644 index c5c2f5ed33c7e40b92a3f27eb7f07d9faa8e8c56..0000000000000000000000000000000000000000 --- a/impute_jass/impute_jass/__main__.py +++ /dev/null @@ -1,62 +0,0 @@ -import argparse -import pandas as pd -from impute_jass.imputation_launcher import ImputationLauncher - - -def launch_chromosome_imputation(args): - """ - Function allow the calling of the ImputationLauncher.chromosome_imputation - method from an entry point - - Args: - args (dict): Argument parsed from the command line see the - __main__.add_chromosome_imputation_argument(parser) function. - """ - print("Imputation of {0} gwas for chromosome {1}".format(args.gwas, args.chrom)) - # Imputer settings - imputer = ImputationLauncher( window_size=int(args.window_size), buf=int(args.buffer_size), - lamb= float(args.l2_regularization), pinv_rcond = float(args.eigen_treshold)) - - # Reading of inputs - z_file = "{0}/z_{1}_{2}.txt".format(args.zscore_folder, args.gwas, args.chrom) - zscore = pd.read_csv(z_file,index_col=0, sep="\t") - ref_panel_file = args.ref_folder + "/"+ args.chrom +".eur.1pct.bim" - ref_panel = pd.read_csv(ref_panel_file, sep="\t", names=['chr', "nothing", 'pos', 'Ref_all', 'alt_all'], index_col = 1) - - # imputation - imputed_zscore = imputer.chromosome_imputation(args.chrom, zscore, ref_panel, args.ld_folder) - print("Imputation DONE") - - # Saving results - z_fo = "{0}/z_{1}_{2}.txt".format(args.output_folder, args.gwas, args.chrom) - imputed_zscore.to_csv(z_fo, sep='\t') - print("Save imputation done at {0}".format(z_fo)) - -def add_chromosome_imputation_argument(): - - parser = argparse.ArgumentParser() - parser.add_argument('--chrom', required=True, help= "chromosome to impute to the chr\d+ format") - parser.add_argument('--gwas', required=True, help= "GWAS to impute to the consortia_trait format") - - parser.add_argument('--ref-folder', required=True, help= "reference panel location (used to determine which snp to impute)") - parser.add_argument('--ld-folder', required=True, help= "Location LD correlation matrices") - parser.add_argument('--zscore-folder', required=True, help= "Location of the zscore files of the gwases to impute") - parser.add_argument('--output-folder', required=True, help= "Location of the impute zscore files") - - parser.add_argument('--window-size', help= "Size of the non overlapping window", default = 500000) - parser.add_argument('--buffer-size', help= "Size of the buffer around the imputation window", default = 125000) - parser.add_argument('--l2-regularization', help= "Size of the buffer around the imputation window", default = 0.1) - parser.add_argument('--eigen-treshold', help= "treshold under which eigen vectors are removed for the computation of the pseudo inverse", default = 0.1) - parser.set_defaults(func=launch_chromosome_imputation) - return(parser) - -def main(): - -#prog='impute_jass') - parser = add_chromosome_imputation_argument(parser) - args = parser.parse_args() - args.func(args) - - -if __name__=="__main__": - main() diff --git a/impute_jass/impute_jass/imputation_launcher.py b/impute_jass/impute_jass/imputation_launcher.py deleted file mode 100644 index 05d4ca9cf17d01ae862e9ee880f9ef0c6b6305b7..0000000000000000000000000000000000000000 --- a/impute_jass/impute_jass/imputation_launcher.py +++ /dev/null @@ -1,98 +0,0 @@ -# -*- coding: utf-8 -*- -"""Imputation launcher - -Function set to launch SNP imputation on a complete chromosome or -on the genome - -""" - -import glob -import pandas as pd -from .windows import prepare_zscore_for_imputation, impg_like_imputation, realigned_zfiles_on_panel - -class ImputationLauncher(object): - """ - Class to perform imputation of snp from summary statistic - """ - def __init__(self, window_size=10000, buf=2500, - lamb= 0.01, pinv_rcond = 0.01): - """ - Initialise the imputation object. Fix the windows size, the buffer size - and the king of imputation employed - - Args: - window_size (int): size of the imputation window in bp - buffer (int): the size of the padding around the windows of - imputation (relevant only for batch imputation) - lamb (float): size of the increment added to snp correlation - matrices to make it less singular - pinv_rcond (float): the rcond scipy.linalg.pinv function argument. - The scipy.linalg.pinv is used to invert the correlation matrices - """ - - self.window_size = window_size - self.buffer = buf - self.lamb = lamb - self.rcond = pinv_rcond - - - def chromosome_imputation(self, chrom, zscore, ref_panel, ld_folder): - """ - Impute the panel zscore score for one chromosome and with the specified - parameters - - Args: - chrom (str): chromosome "chr*" - zscore (pandas dataframe): known zscore - ref_panel (str): path of the folder of reference panel - ld_folder (str): path of the folder containing linkage desiquilibrium matrices - - Returns: - pandas dataframe: Imputed zscore dataframe - """ - pattern = "{0}/{1}_*.ld".format(ld_folder, chrom) - zscore = prepare_zscore_for_imputation(ref_panel, zscore) - zscore_results = zscore.copy(deep=True) - - def imputer(ld_file): - return impg_like_imputation(ld_file, ref_panel, zscore, - self.window_size, self.buffer, - self.lamb, self.rcond) - - for ld_file in glob.glob(pattern): - print("processing Region: {0}".format(ld_file)) - ld_batch = imputer(ld_file) - zscore_results = pd.concat([zscore_results, ld_batch]) - - zscore_results.sort_values(by="pos", inplace=True) - zscore_results = realigned_zfiles_on_panel(ref_panel, zscore_results) - return zscore_results - - - def genome_imputation(self, gwas_tag, ref_panel_folder, ld_folder, zscore_folder, folder_output): - """ - Launch imputation on all chromosome for one trait by calling - chromosome_imputation for each chromosome - - Args: - gwas_tag (str): a short string to annotate imputed GWAS files - ref_panel_folder (str): path of the folder of reference panel - ld_folder (str): path of the folder containing linkage desiquilibrium matrices - zscore_folder (str): path of the folder for input GWAS files - folder_output (str): path of the folder for imputed GWAS files - """ - - for i in range(1, 23): - - ref_panel_file = ref_panel_folder + "/chr" + str(i) + ".eur.1pct.bim" - ref_panel = pd.read_csv(ref_panel_file, sep="\t", names=['chr', "nothing", 'pos', 'Ref_all', 'alt_all'], index_col = 1) - - - known_zscore_file = zscore_folder + "/z_" + gwas_tag + "_chr" + str(i) + ".txt" - known_zscore = pd.read_csv(known_zscore_file, index_col=0, sep="\t") - - chrom = "chr"+str(i) - z_imp = self.chromosome_imputation(chrom, known_zscore, ref_panel, ld_folder) - - imputed_zscore = folder_output + "/z_" + gwas_tag + "_chr" + str(i) + ".txt" - z_imp.to_csv(imputed_zscore, sep="\t") diff --git a/impute_jass/impute_jass/ld_matrix.py b/impute_jass/impute_jass/ld_matrix.py deleted file mode 100644 index fa843c191603e23bc4d2a7e7fd58f668a1cb5fd8..0000000000000000000000000000000000000000 --- a/impute_jass/impute_jass/ld_matrix.py +++ /dev/null @@ -1,93 +0,0 @@ -# coding: utf-8 -""" - Function set to compute LD correlation from a reference panel - in predefined Region - - LD matrix are then transformed to the pandas sparse format -""" - -import scipy as sc -import pandas as pd -import subprocess as sub -import pkg_resources -import numpy as np -import re - - -def launch_plink_ld(startpos, endpos, chr, reffile, folder): - """ - launch plink linkage desiquilibrium correlation and save - the ouput - - Args: - startpos (int): position of the start of the window - endpos (int): position of the end of the window - chr (str): chromosome position - reffile (str): reference panel file - folder (str): output folder - """ - bimref = reffile + ".bim" - ref_panel = pd.read_csv(bimref, sep="\t", names=['chr', "nothing", 'pos', 'Ref_all', 'alt_all'], index_col = 1) - - ref_panel = ref_panel.loc[(ref_panel.pos > startpos) & (ref_panel.pos < endpos)] - ref_panel.index.to_series().to_csv("./snp_list.txt", index=False) - - fo = "{0}/chr{1}_{2}_{3}".format(folder, chr, startpos, endpos) - - cmd = "plink --bfile {0} --r --ld-snp-list ./snp_list.txt --ld-window 50 --ld-window-kb 3000 --ld-window-r2 0.4 --chr {1} --out {2}".format(reffile, chr, fo) - sub.check_output(cmd, shell=True) - - -def generate_sparse_matrix(plink_ld, ref_chr_df): - """ - Extract correlation matrix from the plink correlation - file generated by ld_matrix.launch_plink_ld - read plink results create a sparse dataframe LD-matrix - then save it to a zipped pickle - - Args: - plink_ld (str): path to the plink correlation matrix file - ref_chr_df (str): - - Returns: - pandas.SparseDataFrame : Linkage desiquilibrium matrix - """ - - plink_ld = pd.read_csv(plink_ld, sep = "\s+") - mat_ld = plink_ld.pivot(index='SNP_A', columns='SNP_B', values='R') - un_index = mat_ld.index.union(mat_ld.columns) - mat_ld = mat_ld.reindex(index=un_index, columns=un_index) - mat_ld.fillna(0, inplace=True) - - sym = np.maximum(mat_ld.values,mat_ld.values.transpose()) - - mat_ld = pd.DataFrame(sym, index=mat_ld.index, columns=mat_ld.columns) - re_index = ref_chr_df.loc[mat_ld.index].sort_values(by="pos").index - mat_ld = mat_ld.loc[re_index, re_index] - mat_ld = mat_ld.to_sparse() - return mat_ld - -def generate_genome_matrices(region_files, reffolder, folder_output, suffix = ""): - """ - go through region files and compute LD matrix for each transform and - save the results in a pandas sparse dataframe - - Args: - region_files (str) : region file containing beginning and end position - reffolder (str) : folder of reference panel - folder_output (str): folder to save plink LD correlation result files - """ - regions = pd.read_csv(region_files) - for reg in regions.iterrows(): - print(reg[0]) - # input reference panel file - fi_ref = "{0}/{1}.{2}".format(reffolder, reg[1]['chr'], suffix) - - chr_int = re.search('([0-9]{1,2})', str(reg[1]['chr'])).group() - # Compute the LD correlation with LD - launch_plink_ld(reg[1]['start'], reg[1]['stop'], chr_int, fi_ref, folder_output) - - #fi_plink = "{0}/{1}_{2}_{3}.ld".format(folder_output, reg[1]['chr'], reg[1]['startpos'], reg[1]["endpos"]) - #fo_mat = "{0}/{1}_{2}_{3}.mat".format(folder_output, reg[1]['chr'], reg[1]['startpos'], reg[1]["endpos"]) - #transform plink output to a compressed generate_sparse_matrix - #generate_sparse_matrix(fi_plink, fo_mat) diff --git a/impute_jass/impute_jass/stat_models.py b/impute_jass/impute_jass/stat_models.py deleted file mode 100644 index 6f7acce81b298c7009c7b9045eb96d79d062cada..0000000000000000000000000000000000000000 --- a/impute_jass/impute_jass/stat_models.py +++ /dev/null @@ -1,103 +0,0 @@ -""" -This module contain the statistical library for imputation. - -Notation style of matrices subset and vectors are based on the publication: - -Bogdan Pasaniuc, Noah Zaitlen, Huwenbo Shi, Gaurav Bhatia, Alexander Gusev, -Joseph Pickrell, Joel Hirschhorn, David P. Strachan, Nick Patterson, -Alkes L. Price; -Fast and accurate imputation of summary statistics enhances evidence -of functional enrichment, Bioinformatics, Volume 30, Issue 20, 15 October 2014, -Pages 2906–2914 - -""" - -import numpy as np -import scipy as sc -import scipy.linalg - -def compute_mu(sig_i_t, sig_t_inv, zt): - """ - Compute the estimation of z-score from neighborring snp - - Args: - sig_i_t (matrix?) : correlation matrix with line corresponding to - unknown Snp (snp to impute) and column to known SNPs - sig_t_inv (np.ndarray): inverse of the correlation matrix of known - matrix - zt (np.array?): Zscores of known snp - Returns: - mu_i (np.array): a vector of length i containing the estimate of zscore - - """ - return np.dot(sig_i_t, np.dot(sig_t_inv, zt)) - -def compute_var(sig_i_t, sig_t_inv, lamb, batch=True): - """ - Compute the expected variance of the imputed SNPs - Args: - sig_i_t (matrix?) : correlation matrix with line corresponding to - unknown Snp (snp to impute) and column to known SNPs - sig_t_inv (np.ndarray): inverse of the correlation matrix of known - matrix - lamb (float): regularization term added to matrix - - """ - - if batch: - var = (1 + lamb) - np.einsum('ij,jk,ki->i', sig_i_t, sig_t_inv ,sig_i_t.transpose()) - ld_score = (sig_i_t**2).sum(1) - - else: - var = (1 + lamb) - np.dot(sig_i_t, np.dot(sig_t_inv, sig_i_t.transpose())) - ld_score = (sig_i_t**2).sum() - - return var, ld_score - -def check_inversion(sig_t, sig_t_inv): - return np.allclose(sig_t, np.dot(sig_t, np.dot(sig_t_inv, sig_t))) - -def var_in_boundaries(var,lamb): - """ - Forces the variance to be in the 0 to 1+lambda boundary - theoritically we shouldn't have to do that - """ - id_neg = np.where(var < 0) - var_norm = var - var[id_neg] = 0 - id_inf = np.where(var > (1+lamb)) - var[id_inf] = 1 - - return var - -def impg_model(zt, sig_t, sig_i_t, lamb=0.01, rcond=0.01, batch=True): - """ - Compute the variance - Args: - zt (np.array): the vector of known Z scores - sig_t (np.ndarray) : the matrix of known Linkage desiquilibrium - correlation - sig_i_t (np.ndarray): inverse of the correlation matrix of known - matrix - lamb (float): regularization term added to the diagonal of the sig_t matrix - rcond (float): threshold to filter eigenvector with a eigenvalue under rcond - make inversion biased but much more numerically robust - """ - sig_t = sig_t.values - np.fill_diagonal(sig_t, (1+lamb)) - sig_t_inv = scipy.linalg.pinv(sig_t, rcond=rcond) - - if batch: - condition_number = np.array([np.linalg.cond(sig_t)]*sig_i_t.shape[0]) - correct_inversion = np.array([check_inversion(sig_t, sig_t_inv)]*sig_i_t.shape[0]) - else: - condition_number = np.linalg.cond(sig_t) - correct_inversion = check_inversion(sig_t, sig_t_inv) - var, ld_score = compute_var(sig_i_t, sig_t_inv, lamb, batch) - mu = compute_mu(sig_i_t, sig_t_inv, zt) - if np.any(mu > 30): - print("ABERANT SNP SNiP") - var_norm = var_in_boundaries(var, lamb) - R2 = ((1+lamb)-var_norm) - mu = mu / np.sqrt(R2) - return({"var" : var, "mu" : mu, "ld_score" : ld_score, "condition_number" : condition_number, "correct_inversion":correct_inversion }) diff --git a/impute_jass/impute_jass/windows.py b/impute_jass/impute_jass/windows.py deleted file mode 100644 index 8368711bc98fa6d8a3716fe95ca301fe9618ea4e..0000000000000000000000000000000000000000 --- a/impute_jass/impute_jass/windows.py +++ /dev/null @@ -1,176 +0,0 @@ -""" -implement the imputation window is sliding along the genome: - -- ImpG like: Non overlapping windows, the imputation is apply in batch to unknown snp in the window -- centered_window: A sliding window centered on the Snp to impute -""" - -from .stat_models import impg_model -from .ld_matrix import generate_sparse_matrix - -import pandas as pd -import numpy as np - -def parse_region_position(ld_file): - """ - Retrieve the region definition from a ld-file generated by impute_jass - Argument : - ld_file : A ld file generated by jass_impute - """ - (chrom, startpos, endpos ) = ld_file.split("/")[-1].split(".")[0].split('_') - return (chrom, startpos, endpos) - -def realigned_zfiles_on_panel(ref_panel, zscore): - """ - Check if the counted allele is the same in the reference panel and - the Zscore files. - - If not, the coded and other allele are inverted and the zscore sign - is inverted also. - Args: - - ref_panel (pd.dataframe) : snp of reference on the imputed chromosome - - zscore (pd.dataframe): - """ - sub_ref_panel = ref_panel.loc[zscore.index] - allele_inverted = (sub_ref_panel['Ref_all'] != zscore.A0) - - zscore.loc[allele_inverted, "A0"] = sub_ref_panel.loc[allele_inverted].Ref_all - zscore.loc[allele_inverted, "A1"] = sub_ref_panel.loc[allele_inverted].alt_all - zscore.loc[allele_inverted, "Z"] = - zscore.loc[allele_inverted, "Z"] - - return zscore - -def prepare_zscore_for_imputation(ref_panel, zscore): - """ - Prepare the known Z score by - - realigning them on the reference ref_panel - - filtering snps that are not present in the ref panel - - Adding columns that will contain information on imputation: - * Var : theoritical variance estimate of z - * Nsnp_to_impute : Number of known snp - * ld_score : the sum of the square correlation of the snp with all other - known snp (give an idea if the we have enough information to compute a - precise z estimate) - """ - zscore = realigned_zfiles_on_panel(ref_panel, zscore) - zscore['Var'] = -1.0 - zscore['Nsnp_to_impute'] = -1 - zscore['ld_score'] = -1.0 - zscore = zscore.loc[zscore.index.intersection(ref_panel.index)] - return zscore - -def in_region(pos_vector, start, end): - return ((start < pos_vector) & (pos_vector < end)) - - -def compute_window_and_size(start_ld_block, end_ld_block, window_size): - """ - Compute the number of window to pave the Linkage desiquilibrium block - tightly with a window - size the closest to the one specified by the user - Args: - start_ld_block (int): the start of the Linkage desiquilibrium block - end_ld_block (int): the end of the Linkage desiquilibrium block - window_size (int) : size in bp of the window to compute imputation_style - all unknown snps in the window will be imputed from the known snp in - the windows - return: - a tuple ( number of windows (int), size of the window resize to the ld block (int)) - """ - - Nwindows = ((int(end_ld_block)) - (int(start_ld_block)))//window_size - # adapt window size to cover the LD block - if Nwindows > 0: - window_resize = np.ceil((int(end_ld_block) - (int(start_ld_block)))/Nwindows) - else: - Nwindows = 1 - window_resize = np.ceil(int(end_ld_block) - (int(start_ld_block))) - - return Nwindows, window_resize - -def format_result_df(imp, ref_panel, known, unknowns): - - result_dict = { - 'pos': ref_panel.loc[unknowns, 'pos'], - 'A0': ref_panel.loc[unknowns, "Ref_all"], - "A1": ref_panel.loc[unknowns,"alt_all"], - "Z" : imp['mu'], - "Var": imp["var"], - "ld_score" : imp["ld_score"], - "condition_number": imp['condition_number'], - "correct_inversion":imp["correct_inversion"], - "Nsnp_to_impute" : len(known) - } - column_order = ['pos','A0',"A1","Z","Var", "ld_score", "condition_number", - "correct_inversion", "Nsnp_to_impute"] - batch_df = pd.DataFrame(result_dict, columns = column_order) - return batch_df - - -def print_progression(i, Nwindows): - """ - print the percentage of window treated in the ld block - """ - if i%(np.ceil(Nwindows/10)) == 0: - print("{0}\%".format(np.round(i/Nwindows,3))) - -def empty_imputed_dataframe(): - column_order = ['pos','A0',"A1","Z","Var", "ld_score", "condition_number", - "correct_inversion", "Nsnp_to_impute"] - zscore_results = pd.DataFrame(columns = column_order) - return zscore_results -def impg_like_imputation(ld_file, ref_panel, zscore, window_size, buffer, lamb, - rcond, unknowns=pd.Series([])): - """ - Each missing Snp is imputed by known snp found in a window centered on the SNP to impute - Argument. - Args: - ld_file (str): Linkage desiquilibrium matrix files - ref_panel (pd.dataframe): the dataframe containing reference panel - snps - """ - (chrom, start_ld_block, end_ld_block) = parse_region_position(ld_file) - LD_mat = generate_sparse_matrix(ld_file, ref_panel) - Nwindows, window_resize = compute_window_and_size(start_ld_block, end_ld_block, window_size) - all_unknowns = ref_panel.loc[ref_panel.index.difference(zscore.index)] - - # the dataframe containing results - zscore_results = empty_imputed_dataframe() - - print("### Imputation of {0} snps ###".format(all_unknowns.shape[0])) - - for i in range(Nwindows): - # Boundary of the sliding_window - start_windows = int(start_ld_block) + i*window_resize - buffer - end_windows = int(start_ld_block) + (i+1)*window_resize + buffer - - start_pos = max(start_windows, float(start_ld_block)) - end_pos = min(end_windows, float(end_ld_block)) - - in_LD_reg_n_window = in_region(zscore.pos, start_pos, end_pos) - unknown_in_LD_reg_n_window = in_region(all_unknowns.pos, start_pos, end_pos) - - known = zscore.loc[in_LD_reg_n_window].index - unknowns = all_unknowns.loc[unknown_in_LD_reg_n_window].index - - sig_t = LD_mat.loc[known, known] - sig_i_t = LD_mat.loc[unknowns, known] - zt = zscore.loc[known,'Z'] - - if(len(known) > 0): - imp = impg_model(zt, sig_t, sig_i_t, lamb=lamb, rcond=rcond, batch=True) - batch_df = format_result_df(imp, ref_panel, known, unknowns) - - # keep only snp in the core window (and not in the buffer) - start_core_window = int(start_ld_block) + i*window_resize - end_core_window = int(start_ld_block) + (i+1)*window_resize - in_core_window = in_region(batch_df.pos, start_core_window, end_core_window) - - # keep only SNP with non negligible explained variance - snp_well_predicted = (batch_df.Var < 0.9) - batch_df_filt = batch_df.loc[in_core_window & snp_well_predicted, zscore_results.columns] - zscore_results = pd.concat([zscore_results, batch_df_filt]) - i = i+1 - print_progression(i, Nwindows) - - return zscore_results.sort_values(by="pos") diff --git a/impute_jass/requirements.txt b/impute_jass/requirements.txt deleted file mode 100644 index 5e9229ca8ef4f5b821becff987c7f51b4b3300d9..0000000000000000000000000000000000000000 --- a/impute_jass/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -scipy -pandas \ No newline at end of file diff --git a/impute_jass/setup.py b/impute_jass/setup.py deleted file mode 100644 index 07a170f3ccca0b800eb0b87a881b2b5d40b97cb3..0000000000000000000000000000000000000000 --- a/impute_jass/setup.py +++ /dev/null @@ -1,21 +0,0 @@ -from setuptools import setup, find_packages - -setup(name='impute_jass', - version='0.1', - description='Imputation of summary statistics', - url='http:https://gitlab.pasteur.fr/statistical-genetics/JASS_Pre-processing', - author='Hanna Julienne', - author_email='hanna.julienne@pasteur.fr', - license='MIT', - #package_dir = {'': 'jass_preprocessing'}, - packages= ['impute_jass'], - - package_data = {'impute_jass':'./data/*.csv'}, - zip_safe=False, - - entry_points={ - 'console_scripts' : [ - 'impute_jass = impute_jass.__main__:main' - ] - } - )