pipeline/script/txt_xlsx.py

59 lines
2.0 KiB
Python
Raw Normal View History

2023-08-25 10:06:31 +08:00
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
##https://blog.csdn.net/fanlei_lianjia/article/details/78225857
import os
import sys
from openpyxl import Workbook,load_workbook
from openpyxl.drawing.image import Image
if len(sys.argv) != 3:
print(" ".join(['usage:python',sys.argv[0],'output_dir','tumor']))
sys.exit()
output_dir=sys.argv[1]
tumor=sys.argv[2]
outputfile=''.join([output_dir,'/report/',tumor,'.report.check.xlsx'])
wb=Workbook()
def write_excel(txt_name,sheet):
f1=open(txt_name,'r',encoding='utf-8')
lines=f1.readlines()
for line in lines:
split_line=line.split('\t')
sheet.append(split_line)
wb.save(outputfile)
inputs={'qc_fail':''.join([output_dir,'/report/','qc_fail.txt']),
'somatic_filter':''.join([output_dir,'/report/',tumor,'.snp.indel.Somatic.annoall.hg19_multianno_filtered.txt']),
'hotspot':''.join([output_dir,'/report/',tumor,'.hotspot.snp.indel.filter.anno.hg19_multianno.txt']),
'germline_filter':''.join([output_dir,'/report/',tumor,'.snp.indel.Germline.anno.hg19_multianno_filtered.txt']),
'promoter':''.join([output_dir,'/report/',tumor,'.target.promoter.txt']),
'splicing':''.join([output_dir,'/report/',tumor,'.target.splicing.txt']),
'fusion':''.join([output_dir,'/report/',tumor,'.fusion.reanno.vcf']),
'cnv':''.join([output_dir,'/report/',tumor,'.rmdup.cns.cn']),
'HRR':''.join([output_dir,'/report/',tumor,'.hrr.pre.txt']),
'HRR':''.join([output_dir,'/report/',tumor,'.hrr.pre.txt']),
'TMB':''.join([output_dir,'/report/',tumor,'.tmb.txt']),
'MMR':''.join([output_dir,'/report/',tumor,'.mmr.pre.txt']),
'immune_predict':''.join([output_dir,'/report/',tumor,'.hpd.pre.txt']),
'hereditary_cancer_syndrome':''.join([output_dir,'/hereditary/',tumor,'.hereditary.pre.txt'])
}
for key,value in inputs.items():
sheet=wb.create_sheet(key)
write_excel(value,sheet)
ws=wb['cnv']
mr=ws.max_row
cell='C'+str(mr+4)
cnv_pic_path=''.join([output_dir,'/report/',tumor,'.cnv.png'])
image=Image(cnv_pic_path)
ws.add_image(image,cell)
wb.save(outputfile)
del wb['Sheet']
wb.save(outputfile)