public static Pattern controlsStateChangeThroughControllerSmallMolecule ( Blacklist blacklist ) { Pattern p = new Pattern ( SequenceEntityReference . class , "upper controller ER" ) ; p . add ( linkedER ( true ) , "upper controller ER" , "upper controller generic ER" ) ; p . add ( erToPE ( ) , "upper controller generic ER" , "upper controller simple PE" ) ; p . add ( linkToComplex ( ) , "upper controller simple PE" , "upper controller PE" ) ; p . add ( peToControl ( ) , "upper controller PE" , "upper Control" ) ; p . add ( controlToConv ( ) , "upper Control" , "upper Conversion" ) ; p . add ( new NOT ( participantER ( ) ) , "upper Conversion" , "upper controller ER" ) ; p . add ( new Participant ( RelType . OUTPUT , blacklist ) , "upper Conversion" , "controller PE" ) ; p . add ( type ( SmallMolecule . class ) , "controller PE" ) ; if ( blacklist != null ) p . add ( new NonUbique ( blacklist ) , "controller PE" ) ; // the linker small mol is at also an input p . add ( new NOT ( new ConstraintChain ( new ConversionSide ( ConversionSide . Type . OTHER_SIDE ) , linkToSpecific ( ) ) ) , "controller PE" , "upper Conversion" , "controller PE" ) ; p . add ( peToControl ( ) , "controller PE" , "Control" ) ; p . add ( controlToConv ( ) , "Control" , "Conversion" ) ; p . add ( equal ( false ) , "upper Conversion" , "Conversion" ) ; // p.add(nextInteraction(), "upper Conversion", "Conversion"); stateChange ( p , "Control" ) ; p . add ( type ( SequenceEntityReference . class ) , "changed ER" ) ; p . add ( equal ( false ) , "upper controller ER" , "changed ER" ) ; p . add ( new NOT ( participantER ( ) ) , "Conversion" , "upper controller ER" ) ; return p ; }
Pattern for an entity is producing a small molecule and the small molecule controls state change of another molecule .