diff 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
line wrap: on
line diff
--- a/data_manager/data_manager_snpEff_databases.py	Tue Mar 10 10:12:26 2026 +0000
+++ b/data_manager/data_manager_snpEff_databases.py	Fri Mar 13 13:07:48 2026 +0000
@@ -2,10 +2,24 @@
 import json
 import optparse
 import os
+import re
 import subprocess
 import sys
 
 
+def getSnpeffVersion():
+    snpeff_version = 'SnpEff ?.?'
+    args = ['snpEff', '-version']
+    try:
+        version_output = subprocess.check_output(args, shell=False).decode()
+    except subprocess.CalledProcessError as e:
+        sys.exit(e.returncode)
+    m = re.match(r'^(SnpEff)\s*(\d+\.\d+).*$', version_output)
+    if m:
+        snpeff_version = m.groups()[0] + m.groups()[1]
+    return snpeff_version
+
+
 def fetch_databases(data_manager_dict, target_directory):
     if not os.path.exists(target_directory):
         os.makedirs(target_directory)
@@ -18,6 +32,8 @@
     data_manager_dict['data_tables'] = data_manager_dict.get('data_tables', {})
     data_manager_dict['data_tables']['snpeffv_databases'] = data_manager_dict['data_tables'].get('snpeffv_databases', [])
     data_table_entries = []
+    snpeff_version = getSnpeffVersion()
+
     with open(databases_path, 'r') as fh:
         for line in fh:
             fields = line.split('\t')
@@ -29,7 +45,7 @@
                 if genome_version == '30c2c903' or fields[1].strip() == 'TestCase' or fields[1].strip().startswith('Test_'):
                     continue
                 description = fields[1].strip() + ' : ' + genome_version
-                data_table_entries.append(dict(value=genome_version, name=description))
+                data_table_entries.append(dict(key=snpeff_version + '_' + genome_version, version=snpeff_version, value=genome_version, name=description))
     data_manager_dict['data_tables']['snpeffv_databases'] = data_table_entries
     return data_manager_dict