From 27c154a2f04259c2e5d96974a631af7dc7f5ed49 Mon Sep 17 00:00:00 2001 From: Michael Cormier <35238534+mikecormier@users.noreply.github.com> Date: Wed, 22 Jul 2020 12:38:56 -0600 Subject: [PATCH] Support for tsv files that are either formatted like VCF files or Bed Files (#2) * Support for tsv files that are either formated like VCF files or Bed Files * Add new functional tests --- .travis.yml | 1 + cmd/check-sort-order/main.go | 4 +- functional-test.sh | 54 +++++++++++++++++++++ test_files/test_bad.vcf_like.tsv.gz | Bin 0 -> 3028 bytes test_files/test_bad.vcf_like.tsv.gz.tbi | Bin 0 -> 443 bytes test_files/test_bed_like.tsv.gz | Bin 0 -> 1696 bytes test_files/test_bed_like.tsv.gz.tbi | Bin 0 -> 241 bytes test_files/test_file.bad_header.vcf.gz | Bin 0 -> 7407 bytes test_files/test_file.bad_header.vcf.gz.tbi | Bin 0 -> 227 bytes test_files/test_file.bad_sort.bed.gz | Bin 0 -> 790 bytes test_files/test_file.bad_sort.bed.gz.tbi | Bin 0 -> 1535 bytes test_files/test_file.bed.gz | Bin 0 -> 1040 bytes test_files/test_file.bed.gz.tbi | Bin 0 -> 1871 bytes test_files/test_file.gtf.gz | Bin 0 -> 2522 bytes test_files/test_file.gtf.gz.tbi | Bin 0 -> 220 bytes test_files/test_file.vcf.gz | Bin 0 -> 7960 bytes test_files/test_file.vcf.gz.tbi | Bin 0 -> 226 bytes test_files/test_vcf_like.tsv.gz | Bin 0 -> 1730 bytes test_files/test_vcf_like.tsv.gz.tbi | Bin 0 -> 239 bytes test_genome_files/genome_sizes.genome | 5 ++ 20 files changed, 63 insertions(+), 1 deletion(-) create mode 100755 functional-test.sh create mode 100755 test_files/test_bad.vcf_like.tsv.gz create mode 100755 test_files/test_bad.vcf_like.tsv.gz.tbi create mode 100755 test_files/test_bed_like.tsv.gz create mode 100755 test_files/test_bed_like.tsv.gz.tbi create mode 100755 test_files/test_file.bad_header.vcf.gz create mode 100755 test_files/test_file.bad_header.vcf.gz.tbi create mode 100755 test_files/test_file.bad_sort.bed.gz create mode 100755 test_files/test_file.bad_sort.bed.gz.tbi create mode 100755 test_files/test_file.bed.gz create mode 100755 test_files/test_file.bed.gz.tbi create mode 100755 test_files/test_file.gtf.gz create mode 100755 test_files/test_file.gtf.gz.tbi create mode 100755 test_files/test_file.vcf.gz create mode 100755 test_files/test_file.vcf.gz.tbi create mode 100755 test_files/test_vcf_like.tsv.gz create mode 100755 test_files/test_vcf_like.tsv.gz.tbi create mode 100755 test_genome_files/genome_sizes.genome diff --git a/.travis.yml b/.travis.yml index 5d64042..48bd90e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ go: - 1.12.x script: + - ./functional-test.sh - cd cmd/check-sort-order - go test diff --git a/cmd/check-sort-order/main.go b/cmd/check-sort-order/main.go index ca824b1..41e9c50 100644 --- a/cmd/check-sort-order/main.go +++ b/cmd/check-sort-order/main.go @@ -58,7 +58,9 @@ func main() { if strings.HasSuffix(args.Path, ".vcf.gz") { checkVCF(args.Path, gf) - } else if strings.HasSuffix(args.Path, ".bed.gz") || strings.HasSuffix(strings.ToLower(args.Path), ".bedgraph.gz") { + } else if strings.HasSuffix(args.Path, ".bed.gz") || strings.HasSuffix(strings.ToLower(args.Path), ".bedgraph.gz") || strings.HasSuffix(strings.ToLower(args.Path), ".bedpe.gz"){ + checkTab(args.Path, gf, get_vcf_chrom_start) + } else if strings.HasSuffix(strings.ToLower(args.Path), "tsv.gz"){ checkTab(args.Path, gf, get_vcf_chrom_start) } else { found := false diff --git a/functional-test.sh b/functional-test.sh new file mode 100755 index 0000000..62c4257 --- /dev/null +++ b/functional-test.sh @@ -0,0 +1,54 @@ +#!/bin/bash + + +test -e ssshtest || wget -q https://raw.githubusercontent.com/ryanlayer/ssshtest/master/ssshtest + +. ssshtest + +set -o nounset + +go build -o ./check-sort-order cmd/check-sort-order/main.go + + +## Check vcf file +run check_vcf_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_file.vcf.gz +assert_exit_code 0 +assert_no_stdout + +## check bed file +run check_bed_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_file.bed.gz +assert_exit_code 0 +assert_no_stdout + +## check gtf file +run check_gtf_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_file.gtf.gz +assert_exit_code 0 +assert_no_stdout + +## Check bad sorted bed +run check_bad_sorted_bed_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_file.bad_sort.bed.gz +assert_exit_code 1 +assert_in_stderr "chromosomes not in specified sort order: 4, 1 at line 33" +assert_in_stderr "use gsort (https://github.com/brentp/gsort/) to order according to the genome file" + +## check a vcf file with a bad header +run check_bad_sorted_bed_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_file.bad_header.vcf.gz +assert_exit_code 1 +assert_in_stderr "VCF header line '##fileformat=VCF... not found" + +## Check a tsv file that is formated like a vcf file +run check_bad_sorted_bed_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_bed_like.tsv.gz +assert_exit_code 0 +assert_no_stdout + +## Check a tsv file that is formated like a bed file +run check_bad_sorted_bed_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_bed_like.tsv.gz +assert_exit_code 0 +assert_no_stdout + +## Check a tsv file that is not formated correctly +run check_bad_sorted_bed_file ./check-sort-order --genome test_genome_files/genome_sizes.genome test_files/test_bad.vcf_like.tsv.gz +assert_exit_code 1 +assert_in_stderr 'strconv.Atoi: parsing "A": invalid syntax' + + diff --git a/test_files/test_bad.vcf_like.tsv.gz b/test_files/test_bad.vcf_like.tsv.gz new file mode 100755 index 0000000000000000000000000000000000000000..03ad69a72a39d25c0fa3f2dcc3a0071c286fc407 GIT binary patch literal 3028 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 Ro5KIi?J{hff5!MD`42B5_E`V` literal 0 HcmV?d00001 diff --git a/test_files/test_bad.vcf_like.tsv.gz.tbi b/test_files/test_bad.vcf_like.tsv.gz.tbi new file mode 100755 index 0000000000000000000000000000000000000000..5321a9f8fba9b91e0cc69271b14932f45f0cf989 GIT binary patch literal 443 zcmb2|=3rp}f&Xj_PR>jWT8wWm82TM{5MaHqky$j>ip#~Zlcj8mutTH40*?;q3C0Bi z-kBDhyx$*6SgZ*z+_unXqWPsCo}25BPrLt4ZuMl3P+nW<-&u3cw&y*5xHEH>>*hU~ zi(`)%y-NIL<$Qn_fSDzh}<=<8^cWjQ&UZe|uJI|NUg?#_ySb))|@4KI65$ z`uFV;{paSZQ|j_9&(~{&mv1~hLB(?t4UpWasu$;9cVrc8?%KHT+_v-U{GUIqk^TL( zY9GwT<4^Tpeg3b&@SlM}9xbSf8QvZ>E7^Dtddl-@HD&tbe^N*N@T9)n?WIy}5s0iPL|sx107~E$^S#o9*)cL3}O& z`lTSR-^6Ll?fzNI*Z1$QZ|k@B_M>QidBK;j58IcOI(%L|uJ1R?*VRAotIdP>UpGIt z(c|~|^-U|_4-yqsT&XdMYVmb`J?C-zCrxvb()M*DUz4(E&-v>%yT~Kx?m1QUPHvIoyvSbWiH18oRtfqKrv%06N|i2%-GK4f!x$Y%*}I) z%0iAbV9qtM9z!&!WD_uXFea5_39f8Bnn$Szvxb;lFypg4%Z@Uni48=oB{5E^RV9O% zH;Osfk4iaKg2)0zu8B>s{AebY^Gg-ETrbQ_Ea%s|43z`SN{mEAz`@u*xM^Ur37GW+ zOdh0?T2?y}u*;o`>&>jqP*NPJ+-EX~`BgEAoyj5QC&9d~+iwG|fpF&nH?&-|tad~< z80X^b%&@5KGwa|gF&h_NDzS9eyL1mR6FH`^n;#-KFhjYiiI|(8caz7ik_BU?a?HS1 zbRk-ME;CeFnGM8TC}wQe$sp#;ODBhz7lJvQ^-PXA967T@u9;Yd?siOKWrmL&%g@{r zc`nBSyzDqqX<)KIk!xZTtTHvT4#q6xNWt!LDVRme%!!rRK+J_;nlhxB9AaK5oy5+p zA?BrI=0$asbt=aaoI!p>OyjkRd(cbG#B$CRGs&$?Ea!8J&Qgw5KsPmURK^V|vBV~c)2YmQZe^nVy=4|vew1}hM6YI~%4DF&5xE~Av#R+ng6xl^kNS z9rG}9ac?CqNL5g=4s}Q5aIcYP;=9^o7bO+fMEsm55`81S#Cz>y%QTgWD;IrVc^S92 z?L*Spr1WM|`kpf)qsc)|hv+m;B)we?%lMd1`lAHXek)EE?@2mI4B8LrHA25t^nTt{ zYTkITUA{;*jrF4z;fs|G)cQDA+;q?tjLjTs$V?t57+Zm6VN&2Jo!rj6j<9UEp$z179 z&%boFSSFdF7SsMHL+Ku?l9?W2RXU_YvvjU!sh=}YJe?-X9fchq>$MRNVtc=x$$NI@Dw4{Y;{! z9%H1totgJtp!D-SY{eY1p$@}3U*f#<@&&3#*7*__e!f5*2BwGYFy@SoUro*P$jQFz zGD_nZt#r5N9+h77M>Ke)AF`qD<*`y9(%HCb@u#0sFAh3XF&@`nhxF!m(I?0%)L~$H zJt;kG|1!_h@%_tO>nHSpBUfmDRAP4V~FfqCAq(udCv}De qapr%@7BJ~z?BiwFb&00000{{{d;LjnLB00RI3000000000)+D8BY literal 0 HcmV?d00001 diff --git a/test_files/test_bed_like.tsv.gz.tbi b/test_files/test_bed_like.tsv.gz.tbi new file mode 100755 index 0000000000000000000000000000000000000000..5f7f996d5806e0c941309163c7788861e5d34a01 GIT binary patch literal 241 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 h001A02m}BC000301^_}s0stET0{{R300000001cxCSd>o literal 0 HcmV?d00001 diff --git a/test_files/test_file.bad_header.vcf.gz.tbi b/test_files/test_file.bad_header.vcf.gz.tbi new file mode 100755 index 0000000000000000000000000000000000000000..c30fa3ec7121803aef8f7241a125e50ad38b194e GIT binary patch literal 227 zcmb2|=3rp}f&Xj_PR>jW#~8Q^Kc%E3CL|;-=_BFrYLA-Z zl^YuzpDdSh%m`!)d7#Z=$iHk|54Y2Gr=y8Ao`M{)?4s=-6Q9jeoN4IA?Vko6n{2vL$-j_ z-TfZ}zAs)a>@FmoWpd)aT|oW8KZg$#M7A+%##}gh@o+1vC$F9q8-q@S2HO^(2jtPb MAo-Y}l=ApvwSH|LzO}!)mxo>7AI~p~#kOg?L-YJr zpX=vl^R}qB`!DN#yVz}Aeg3*xFLzsz&%15E`nf%IZ^z|fbsQf1)2jZx-2Q*GFD{Rp z?t8s!4y)y+IoGHCx_NTJ)7jsCdaQS+?ogfk)v2$Vc2k}Af19fRb8Ph8Y1M8%#Y#e= z1OY375g_?Ei1QW0keCA+j##IKZ?hXl)Ht z5>B`$EJzuP0R@9R2|^)C zM#&Bw6nG-g!7idxNJ7N{Ce<=c&H*%m6i2w*AF7ftsy{R+15AB!qR7Z%kYZGbB)1X} z2&AfP1S5q>b*`3_(nWOLCiu96x=;3^Y7S;@tFOm1GlOXD-AuNj)ndS0v>=0-F2{@% zV^CY%PQ7E%&FhCK;udBe0E14p=#rgagQ*Wa@OoN7ZyCf9!rV(r4B0d}ILy2-#FSGp zV24>Hq;Ls(n`zUd!<}pc79F!-JwUyRjAoHy$ik4a5tGv$jbP4_lpvIW=FuY9ErDc| z&}r`JeMQgtNOz|et^|6h->Hn+$qx&dhOH&hsW{Dolb$+eyQlO@g@NYVAdC_V*d>BG zFGh1unvc#(GRh-`JDzk*wLL~jW+Kg|{TYIrM3a~wR6&qXAQpMcd%M#!DGHFr9GfN*9{-h_S zCgS>=CO)5V^x8V79#@wiRT=wc*6&)qd!6|6TwOc2*ZxPAoX?zJZFtOWzI&mJdZEPa zzke4TeZK3u*}wB@hmSrxk#Ah@F+b_a=RfFOU9xvGG;NKGFNfeXp&xTlMdB&XcR|Uw@bV3Z1OtIf)|l(|GzH z;c#Rl{)nHGMlDxa~pINqT+Ttl52#2TG+e|=q0%`1%_bQcu z4*q{boBi!vmHIc2y_Y}UV0(9K_v;gRiLyU8etDQT=X2A*{ZH9 zMo!9Ke`H(kZ9J$}9z*u@bv){^NZEd4zreG;9-F(27~kG8^m76wTG6=l934}!GLv}@ zdJAOPABc&BUAuDZNS}2D3*SS|dCNBhPMX^(Af&<3GW~n*rk|VY)6_SM-`EuO*-;aB z(950npQKW0wEx==;kb3*T;Bu+Z;t#?8~wQ~;=J#Z&&!@geiyWhz5d7U)$xbLU(SCv z`Mf=dE&FTkmz`R(vxUBYzNb{vY4iNlPx*G!^Se?j%7Z`KJl|cn*ngk$^NRW(^LyVk zC4&+~%KEwAj)WtU2G~8Dob_&KPX{yKZBPZr)f2zZ=YJNLx#4-zj2c{Z(dRIFkS@juYydVxiVMXdFep}`Ef)&~;{ zSaz^3T9|T=TS3c9?2_4iwcYpk)u)%=>$$hdBCmQW1!))I>Pa#B@9SSW?+Dkl?k+Z1 z@!kDl=>BJK^Va4cdM#n!Wi?;^{q;Y(`)v7d14CN=%WCzB>9&0S%IB*lRi3f#trD|y zpI2+&sy{J3_Eh!fO51Lm`|n-K}$h z#i={61?OsD&TtfTaA06KP`y)4N@HQ8kk*R@O(3F~t4H#Eb>Z{0@0%Z9GE=;PC28Z$ zI%U1zk+kf-b=>FtzO|j@x4-H4Uqq6)UH4z_vhza!neldY+Fz7EK4yttQSWi&5@xX_ L&A<#U@j(Oth=#zF literal 0 HcmV?d00001 diff --git a/test_files/test_file.bed.gz b/test_files/test_file.bed.gz new file mode 100755 index 0000000000000000000000000000000000000000..adfb79dadffcb9dfe34ccbc76cf87d7cc7a408eb GIT binary patch literal 1040 zcmV+r1n>JFiwFb&00000{{{d;LjnNv19g_cZX-7ghR?H4vA_bo1l@?FM2QOoJ@?$+ z3&)w-K@&T$okRQd{mGeZ;?X3B=(G8olqixj-~Qa(KaF31Km2|C@pXT>yqtgB-tNZ3 z@p=6Ix;<~dj}Nc6+uh@@_m79${Vvq!-yZJo_B*m)_PfjGuifeR`f~TYd6_<5PMhsN zce|e-{TJ^aAC7-)_v7>C?qNJ{PmlNGO$ctz@$Hvy+x_YIJe)6^(`6VB55xKKzj3(y z`!eFY)8_E-g@!ax!r%P=GCpCir*XJ}iE7PM2j*Bx2)0kh!(?Txm241-Wwss6rPr)nN>1#!rEe8dY6_9Y=fA^N}UIiRM-qAp%k$6LBeE443HU8@1>MV>KaV} zotH{nv^0kr&}G6}ZK?4fDRIEcZj&?>OX_44)J5W?R;j2{%|R;~6ICl9N^PP(8dGj1 zOLi&})O&if5a*dB%?TP0m(zzr_$i>wZ`5Y(e!PsQW`6yjT@;G>cy$|g#Dmaij&TiRy?6haXn6LrWI9AR%#O`%0VleLc!+TCaOVe zqMQiEpc2&YJS#j=MAI6y<_Nom(W%XpI!~pc#Hj_fpgx+CW-ZAH<>9oV!S$k-oFoPH znwD5m%}!J&TG@6JMQ??w&_ru0v_IwQR3&I7p5cPk_iZT!^%~2?G*gG!ca6ct;^Oxvnb=BUVMtOaOj-igaxH14rqIavXHc@ z+K^d5rGV>{Kw&66G%}z~z};R9l}X;`fEuv$f@GrUk_<*OOegB56~8M07SK6kVa4zt ztjw@FCXpjbgy}5Ri3HA9)L)PUNhit)1&U{( zQ%e?9I+0K8Ts5c!E%V@(W>O`{g1Tap&+G6_t?~cby9|oVCUhl$Cs-y${92Pg*9Mar zR&N4H74;811%fOq6T{%OxOmPwf@+=0GWyE)r6Hl}}SpNLX@x&BNQ>?YA&xuk# zhRA3IGe+69<{jZ7)3w0xkkO1f6pr;ebI5`J&hUl?ka$%iUBnP>f{ET7FiHTr2$Jy% zh4&K;s2HI`T?kOv%}|AywJl&dsa&I)$ln!thSmGQ?64~ECk}0brLS82HKLkB!Qi%- zkyjEjO8y8|Cz>fOvh%?ND(|9?*YrOQhWa?T3jhEgiwFb&00000{{{d;LjnLB00RI3 K0000000013yZt=? literal 0 HcmV?d00001 diff --git a/test_files/test_file.bed.gz.tbi b/test_files/test_file.bed.gz.tbi new file mode 100755 index 0000000000000000000000000000000000000000..4a94c73b75f90d606f5edabf73177fd1f422d8fd GIT binary patch literal 1871 zcmb2|=3rp}f&Xj_PR>jWyBXhJTALT*D8csNX6&skOwEb5%Q#r<4+gZp;%5>P;1Cj+ z!4<ld{;eWLzukzwv|D1m2W`FeIdEvDZ z+b4(bwR&Oa756pj>CJNGuYP~#?YZ|jd5+5ZUxoRbVr9S7r2%?R(<;V zCA!w$KkoCg!u*}jx8BeDGxO*EAp4X1^e^Rqjr{xf#Gk5t^KSpTP`}vf`S#OyXTSZw zaqq0+Gk>E$UJW{b{N>_bRdfHY>fdD_`?7Lw@Y-_w=Mk^3RoD3bzX~*I+MZWd|IPXT zeKpem?*H^CP>)Ls}Q-xPGxS-Cyy6NU0`QzHJF4^z?d0Z~!%4Yeh@7~+0{$K0N-{n*H zFwEEH&$4ut`m?uZ-FUTn*<{herQUaykUW9U^VT;G^L?Cyq+*lzUUjJ6Ylq70;l}K~ zd9rKwuagHq&CV2e^?!NC;ncOmY4NA}qcZCx&*?4uqxMSb?Gsn!r`Iq3)|?~n_0#Xn z_rvWg&X+E}Sf9B5&Chjq-{rOJ`aVgle_gzPa)IV2oAb|ac2qz6{kApOR@1(>a^LmB zFO_}8y{>jLm3H}c^CzD8Z2h$K_Qw2s`tLvAnEh$%irc*Be+SR|e)|8@%3p7NJtnPb z{++^J+e z-pVg1X_tF@+uxU`w*e{Q(cLeXGpt{4uCLYn^J?9_n5T!4^=j_JW6)c-ItHgJXYXQj z?`MX$XE$;(ISQ~|_{#KN=g<*0JrQH)t?b?#cnuA98LeaN-pH@aEM6vl(IG(KNHzE2 z~o8=&99rrvF^#z1^$siadfB5?1S?PC!Z_K;?N4;vk>)+Tf=RX^K-X6p^{gwAmxj*&(r(f;r|6Q3cV&^`u z`01bR%|O)_dv>j;ocB3)|3&rt6N~rU*GW^}o$xOiWZB6&t2dqeNO>ESRZ`kzHiq|s z6UUtgEf7iRx$kxwL-SE~oH;_rNxhp;VT2eYUELJ?&yc>tIR;y(6$9gPp&&3WSvGw4 uIi{y`_?W_h@2i9-#}uoOA4##5ruW~!XE46Eb;_E#n8mI%12eb=1rY!@9E98e literal 0 HcmV?d00001 diff --git a/test_files/test_file.gtf.gz b/test_files/test_file.gtf.gz new file mode 100755 index 0000000000000000000000000000000000000000..aea9ae66976f46c1d5de1493f1bacaabe215ca76 GIT binary patch literal 2522 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 literal 0 HcmV?d00001 diff --git a/test_files/test_file.gtf.gz.tbi b/test_files/test_file.gtf.gz.tbi new file mode 100755 index 0000000000000000000000000000000000000000..a37e829968bba91a2fd5e7f8fb72333c971cede3 GIT binary patch literal 220 zcmb2|=3rp}f&Xj_PR>jW`x&?kKc%E3HZZs;ux*TNjF8ki#(1QS$BpM0j~b7U!?xuD zE_Xv$?AgQ8@@>`;hH38N;;9a-C#q&TK65;(w%YN?y_t()|(-E;n7Mv$~O)Qg0RQaOB(%=ZqQliT`$sGAvY;3~;o#GXKS^lnF;(_#Xb_ zlr1&q-3*0)?LTKXCd#Wb2mM&sefW|-&jzKH2VL#?oUSr6^ha)wmSJXKkVkXBGy_l& F3IJwIQJ??- literal 0 HcmV?d00001 diff --git a/test_files/test_file.vcf.gz b/test_files/test_file.vcf.gz new file mode 100755 index 0000000000000000000000000000000000000000..b0ec61c147d8e16ae0f769d258a982b20cd1e93f GIT binary patch literal 7960 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 L(hSUCPk{&kmWojr literal 0 HcmV?d00001 diff --git a/test_files/test_vcf_like.tsv.gz b/test_files/test_vcf_like.tsv.gz new file mode 100755 index 0000000000000000000000000000000000000000..6a8ea565ea5692b72d555fc249e040a2a5c6e75a GIT binary patch literal 1730 zcmV;z20i&7iwFb&00000{{{d;LjnM$2DO??bJ|E0h1Z(DF}o~WdUdz7q!g^8f;}Fi zQYtHo*d#-h4H;w4{QcZkBOXHiIM52N*ns@`+;bn@lKAuKpSR6x@N2UT-j+Xt_45Du z;^k%evJBqe7VGWP+v?Z*eDxgsT&|b<@9V|uk`Dj5+N|Yo%@?n$^=7_!qW2rX;VE%f z?{wIFb9~f%`|*AIzIy+VZw0f-Z8hIMZQhpZ$JgcaYO$Vgm;Zh&*H83U*FQGF{l}|( zWjkNI&s%8l{C#%+K&t+T0-lF?6pZLGzMoa0{FfvwN`!n~HqWDshj|?Q^_bqWp!hrs z?&uK(;Y}RIL41?Ze=(Qw9N`KGH*IiHm>+QK&40_6BVY*uYXU|$^qwAA`BWGa4s-BJ z1Jo*%K+MBx2aNPU%)>{!!pdLKB%}^=aH90(qF*_0f1FufVF;IX@Qx(jDj&oG*y?q#3%oid zUEtM4-33;@iYB7eV}ol<`@vMEgjRHg%flmm3RpnEzZEbt04oUiiGcT`-B%Y?LZ~sJ zjyr_39lS$#`(rvfJz11Gp`xcZ4*D?XYP&uxx1(KdHNY5luqWUy(4&Jf?BM5JcNp{) zK7k21Uv6nevnD0E9#}%aS^-0Y!U6(L?FuUhcuPQSj#D_`!W?i4r{voX80mqY1I7|E zGY8DTeL}CkF0k+yFatM6)(T|cKE?{<;8>UtkV_zo^uQ7V)&w-9goBfCLP2xW=;z?1 zp3p-A8PEH2EWjRdz+vj{Rk%9;1lV*FI=%tMOb^5|JToiI{5qJy4))->`mliSRKQ89 z2NpgR<`=AV!qjy61#7Wra?JEVbW%$o&skrN^9wc~jlQ^lY|*U1*J5EP>IR6e#lo-_ zH$Zgpv?}zMk|=^5G}mAQ^sKMA7T47`@)>XpF78vBGg&id48Rfs)(Xgl9#}!ZDFH1Z z7uNz0IYv(*rgR6V2{=vq^`R#@Q@W+Qu@k|pga?_ zcd5oz+%O;LL9fX>bxG3bq>T;hr5;PoLU~2o2elZ4S`I=za)445pCqe~D#Ey-%4I8~ zobfYiglT=GgXy(~8pT?z-D`+e>Z79WOTVGY%GWY&@i$Bn9_}ru_|KU@tzH(ro$45U zg)qOiN~w*FN{g#KwNWpN-$K2xrY!Yucc4@bPz5woRqsHBP`|d+FcPj*y8})&5O)>< zEA?(qWr-`*?!evNfi%}T5O-EUtJW{A)-2^ltx&%@Q=#6fS_fjD86AMSplY?o88d1v zukNkWiPd3xnb+N_vS!M;R-t)yiKkvxfo`Q*J^j+wR2HY&no3Zr(<+dlUF9^d6SS*l zhpsX^0M*s(PyyVi_4-{3XTKPvrV8&`yLSsMRCx)N zUX#8?X|oUJIx3JYd6kW_b#y0OoL5!nzM-8tRZNOsDHVMc(7hXJjepw4A9Hj3Km`EQ z5^1VGR9Yg@ zJ9)~`3Gl6@3U&R^g=&xAnF`H-*}emWeg-gf2F&)|nwfp|T>%W807V;r$TDO6P+b*m z{2@2T4^04Ps_zNF23V~aI#s{5nG#{>TB&wVohp?NP^lc9Do!gPM?1AwsfBuB{`;s< z1vu?jI646?p?b^~Gy$Bcqd};?=L#QSu5fe$ICX%)&VtL}lcb(~%vlSx+35x>5rw4! zn(`yCbKg>30cOVh2<#l)S!adl{G@am%`6a+k4mKc=uBoTq5_fmsATRx&EGqk1a>hA z&^j8#fzcoi6y6=kP_5&=)>OafWvH*?y;k+<3$0eDvPP}ew7IFG*9vvPsMVS#p|e(N zww$TH$4WN9_{#cedSCyEaIJrP{D%7f4Vv4=Svo-g03VA81ONa4 Y009360763o02=@U000000000008Vc}d;kCd literal 0 HcmV?d00001 diff --git a/test_files/test_vcf_like.tsv.gz.tbi b/test_files/test_vcf_like.tsv.gz.tbi new file mode 100755 index 0000000000000000000000000000000000000000..59c22862ee408b42efb0e303243b7ec3211909d5 GIT binary patch literal 239 zcmb2|=3rp}f&Xj_PR>jWml)oj-N<{$frm9for!J1;zbLVI3+PzO~??CKHxHi=YYnW zgK8`_f}T=rCpM?pzMOyF?)|q=*~rk#r7uHIs`=(8{XX0Gc~0fD?bnTL?|eFMu-|3> zvbi(s>%QH+Ub+6R_{SNp&+i%RciZpReV@m3k_wg3lZf2cya}8Knkr5+Fvz2MNt%Hf I>_ZR%090pL2><{9 literal 0 HcmV?d00001 diff --git a/test_genome_files/genome_sizes.genome b/test_genome_files/genome_sizes.genome new file mode 100755 index 0000000..49753b8 --- /dev/null +++ b/test_genome_files/genome_sizes.genome @@ -0,0 +1,5 @@ +#chrom length +1 249250621 +2 243199373 +3 198022430 +4 191154276