

processURI = "http://${hostname}/api/v2/processes/${processLIMSID}"
process = GLSRestApiUtils.httpGET(processURI, username, password)def outputNodes = GLSRestApiUtils.batchGET(outputAnalyteURIs, username, password)outputNodes.each {
GLSRestApiUtils.setUdfValue(it, 'Library Size', '25')
}GLSRestApiUtils.batchPUT(outputNodes, username, password)http://your-server-ip/api/v2/artifacts?artifactgroup=my_queue<art:artifacts xmlns:art="http://genologics.com/ri/artifact">
<artifact limsid="ADM1A1PA1" uri="http://your-server-ip/api/v2/artifacts/ADM1A1PA1"/>
<artifact limsid="ADM1A2PA1" uri="http://your-server-ip/api/v2/artifacts/ADM1A2PA1"/>
<artifact limsid="ADM1A3PA1" uri="http://your-server-ip/api/v2/artifacts/ADM1A3PA1"/>
</art:artifacts><ri:links xmlns:ri="http://genologics.com/ri">
<link uri="http://your-server-ip/api/v2/artifacts/ADM1A1PA1" rel="artifacts"/>
<link uri="http://your-server-ip/api/v2/artifacts/ADM1A2PA1" rel="artifacts"/>
<link uri="http://your-server-ip/api/v2/artifacts/ADM1A3PA1" rel="artifacts"/>
</ri:links>http://your-server-ip/api/v2/artifacts/batch/retrieve<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<art:details xmlns:udf="http://genologics.com/ri/userdefined"
xmlns:file="http://genologics.com/ri/file" xmlns:art="http://genologics.com/ri/artifact">
<art:artifact uri="http://your-server-ip/api/v2/artifacts/ADM1A1PA1?state=21" limsid="ADM1A1PA1">
<name>base-1</name>
<type>Analyte</type>
<output-type>Analyte</output-type>
<qc-flag>UNKNOWN</qc-flag>
<location>
<container uri="http://your-server-ip/api/v2/containers/27-10" limsid="27-10"/>
<value>1:1</value>
</location>
<working-flag>true</working-flag>
<sample uri="http://your-server-ip/api/v2/samples/ADM1A1" limsid="ADM1A1"/>
<artifact-group name="my_queue" uri="http://your-server-ip/api/v2/artifactgroups/1"/>
</art:artifact>
<art:artifact uri="http://your-server-ip/api/v2/artifacts/ADM1A2PA1?state=42" limsid="ADM1A2PA1">
<name>base-2</name>
<type>Analyte</type>
<output-type>Analyte</output-type>
<qc-flag>UNKNOWN</qc-flag>
<location>
<container uri="http://your-server-ip/api/v2/containers/27-11" limsid="27-11"/>
<value>1:1</value>
</location>
<working-flag>true</working-flag>
<sample uri="http://your-server-ip/api/v2/samples/ADM1A2" limsid="ADM1A2"/>
<artifact-group name="my_queue" uri="http://your-server-ip/api/v2/artifactgroups/1"/>
</art:artifact>
<art:artifact uri="http://your-server-ip/api/v2/artifacts/ADM1A3PA1?state=12" limsid="ADM1A3PA1">
<name>base-3</name>
<type>Analyte</type>
<output-type>Analyte</output-type>
<qc-flag>UNKNOWN</qc-flag>
<location>
<container uri="http://your-server-ip/api/v2/containers/27-12" limsid="27-12"/>
<value>1:1</value>
</location>
<working-flag>true</working-flag>
<sample uri="http://your-server-ip/api/v2/samples/ADM1A3" limsid="ADM1A3"/>
<artifact-group name="my_queue" uri="http://your-server-ip/api/v2/artifactgroups/1"/>
</art:artifact>
</art:details><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<art:details xmlns:udf="http://genologics.com/ri/userdefined" xmlns:file="http://genologics.com/ri/file" xmlns:art="http://genologics.com/ri/artifact">
<art:artifact uri="http://your-server-ip/api/v2/artifacts/ADM1A1PA1?state=21" limsid="ADM1A1PA1">
<name>base-1</name>
<type>Analyte</type>
<output-type>Analyte</output-type>
<qc-flag>UNKNOWN</qc-flag>
<location>
<container uri="http://your-server-ip/api/v2/containers/27-10" limsid="27-10"/>
<value>1:1</value>
</location>
<working-flag>true</working-flag>
<sample uri="http://your-server-ip/api/v2/samples/ADM1A1" limsid="ADM1A1"/>
<artifact-group name="new_queue" uri="http://your-server-ip/api/v2/artifactgroups/2"/>
</art:artifact>
<art:artifact uri="http://your-server-ip/api/v2/artifacts/ADM1A2PA1?state=42" limsid="ADM1A2PA1">
<name>base-2</name>
<type>Analyte</type>
<output-type>Analyte</output-type>
<qc-flag>UNKNOWN</qc-flag>
<location>
<container uri="http://your-server-ip/api/v2/containers/27-11" limsid="27-11"/>
<value>1:1</value>
</location>
<working-flag>true</working-flag>
<sample uri="http://your-server-ip/api/v2/samples/ADM1A2" limsid="ADM1A2"/>
<artifact-group name="new_queue" uri="http://your-server-ip/api/v2/artifactgroups/2"/>
</art:artifact>
<art:artifact uri="http://your-server-ip/api/v2/artifacts/ADM1A3PA1?state=12" limsid="ADM1A3PA1">
<name>base-3</name>
<type>Analyte</type>
<output-type>Analyte</output-type>
<qc-flag>UNKNOWN</qc-flag>
<location>
<container uri="http://your-server-ip/api/v2/containers/27-12" limsid="27-12"/>
<value>1:1</value>
</location>
<working-flag>true</working-flag>
<sample uri="http://your-server-ip/api/v2/samples/ADM1A3" limsid="ADM1A3"/>
<artifact-group name="new_queue" uri="http://your-server-ip/api/v2/artifactgroups/2"/>
</art:artifact>
</art:details>http://your-server-ip/api/v2/artifacts/batch/updateprocessURI = "http://${hostname}/api/v2/processes/${processLIMSID}"
processNode = GLSRestApiUtils.httpGET(processURI, username, password)def inputUris = processNode.'input-output-map'.collect { it.'input'[0].@uri }.unique()def inputNodes = GLSRestApiUtils.batchGET(inputUris, username, password)Â def containerUris = inputNodes.collect { it.'location'.'container'[0].@uri }.unique()
def containerNodes = GLSRestApiUtils.batchGET(containerUris, username, password)AutomatedTestContainer-549374968
http://yourIpAddress/api/v2/containers/27-1478Â stepXML = api.GET( stepURI + "/details" )LUIDs = set()
for inputArtifact in parseString( stepXML ).getElementsByTagName( "input" ):
artifactLUID = inputArtifact.getAttribute( "limsid" )
LUIDs.add( artifactLUID )batchXML = api.getArtifacts( LUIDs )Â replications = 3 # how many times each batch will be measured
repetitions = 1 # how many measurements will be taken for each batch size
R = range( 100, 300 ) # range of the batch sizes to be measured (where min >= 1)
q = 25 # batch size incremental increasepython BatchOptimalSizeTest.py -p apipassword -u apiuser -s https://demo.basespacelims.com/api/v2 -t artifactAnalyzing results for: artifact
Batch sizes:
[25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575, 600, 625, 650, 675, 700, 725, 750, 775, 800, 825, 850, 875, 900, 925, 950, 975]
Time (s) per entity:
[0.061350816726684576, 0.04790449237823486, 0.040710381189982096, 0.03354618215560913, 0.033738230133056636, 0.03324082946777344, 0.03209760447910854, 0.03409448790550232, 0.03184072346157498, 0.031050360870361327, 0.029453758586536753, 0.03295832395553589, 0.03149744004469652, 0.03347888347080776, 0.033550281016031906, 0.030628018498420718, 0.03328620989182416, 0.03454347112443712, 0.035195479945132606, 0.0361147011756897, 0.03584921982174828, 0.0383262753053145, 0.037979933946029, 0.03772751696904501, 0.03774445213317871, 0.03933756652245155, 0.04524845660174335, 0.03916741977419172, 0.04273618560001768, 0.043037356503804525, 0.04183078679730815, 0.044450711250305176, 0.0478362009453051, 0.04694189671909108, 0.044135747201102124, 0.04349724955028958, 0.04686621408204775, 0.046690188458091336, 0.05018808247492863]
Duration (s) of batch call:
[1.5337704181671143, 2.395224618911743, 3.053278589248657, 3.354618215560913, 4.21727876663208, 4.986124420166016, 5.617080783843994, 6.8188975811004635, 7.1641627788543705, 7.762590217590332, 8.099783611297607, 9.887497186660767, 10.236668014526368, 11.717609214782716, 12.581355381011964, 12.251207399368287, 14.146639204025268, 15.544562005996704, 16.717852973937987, 18.057350587844848, 18.820840406417847, 21.079451417922975, 21.838462018966673, 22.636510181427003, 23.590282583236693, 25.569418239593507, 30.54270820617676, 27.417193841934203, 30.983734560012817, 32.278017377853395, 32.418859767913816, 35.56056900024414, 39.46486577987671, 39.90061221122742, 38.61877880096436, 39.14752459526062, 43.351248025894165, 44.35567903518677, 48.93338041305542]
275 artifacts was the most efficient batch size275 artifacts was the most efficient batch size/etc/httpd/conf/httpd.conf 