Commit c841403a authored by Tung, Chi-Huan's avatar Tung, Chi-Huan
Browse files

fixed input format for curvefit.py

parent e4197a0d
Loading
Loading
Loading
Loading
Loading
+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>
+12 −4
Original line number Diff line number Diff line
@@ -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])

@@ -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