I think the uuid option is the best. I tried to make relationships for the whole experiment to use uuid, but extra nodes are created and there is no relationship between the variety node (in this model I used only one variety) and parameters (Protein content, N2, P2, P2O5).
CREATE (var1: Variety {var: 'S1C'}),
(var2: Variety {var: 'S2D'}), (var3: Variety {var: 'S3H'}),;
// Experiments
CREATE (npp: Experiment {exp: 'N2_P2_Prot'});
// Biostimulatory
CREATE (control: Compound {comp: 'Control'}), (bvt: Compound { comp: 'Bvt'}), (reg: Compound { Compound: 'Reg'});
// Parameters
CREATE(prot: Parameter{param: 'Protein'}),
(n2: Parameter{param: 'N2'}),
(p2: Parameter{param: 'P2'}),
(p2o5: Parameter{param: 'P2O5'}),
//Exp Prot_N_P -> Cont. Prot, N2, P2, P2O5
MATCH ( exp ) WHERE id ( exp ) = 19 //exp
SET exp . uuid = randomUUID ( )
WITH exp , exp . uuid as uuid
MATCH ( var ) WHERE id ( var ) = 3 //var
MERGE ( exp ) - [ rel : PROCESSED ] -> ( var )
SET rel . uuid = uuid
WITH exp , var , uuid
MATCH ( ctrl ) WHERE id ( ctrl ) = 21
MERGE ( var ) - [ rel : NOT_TREATED ] -> ( ctrl ) //var->control
SET rel . uuid = uuid
WITH exp , var , ctrl , uuid
MATCH ( bvt ) WHERE id ( bvt ) = 24 //var->bvt
MERGE ( var ) - [ rel : TREATED_WITH ] -> ( bvt )
SET rel . uuid = uuid
WITH exp , var , bvt , uuid
MATCH ( reg ) WHERE id ( reg ) = 25 //var->reg
MERGE ( var ) - [ rel : TREATED_WITH ] -> ( reg )
SET rel . uuid = uuid
WITH exp , var , reg , uuid
//Compounds->params
MATCH ( prot ) WHERE id ( prot ) = 39 //Control->prot
MERGE ( ctrl ) - [ rel : CONTAINS { %
: 33.563 }] -> ( prot )
SET rel . uuid = uuid
WITH exp , var , ctrl , prot , uuid
MATCH ( prot ) WHERE id ( prot ) = 39 //Control->param
MERGE ( bvt ) - [ rel : CONTAINS { %
: 37.667 }] -> ( prot ) //bvt->param
SET rel . uuid = uuid
WITH exp , var , bvt , prot , uuid
MATCH ( prot ) WHERE id ( prot ) = 39 //Control->param
MERGE ( reg ) - [ rel : CONTAINS { %
: 38.793 }] -> ( prot )
SET rel . uuid = uuid
WITH exp , var , reg , prot , uuid
//Compounds->n2
MATCH ( n2 ) WHERE id ( n2 ) = 42 //Control->param
MERGE ( ctrl ) - [ rel : CONTAINS { %
: 5.37 }] -> ( n2 )
SET rel . uuid = uuid
WITH exp , var , ctrl , n2 , uuid
MATCH ( n2 ) WHERE id ( n2 ) = 42 //bvt->param
MERGE ( bvt ) - [ rel : CONTAINS { %
: 6.0207 }] -> ( n2 ) //bvt->param
SET rel . uuid = uuid
WITH exp , var , bvt , n2 , uuid
MATCH ( n2 ) WHERE id ( n2 ) = 42 //bvt->param
MERGE ( reg ) - [ rel : CONTAINS { %
: 2.2027 }] -> ( n2 )
SET rel . uuid = uuid
WITH exp , var , reg , n2 , uuid
//Compounds->p2
MATCH ( p2 ) WHERE id ( p2 ) = 43 //Control->param
MERGE ( ctrl ) - [ rel : CONTAINS { mg : 342.98 }] -> ( p2 )
SET rel . uuid = uuid
WITH exp , var , ctrl , p2 , uuid
MATCH ( p2 ) WHERE id ( p2 ) = 43 //Control->param
MERGE ( bvt ) - [ rel : CONTAINS { mg : 536.79 }] -> ( p2 ) //bvt->param
SET rel . uuid = uuid
WITH exp , var , bvt , p2 , uuid
MATCH ( p2 ) WHERE id ( p2 ) = 43 //Control->param
MERGE ( reg ) - [ rel : CONTAINS { mg : 361.78 }] -> ( p2 )
SET rel . uuid = uuid
WITH exp , var , reg , p2 , uuid
//Compounds->p2o5
MATCH ( p2o5 ) WHERE id ( p2o5 ) = 44 //Control->param
MERGE ( ctrl ) - [ rel : CONTAINS { mg : 7854.2 }] -> ( p2o5 )
SET rel . uuid = uuid
WITH exp , var , ctrl , p2o5 , uuid
MATCH ( p2o5 ) WHERE id ( p2o5 ) = 44 //Control->param
MERGE ( bvt ) - [ rel : CONTAINS { mg : 12293 }] -> ( p2o5 ) //bvt->param
SET rel . uuid = uuid
WITH exp , var , bvt , p2o5 , uuid
MATCH ( p2o5 ) WHERE id ( p2o5 ) = 44 //reg->param
MERGE ( reg ) - [ rel : CONTAINS { mg : 8284.8 }] -> ( p2o5 ) //reg->param
SET rel.uuid = uuid