Перед запросом вам нужно выполнить предварительные условия tabix (bgzip, index). Они не включены в tb.query.
если файл уже заархивированы, то вы должны сделать:
zippedf ='qcat.gz'
def tabix_index(zippedf)
from subprocess import Popen,PIPE
import shlex
p = Popen(['tabix','-f', zippedf], stdout= PIPE)
# or : cmd = "tabix -f " + zippedf
# p = Popen(shlex.split(cmd), stdout=PIPE)
#(shlex splits the cmd in spaces)
p.wait()
В случае, если у вас есть не-архивный файл, который вы можете запустить 3 подпроцессов в ряд, чтобы сделать сортировку, bgzip и индекс:
out_sorted = 'myfile.sorted'
out_zipped= out_sorted + ".gz"
with open(out_zipped,'w') as sort_zip_out :
cmd="sort -V -k1,1 myfile"
p1 = Popen(shlex.split(cmd), stdout=PIPE)
p2 = Popen(['bgzip','-c','-f'], stdin=p1.stdout, stdout= sort_zip_out)
p1.stdout.close() #finish first subprocess before starting second
p1.wait() #wait for results to be written
#when these two subprocesses are finished,
tabix_index(out_zipped)