Mercurial > repos > iuc > stacks2_gstacks
annotate check_bcfile.py @ 7:fa51dc5e8386 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit feda4e2ea70c013fcddd1dbdeab73158fe9c86a4
| author | iuc | 
|---|---|
| date | Mon, 23 May 2022 17:54:01 +0000 | 
| parents | 1d839ead7ad3 | 
| children | 
| rev | line source | 
|---|---|
| 2 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 2 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 3 import argparse | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 4 import sys | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 5 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 6 parser = argparse.ArgumentParser() | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 7 parser.add_argument('bcfile', help='barcode file') | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 8 args = parser.parse_args() | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 9 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 10 barcodes = [] | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 11 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 12 with open(args.bcfile, "r") as fh: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 13 for line in fh: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 14 if len(line) == 0: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 15 continue | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 16 if line.startswith("#"): | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 17 continue | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 18 barcodes.append(line.split()) | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 19 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 20 if len(barcodes) <= 1: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 21 sys.exit("barcode file is empty") | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 22 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 23 # check that all lines have the same number of columns | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 24 ncol = None | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 25 for bc in barcodes: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 26 if ncol is None: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 27 ncol = len(bc) | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 28 elif ncol != len(bc): | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 29 sys.exit("barcode file has inconsistent number of columns") | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 30 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 31 isname = False | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 32 for bc in barcodes: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 33 if len(bc[-1].strip("ATCGatcg")) > 0: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 34 isname = True | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 35 break | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 36 | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 37 names = set() | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 38 for bc in barcodes: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 39 if isname: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 40 n = bc[-1] | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 41 else: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 42 n = '-'.join(bc) | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 43 if n in names: | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 44 sys.exit("duplicate sample %s in barcode file" % n) | 
| 
1d839ead7ad3
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
 iuc parents: diff
changeset | 45 names.add(n) | 
