Commit 2d89f1a1 authored by Yakubov, Sergey's avatar Yakubov, Sergey
Browse files

add model and constraint function to script

parent 2f7b69a7
Loading
Loading
Loading
Loading
+3916 −0

File added.

Preview size limit exceeded, changes collapsed.

+3916 −0

File added.

Preview size limit exceeded, changes collapsed.

+4 −2
Original line number Diff line number Diff line
def FirstOrderSphericalBessel(symtable, X, sin, cos):
from math import sin,cos

def FirstOrderSphericalBessel(symtable, X):
    """Performs the first order spherical bessel function on the given variable.
    """
    return (sin * X / (X**2)) - (cos * X / X)
    return (sin(X) / (X**2)) - (cos(X) / X)
+15 −0
Original line number Diff line number Diff line

    
      -data-dir /input/
      -select-qs 00,01,02,03,04,05,06,07,08,09,10
      -export-params
      -method leastsq
      -instrument Instrument
      -resolution res.dat
	  -data data0.dat
              -function Linear:intercept,value=1e-08:slope,value=1e-08
              -function DeltaCustom:amp,value=1.0,min=0.0:cen,value=0.0001,max=100.0,min=-100.0
          -run
          -constraint DeltaCustom1_amp FirstOrderSphericalBessel(1)

	    
+16 −8
Original line number Diff line number Diff line
@@ -18,29 +18,36 @@ history_id = galaxy_instance.histories.get_histories()[0]["id"]
# history_id = gi.histories.create_history(name="New history")["id"]

# upload files and wait until upload is finished
# use real filenames here (e.g. from comamnd args)
uploaded_resolution_id = galaxy_instance.tools.upload_file('res.dat', history_id)['outputs'][0]['id']
uploaded_data_id = galaxy_instance.tools.upload_file('data.dat', history_id)['outputs'][0]['id']
uploaded_ini_id = galaxy_instance.tools.upload_file('ini.csv', history_id)['outputs'][0]['id']
uploaded_resolution_id = galaxy_instance.tools.upload_file('CaCl_H2O_MCM_293K.dat', history_id)['outputs'][0]['id']
uploaded_data_id = galaxy_instance.tools.upload_file('CaCl_H2O_MCM_303K.dat', history_id)['outputs'][0]['id']
uploaded_ini_id = galaxy_instance.tools.upload_file('qclimax.ini', history_id)['outputs'][0]['id']
uploaded_model_id = galaxy_instance.tools.upload_file('DeltaCustom.py', history_id)['outputs'][0]['id']
uploaded_constraint_id = galaxy_instance.tools.upload_file('FirstOrderSphericalBessel.py', history_id)['outputs'][0]['id']
dataset_client.wait_for_dataset(uploaded_resolution_id)
dataset_client.wait_for_dataset(uploaded_data_id)
dataset_client.wait_for_dataset(uploaded_ini_id)
dataset_client.wait_for_dataset(uploaded_model_id)
dataset_client.wait_for_dataset(uploaded_constraint_id)

# set tool inputs
tool_inputs = inputs()\
                .set_dataset_param("resolutionFile", uploaded_resolution_id)\
                .set_dataset_param("ini_file", uploaded_ini_id)\
                .set_dataset_param("dataFiles_0|Datafile", [uploaded_data_id])
                .set_dataset_param("dataFiles_0|dataFile", uploaded_data_id)\
                .set_dataset_param("constraintFunctions_0|constraintFunction", uploaded_constraint_id)\
                .set_dataset_param("modelFunctions_0|modelFunction", uploaded_model_id)

# this helps to check if input is constructed correctly, set inputs=None to see expected input
#print (galaxy_instance.tools.build('neutrons_qclimax',inputs=tool_inputs.to_dict(),history_id=history_id)["state_inputs"])

# run a tool,  get result ids
res = galaxy_instance.tools.run_tool(history_id, 'neutrons_qclimax', tool_inputs)
result_collection_id = res['output_collections'][0]['id']
result_dataset_id = res['outputs'][0]['id']

#wait until tool has finised
#wait until tool has finised (actually, wait until output dataset is ready, which indicates the tool is finished)
dataset_client.wait_for_dataset(result_dataset_id)


# if you need a dataset from output collection
#col = dataset_collections_client.show_dataset_collection(result_collection_id)
#dataset_in_collection_0=col['elements'][0]['object']['id']
@@ -58,9 +65,10 @@ print(exported_data.decode("utf-8"))
# galaxy_instance.histories.delete_dataset(history_id, uploaded_resolution_id, purge=True)
# galaxy_instance.histories.delete_dataset(history_id, uploaded_data_id, purge=True)
# galaxy_instance.histories.delete_dataset(history_id, uploaded_ini_id, purge=True)
# galaxy_instance.histories.delete_dataset(history_id, uploaded_model_id, purge=True)
# galaxy_instance.histories.delete_dataset(history_id, uploaded_constraint_id, purge=True)
# galaxy_instance.histories.delete_dataset(history_id, result_dataset_id, purge=True)
# galaxy_instance.histories.delete_dataset(history_id, dataset_in_collection_0, purge=True)

# uncomment to delete history and all data, purge=True might be not allowed by Galaxy admin
# galaxy_instance.histories.delete_history(history_id, purge=True)