##################################
#                                #
# Last modified 2021/07/12       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
import os

def run():

    if len(sys.argv) < 2:
        print 'usage: python %s file fieldID' % sys.argv[0]
        print '\tNote: the script can read .bz2, .gz, and .zip files'
        print '\tNote: the script will print to stodut by default'
        sys.exit(1)

    regions = sys.argv[1]
    fieldID = int(sys.argv[2])

    if regions.endswith('.bz2'):
        cmd = 'bzip2 -cd ' + regions
    elif regions.endswith('.gz'):
        cmd = 'gunzip -c ' + regions
    elif regions.endswith('.zip'):
        cmd = 'unzip -p ' + regions
    else:
        cmd = 'cat ' + regions
    p = os.popen(cmd, "r")
    line = 'line'
    while line != '':
        line = p.readline().strip()
        fields = line.split('\t')
        if line == '':
            break
        if line.startswith('#'):
            continue
        fields = line.strip().split('\t')
        chr = fields[fieldID].split(':')[0]
        left = fields[fieldID].split(':')[1].split('-')[0]
        right = fields[fieldID].split(':')[1].split('-')[1]
        outline = ''
        for ID in range(fieldID):
            outline = outline + fields[ID] + '\t'
        outline = outline + chr + '\t' + left + '\t' + right + '\t'
        for ID in range(fieldID+1,len(fields)):
            outline = outline + fields[ID] + '\t'
        print outline
            
run()
