Loading galaxy/tools/neutrons/mlsans_fit_Yukawa_sq.xml +9 −9 Original line number Diff line number Diff line <tool id="mlsans_fit_Yukawa_sq" name="fit_IQ" profile="22.04" version="0.1.1"> <description></description> <requirements> <container type="docker">code.ornl.gov:4567/ndip/tool-sources/ml-assisted-sans-data-analysis/fit_yukawa_sq:84114dfe</container> <container type="docker">code.ornl.gov:4567/ndip/tool-sources/ml-assisted-sans-data-analysis/fit_yukawa_sq:e4197a0d</container> </requirements> <command detect_errors="exit_code"><![CDATA[ python3 /src/curvefit.py -i $input $C $I_inc $sigma $d_sigma $phi $kappa $A || echo python finished ]]></command> <inputs> <param name="input" type="data" value="/src/example_IQ.csv" optional="false" label="ASCII data"/> <param name="C" type="text" value="5000, 1000, 8000" label="C" optional="false" help="Contrast"/> <param name="I_inc" type="text" value="0.2, 0.1, 0.5" label="I_inc" optional="false" help="Incoherent background"/> <param name="sigma" type="text" value="1, 0.9, 1.1" label="σ" optional="false" help="Particle diameter"/> <param name="d_sigma" type="text" value="0.05, 0.01, 0.1" label="d_σ" optional="false" help="Particle size polydispersity"/> <param name="phi" type="text" value="0.2, 0.1, 0.5" label="Φ" optional="false" help="Volume fraction"/> <param name="kappa" type="text" value="0.1, 0.01, 0.5" label="1/κD" optional="false" help="Screening constant"/> <param name="A" type="text" value="10, 1, 20" label="βA" optional="false" help="Repulsion strength"/> <param name="input" type="text" value="/src/example_IQ.csv" optional="false" label="ASCII data"/> <param name="C" type="text" value="5000 1000 8000" label="C" optional="false" help="Contrast"/> <param name="I_inc" type="text" value="0.2 0.1 0.5" label="I_inc" optional="false" help="Incoherent background"/> <param name="sigma" type="text" value="1 0.9 1.1" label="σ" optional="false" help="Particle diameter"/> <param name="d_sigma" type="text" value="0.05 0.01 0.1" label="d_σ" optional="false" help="Particle size polydispersity"/> <param name="phi" type="text" value="0.2 0.1 0.5" label="Φ" optional="false" help="Volume fraction"/> <param name="kappa" type="text" value="0.1 0.01 0.5" label="1/κD" optional="false" help="Screening constant"/> <param name="A" type="text" value="10 1 20" label="βA" optional="false" help="Repulsion strength"/> </inputs> <outputs> Loading src/curvefit.py +12 −4 Original line number Diff line number Diff line Loading @@ -82,11 +82,18 @@ def fit(initial_guess, file_name): fmtstr = np.fromstring(string, dtype=float, sep=',') return fmtstr params_names = ['C', 'I_inc', 'sigma', 'd_sigma', 'phi', 'kappa', 'A'] # params_names = ['C', 'I_inc', 'sigma', 'd_sigma', 'phi', 'kappa', 'A'] # params = Parameters() # for i_names, p_names in enumerate(params_names): # param_i = fmt_string(initial_guess[i_names]) # print(param_i) # params.add(params_names[i_names], value=param_i[0], min=param_i[1], max=param_i[2]) params_names = ['C', 'I_inc', 'sigma', 'd_sigma', 'phi', 'kappa', 'A'] params = Parameters() for i_names, p_names in enumerate(params_names): param_i = fmt_string(initial_guess[i_names]) param_i = [float(initial_guess[i_names*3+j]) for j in range(3)] print(param_i) params.add(params_names[i_names], value=param_i[0], min=param_i[1], max=param_i[2]) Loading @@ -113,13 +120,14 @@ if __name__ == '__main__': print(sys.argv) print(len(sys.argv)) if len(sys.argv)== 10: if len(sys.argv) == 24: filename = sys.argv[2] initial_guess = sys.argv[3:10] initial_guess = sys.argv[3:24] # file_name = '/src/example_IQ.csv' # testing fit(initial_guess, filename) else: print("Usage: python3 /src/curvefit.py [-i] filename C I_inc sigma d_sigma phi kappa A") # python3 src/curvefit.py -i /src/example_IQ.csv 4100,4000,5000 0.5,0.1,2 0.975,0.9,1.1 0.07,0.05,0.1 0.08,0.05,0.5 0.15,0.1,0.18 10,0.5,20 # python3 /src/curvefit.py -i '/src/example_IQ.csv' '5000' '1000' '8000' '0.2' '0.1' '0.5' '1' '0.9' '1.1' '0.05' '0.01' '0.1' '0.2' '0.1' '0.5' '0.1' '0.01' '0.5' '10' '1' '20' sys.exit(1) No newline at end of file Loading
galaxy/tools/neutrons/mlsans_fit_Yukawa_sq.xml +9 −9 Original line number Diff line number Diff line <tool id="mlsans_fit_Yukawa_sq" name="fit_IQ" profile="22.04" version="0.1.1"> <description></description> <requirements> <container type="docker">code.ornl.gov:4567/ndip/tool-sources/ml-assisted-sans-data-analysis/fit_yukawa_sq:84114dfe</container> <container type="docker">code.ornl.gov:4567/ndip/tool-sources/ml-assisted-sans-data-analysis/fit_yukawa_sq:e4197a0d</container> </requirements> <command detect_errors="exit_code"><![CDATA[ python3 /src/curvefit.py -i $input $C $I_inc $sigma $d_sigma $phi $kappa $A || echo python finished ]]></command> <inputs> <param name="input" type="data" value="/src/example_IQ.csv" optional="false" label="ASCII data"/> <param name="C" type="text" value="5000, 1000, 8000" label="C" optional="false" help="Contrast"/> <param name="I_inc" type="text" value="0.2, 0.1, 0.5" label="I_inc" optional="false" help="Incoherent background"/> <param name="sigma" type="text" value="1, 0.9, 1.1" label="σ" optional="false" help="Particle diameter"/> <param name="d_sigma" type="text" value="0.05, 0.01, 0.1" label="d_σ" optional="false" help="Particle size polydispersity"/> <param name="phi" type="text" value="0.2, 0.1, 0.5" label="Φ" optional="false" help="Volume fraction"/> <param name="kappa" type="text" value="0.1, 0.01, 0.5" label="1/κD" optional="false" help="Screening constant"/> <param name="A" type="text" value="10, 1, 20" label="βA" optional="false" help="Repulsion strength"/> <param name="input" type="text" value="/src/example_IQ.csv" optional="false" label="ASCII data"/> <param name="C" type="text" value="5000 1000 8000" label="C" optional="false" help="Contrast"/> <param name="I_inc" type="text" value="0.2 0.1 0.5" label="I_inc" optional="false" help="Incoherent background"/> <param name="sigma" type="text" value="1 0.9 1.1" label="σ" optional="false" help="Particle diameter"/> <param name="d_sigma" type="text" value="0.05 0.01 0.1" label="d_σ" optional="false" help="Particle size polydispersity"/> <param name="phi" type="text" value="0.2 0.1 0.5" label="Φ" optional="false" help="Volume fraction"/> <param name="kappa" type="text" value="0.1 0.01 0.5" label="1/κD" optional="false" help="Screening constant"/> <param name="A" type="text" value="10 1 20" label="βA" optional="false" help="Repulsion strength"/> </inputs> <outputs> Loading
src/curvefit.py +12 −4 Original line number Diff line number Diff line Loading @@ -82,11 +82,18 @@ def fit(initial_guess, file_name): fmtstr = np.fromstring(string, dtype=float, sep=',') return fmtstr params_names = ['C', 'I_inc', 'sigma', 'd_sigma', 'phi', 'kappa', 'A'] # params_names = ['C', 'I_inc', 'sigma', 'd_sigma', 'phi', 'kappa', 'A'] # params = Parameters() # for i_names, p_names in enumerate(params_names): # param_i = fmt_string(initial_guess[i_names]) # print(param_i) # params.add(params_names[i_names], value=param_i[0], min=param_i[1], max=param_i[2]) params_names = ['C', 'I_inc', 'sigma', 'd_sigma', 'phi', 'kappa', 'A'] params = Parameters() for i_names, p_names in enumerate(params_names): param_i = fmt_string(initial_guess[i_names]) param_i = [float(initial_guess[i_names*3+j]) for j in range(3)] print(param_i) params.add(params_names[i_names], value=param_i[0], min=param_i[1], max=param_i[2]) Loading @@ -113,13 +120,14 @@ if __name__ == '__main__': print(sys.argv) print(len(sys.argv)) if len(sys.argv)== 10: if len(sys.argv) == 24: filename = sys.argv[2] initial_guess = sys.argv[3:10] initial_guess = sys.argv[3:24] # file_name = '/src/example_IQ.csv' # testing fit(initial_guess, filename) else: print("Usage: python3 /src/curvefit.py [-i] filename C I_inc sigma d_sigma phi kappa A") # python3 src/curvefit.py -i /src/example_IQ.csv 4100,4000,5000 0.5,0.1,2 0.975,0.9,1.1 0.07,0.05,0.1 0.08,0.05,0.5 0.15,0.1,0.18 10,0.5,20 # python3 /src/curvefit.py -i '/src/example_IQ.csv' '5000' '1000' '8000' '0.2' '0.1' '0.5' '1' '0.9' '1.1' '0.05' '0.01' '0.1' '0.2' '0.1' '0.5' '0.1' '0.01' '0.5' '10' '1' '20' sys.exit(1) No newline at end of file