Mercurial > repos > iuc > data_manager_snpeff
comparison data_manager/data_manager_snpEff_databases.py @ 13:c3cdca7f40a2 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_snpeff commit 225ce35e1c3514cdba7a3637eba9aee964fa85f7
| author | iuc |
|---|---|
| date | Fri, 13 Mar 2026 13:07:48 +0000 |
| parents | c6fbc5421697 |
| children |
comparison
equal
deleted
inserted
replaced
| 12:617d95d798fa | 13:c3cdca7f40a2 |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 import json | 2 import json |
| 3 import optparse | 3 import optparse |
| 4 import os | 4 import os |
| 5 import re | |
| 5 import subprocess | 6 import subprocess |
| 6 import sys | 7 import sys |
| 8 | |
| 9 | |
| 10 def getSnpeffVersion(): | |
| 11 snpeff_version = 'SnpEff ?.?' | |
| 12 args = ['snpEff', '-version'] | |
| 13 try: | |
| 14 version_output = subprocess.check_output(args, shell=False).decode() | |
| 15 except subprocess.CalledProcessError as e: | |
| 16 sys.exit(e.returncode) | |
| 17 m = re.match(r'^(SnpEff)\s*(\d+\.\d+).*$', version_output) | |
| 18 if m: | |
| 19 snpeff_version = m.groups()[0] + m.groups()[1] | |
| 20 return snpeff_version | |
| 7 | 21 |
| 8 | 22 |
| 9 def fetch_databases(data_manager_dict, target_directory): | 23 def fetch_databases(data_manager_dict, target_directory): |
| 10 if not os.path.exists(target_directory): | 24 if not os.path.exists(target_directory): |
| 11 os.makedirs(target_directory) | 25 os.makedirs(target_directory) |
| 16 if return_code: | 30 if return_code: |
| 17 sys.exit(return_code) | 31 sys.exit(return_code) |
| 18 data_manager_dict['data_tables'] = data_manager_dict.get('data_tables', {}) | 32 data_manager_dict['data_tables'] = data_manager_dict.get('data_tables', {}) |
| 19 data_manager_dict['data_tables']['snpeffv_databases'] = data_manager_dict['data_tables'].get('snpeffv_databases', []) | 33 data_manager_dict['data_tables']['snpeffv_databases'] = data_manager_dict['data_tables'].get('snpeffv_databases', []) |
| 20 data_table_entries = [] | 34 data_table_entries = [] |
| 35 snpeff_version = getSnpeffVersion() | |
| 36 | |
| 21 with open(databases_path, 'r') as fh: | 37 with open(databases_path, 'r') as fh: |
| 22 for line in fh: | 38 for line in fh: |
| 23 fields = line.split('\t') | 39 fields = line.split('\t') |
| 24 if len(fields) >= 2: | 40 if len(fields) >= 2: |
| 25 genome_version = fields[0].strip() | 41 genome_version = fields[0].strip() |
| 27 continue | 43 continue |
| 28 # snpeff test genome | 44 # snpeff test genome |
| 29 if genome_version == '30c2c903' or fields[1].strip() == 'TestCase' or fields[1].strip().startswith('Test_'): | 45 if genome_version == '30c2c903' or fields[1].strip() == 'TestCase' or fields[1].strip().startswith('Test_'): |
| 30 continue | 46 continue |
| 31 description = fields[1].strip() + ' : ' + genome_version | 47 description = fields[1].strip() + ' : ' + genome_version |
| 32 data_table_entries.append(dict(value=genome_version, name=description)) | 48 data_table_entries.append(dict(key=snpeff_version + '_' + genome_version, version=snpeff_version, value=genome_version, name=description)) |
| 33 data_manager_dict['data_tables']['snpeffv_databases'] = data_table_entries | 49 data_manager_dict['data_tables']['snpeffv_databases'] = data_table_entries |
| 34 return data_manager_dict | 50 return data_manager_dict |
| 35 | 51 |
| 36 | 52 |
| 37 def main(): | 53 def main(): |
