changeset 393:52658ddcaa5d draft

Uploaded
author francesco_lapi
date Fri, 05 Sep 2025 13:02:22 +0000
parents f73d57641124
children a0b53ccc73a8
files COBRAxy/custom_data_generator.py COBRAxy/custom_data_generator.xml COBRAxy/marea_macros.xml
diffstat 3 files changed, 28 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/COBRAxy/custom_data_generator.py	Fri Sep 05 10:53:36 2025 +0000
+++ b/COBRAxy/custom_data_generator.py	Fri Sep 05 13:02:22 2025 +0000
@@ -31,9 +31,10 @@
                         help="Model name (default or custom)")
     
     parser.add_argument("--medium_selector", type=str, required=True,
-                        help="Medium selection option (default/custom)")
-    parser.add_argument("--medium", type=str,
-                        help="Custom medium file if medium_selector=Custom")
+                        help="Medium selection option")
+
+    parser.add_argument("--gene_format", type=str, default="Default",
+                        help="Gene nomenclature format: Default (original), ENSNG, HGNC_SYMBOL, HGNC_ID, ENTREZ")
     
     parser.add_argument("--out_tabular", type=str,
                         help="Output file for the merged dataset (CSV or XLSX)")
@@ -226,7 +227,27 @@
             raise utils.DataErr(ARGS.model, f"failed loading built-in model: {e}")
 
     # Determine final model name: explicit --name overrides, otherwise use the model id
+    
     model_name = ARGS.name if ARGS.name else ARGS.model
+    
+    
+    if ARGS.name == "ENGRO2" and ARGS.medium_selector != "Default":
+        df_mediums = pd.read_csv(ARGS.tool_dir + "/local/medium/medium.csv", index_col = 0)
+        ARGS.medium_selector = ARGS.medium_selector.replace("_", " ")
+        medium = df_mediums[[ARGS.medium_selector]]
+        medium = medium[ARGS.medium_selector].to_dict()
+
+        # Set all reactions to zero in the medium
+        for rxn_id, _ in model.medium.items():
+            model.reactions.get_by_id(rxn_id).lower_bound = float(0.0)
+        
+        # Set medium conditions
+        for reaction, value in medium.items():
+            if value is not None:
+                model.reactions.get_by_id(reaction).lower_bound = -float(value)
+
+    if ARGS.name == "ENGRO2" and ARGS.gene_format != "Default":
+        utils.convert_genes(model, ARGS.gene_format)
 
     # generate data
     rules = generate_rules(model, asParsed = False)
--- a/COBRAxy/custom_data_generator.xml	Fri Sep 05 10:53:36 2025 +0000
+++ b/COBRAxy/custom_data_generator.xml	Fri Sep 05 13:02:22 2025 +0000
@@ -23,9 +23,6 @@
             --model $cond_model.model_selector
             --name $cond_model.model_selector
         #end if
-        #if $cond_model.medium_selector == 'Custom'
-            --medium $cond_model.medium
-        #end if
 
         --gene_format $gene_format
         
@@ -42,9 +39,6 @@
                 <param name="name" argument="--name" type="text" value="ENGRO2" hidden="true" />
                 <conditional name="medium_selector">
                     <expand macro="options_ras_to_bounds_medium"/>
-                    <when value="Custom">
-                        <param name="medium" argument="--medium" type="data" format="tabular,csv,tsv" label="Custom medium file:" />
-                    </when>
                 </conditional>
             </when>
 
@@ -54,14 +48,10 @@
                 <conditional name="medium_selector">
                     <param name="medium_selector" argument="--medium_selector" type="select" label="Medium">
                         <option value="Default" selected="true">Default (Recon built-in medium)</option>
-                        <option value="Custom">Custom medium file</option>
                     </param>
                     <when value="Default">
                         <!-- Nessun parametro aggiuntivo necessario -->
                     </when>
-                    <when value="Custom">
-                        <param name="medium" argument="--medium" type="data" format="tabular,csv,tsv" label="Custom medium file:" />
-                    </when>
                 </conditional>
             </when>
 
@@ -72,24 +62,20 @@
                 <conditional name="medium_selector">
                     <param name="medium_selector" argument="--medium_selector" type="select" label="Medium">
                         <option value="Default" selected="true">Don't use a separate medium file (use model defaults)</option>
-                        <option value="Custom">Custom medium file (required)</option>
                     </param>
                     <when value="Default">
                         <!-- Nessun parametro aggiuntivo necessario -->
                     </when>
-                    <when value="Custom">
-                        <param name="medium" argument="--medium" type="data" format="tabular,csv,tsv" label="Custom medium file:" />
-                    </when>
                 </conditional>
             </when>
         </conditional>
 
         <param name="gene_format" argument="--gene_format" type="select" label="Gene nomenclature format:">
             <option value="Default" selected="true">Keep original gene nomenclature</option>
-            <option value="ENSNG">ENSNG (Ensembl Gene ID)</option>
-            <option value="HGNC_SYMBOL">HGNC Symbol</option>
-            <option value="HGNC_ID">HGNC ID</option>
-            <option value="ENTREZ">Entrez Gene ID</option>
+            <option value="ENSG">ENSNG (Ensembl Gene ID)</option>
+            <option value="HGNC symbol">HGNC Symbol</option>
+            <option value="HGNC ID">HGNC ID</option>
+            <option value="entrez_id">Entrez Gene ID</option>
         </param>
     </inputs>
 
--- a/COBRAxy/marea_macros.xml	Fri Sep 05 10:53:36 2025 +0000
+++ b/COBRAxy/marea_macros.xml	Fri Sep 05 13:02:22 2025 +0000
@@ -28,7 +28,6 @@
         <param name="medium_selector" argument="--medium_selector" type="select" label="Medium:">
             <option value="Default" selected="true">Default (ENGRO2 built-in medium)</option>
             <option value="allOpen">Open</option>
-            <option value="Custom">Custom medium</option>
             <option value="RPMI_1640">RPMI 1640</option>
             <option value="DMEM">DMEM</option>
             <option value="EMEM">EMEM</option>