diff write_amplicon_info_file.py @ 22:6606a8c97889 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ivar/ commit 97f230215d53e71748c78cd21633d92143710b94
author iuc
date Wed, 06 Aug 2025 08:21:20 +0000
parents 7bd020da0ce5
children
line wrap: on
line diff
--- a/write_amplicon_info_file.py	Thu Mar 13 09:02:49 2025 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#!/usr/bin/env python
-
-import argparse
-import re
-
-
-AMPLICON_PAT = re.compile(r'.*_(?P<num>\d+).*_(?P<name>L(?:EFT)?|R(?:IGHT)?)')
-
-
-def write_amplicon_info_file(bed_file, amplicon_info_file):
-    amplicon_sets = {}
-    for line in bed_file:
-        line = line.strip()
-        if not line:
-            continue
-        fields = line.split('\t')
-        start = int(fields[1])
-        name = fields[3]
-        re_match = AMPLICON_PAT.match(name)
-        if re_match is None:
-            raise ValueError(
-                '{} does not match expected amplicon name format'.format(name)
-            )
-        amplicon_id = int(re_match.group('num'))
-        amplicon_set = amplicon_sets.get(amplicon_id, [])
-        amplicon_set.append((name, start))
-        amplicon_sets[amplicon_id] = amplicon_set
-
-    # write amplicons sorted by number with primers sorted by start position
-    for id in sorted(amplicon_sets):
-        amplicon_info = '\t'.join(
-            [name for name, start in sorted(
-                amplicon_sets[id], key=lambda x: x[1]
-            )]
-        ) + '\n'
-        amplicon_info_file.write(amplicon_info)
-    amplicon_info_file.close()
-
-
-if __name__ == '__main__':
-    parser = argparse.ArgumentParser(
-        description='Write an amplicon info file for iVar '
-                    'from a BED file describing primer positions'
-    )
-    parser.add_argument(
-        'bed_file', type=argparse.FileType(), help='Primer BED file'
-    )
-    parser.add_argument(
-        'amplicon_info_file', type=argparse.FileType('w'),
-        help='Output file: amplicon info file in TSV format'
-    )
-    args = parser.parse_args()
-
-    write_amplicon_info_file(args.bed_file, args.amplicon_info_file)