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():