Mercurial > repos > iuc > stacks2_gstacks
view check_bcfile.py @ 6:7b72fde3d27e draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit 2f4c9bfc48d63075ae18a1687e8d01ffea509084
author | iuc |
---|---|
date | Wed, 11 May 2022 06:40:42 +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)