Mercurial > repos > iuc > stacks2_gstacks
view check_bcfile.py @ 3:eb784fa07f80 draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit 9a6c14bcb90c0b30c583294a993fac47504f4009"
author | iuc |
---|---|
date | Tue, 27 Apr 2021 09:31:18 +0000 |
parents | 1d839ead7ad3 |
children |
line wrap: on
line source
#!/usr/bin/env python import argparse import sys parser = argparse.ArgumentParser() parser.add_argument('bcfile', help='barcode file') args = parser.parse_args() barcodes = [] with open(args.bcfile, "r") as fh: for line in fh: if len(line) == 0: continue if line.startswith("#"): continue barcodes.append(line.split()) if len(barcodes) <= 1: sys.exit("barcode file is empty") # check that all lines have the same number of columns ncol = None for bc in barcodes: if ncol is None: ncol = len(bc) elif ncol != len(bc): sys.exit("barcode file has inconsistent number of columns") isname = False for bc in barcodes: if len(bc[-1].strip("ATCGatcg")) > 0: isname = True break names = set() for bc in barcodes: if isname: n = bc[-1] else: n = '-'.join(bc) if n in names: sys.exit("duplicate sample %s in barcode file" % n) names.add(n)