@@ -84,9 +84,38 @@ def add_dm_parser(subparsers) -> argparse.ArgumentParser:
8484 )
8585
8686 parser .add_argument (
87- '--use-adjacency-matrix' ,
88- action = 'store_true' ,
89- help = 'Use adjacency matrix if available'
87+ '--seed' ,
88+ type = int ,
89+ default = 0 ,
90+ help = 'Random seed for reproducibility (default: 0)'
91+ )
92+
93+ parser .add_argument (
94+ '--kernel-key' ,
95+ type = str ,
96+ default = 'DM_Kernel' ,
97+ help = 'Key to store kernel in adata.obsp (default: DM_Kernel)'
98+ )
99+
100+ parser .add_argument (
101+ '--sim-key' ,
102+ type = str ,
103+ default = 'DM_Similarity' ,
104+ help = 'Key to store similarity in adata.obsp (default: DM_Similarity)'
105+ )
106+
107+ parser .add_argument (
108+ '--eigval-key' ,
109+ type = str ,
110+ default = 'DM_EigenValues' ,
111+ help = 'Key to store eigenvalues in adata.uns (default: DM_EigenValues)'
112+ )
113+
114+ parser .add_argument (
115+ '--eigvec-key' ,
116+ type = str ,
117+ default = 'DM_EigenVectors' ,
118+ help = 'Key to store eigenvectors in adata.obsm (default: DM_EigenVectors)'
90119 )
91120
92121 parser .set_defaults (func = run_dm )
@@ -127,16 +156,22 @@ def run_dm(args):
127156 # Convert args to dict, removing None values and CLI-specific args
128157 args_dict = {
129158 k : v for k , v in vars (args ).items ()
130- if v is not None and k not in ['input' , 'output' , 'config' , 'func' , 'verbose' ]
159+ if v is not None and k not in ['input' , 'output' , 'config' , 'func' , 'verbose' , 'command' ]
131160 }
132161
133- # Rename CLI args to match function parameters
162+ # Rename CLI args to match function parameters (convert hyphens to underscores)
134163 if 'pca_key' in args_dict :
135164 args_dict ['pca_key' ] = args_dict .pop ('pca_key' )
136165 if 'n_components' in args_dict :
137166 args_dict ['n_components' ] = args_dict .pop ('n_components' )
138- if 'use_adjacency_matrix' in args_dict :
139- args_dict ['use_adjacency_matrix' ] = args_dict .pop ('use_adjacency_matrix' )
167+ if 'kernel_key' in args_dict :
168+ args_dict ['kernel_key' ] = args_dict .pop ('kernel_key' )
169+ if 'sim_key' in args_dict :
170+ args_dict ['sim_key' ] = args_dict .pop ('sim_key' )
171+ if 'eigval_key' in args_dict :
172+ args_dict ['eigval_key' ] = args_dict .pop ('eigval_key' )
173+ if 'eigvec_key' in args_dict :
174+ args_dict ['eigvec_key' ] = args_dict .pop ('eigvec_key' )
140175
141176 # Merge with config (CLI args take precedence)
142177 params = merge_args_with_config (args_dict , config )
0 commit comments