Capricorn / data_processing /tsv2bedpe.py
chnftq's picture
Upload folder using huggingface_hub
e3814d7 verified
Raw
History Blame Contribute Delete
1.57 kB
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
# --------------------------------------------------------
# a script to transform tsv outputs for loops to bedpe format
# --------------------------------------------------------
import pandas as pd
import argparse
required_domain = ['chrom1', 'start1', 'end1', 'chrom2', 'start2', 'end2', 'name', 'score', 'strand1', 'strand2', 'color']
if __name__=='__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--tsv-file', type=str)
parser.add_argument('-o', '--output-file', type=str, default = None)
parser.add_argument('-c', '--default-color', type=str, default = '0,0,255')
args = parser.parse_args()
tsv_file = args.tsv_file
output_file = args.output_file
default_color = args.default_color
if output_file is None:
output_file = args.tsv_file.split('.')[0]+'.bedpe'
data = pd.read_csv(tsv_file,sep='\t')
n = len(data)
default = ['.'] * n
bedpe_data = {}
for domain in required_domain:
if domain in data.columns:
bedpe_data[domain] = data[domain]
else:
if domain == 'color':
bedpe_data[domain] = default_color
else:
bedpe_data[domain] = default
for domain in data.columns:
if domain not in required_domain:
bedpe_data[domain] = data[domain]
pd.DataFrame(bedpe_data).to_csv(output_file, sep='\t', index=False)