code: public static Pattern controlsTransportOfChemical(Blacklist blacklist)
  	{
  		Pattern p = new Pattern(SequenceEntityReference.class, "controller ER");
  		p.add(linkedER(true), "controller ER", "controller generic ER");
  		p.add(erToPE(), "controller generic ER", "controller simple PE");
  		p.add(linkToComplex(), "controller simple PE", "controller PE");
  		p.add(peToControl(), "controller PE", "Control");
  		p.add(controlToConv(), "Control", "Conversion");
  		p.add(new Participant(RelType.INPUT, blacklist, true), "Control", "Conversion", "input PE");
  		p.add(linkToSimple(blacklist), "input PE", "input simple PE");
  		p.add(new Type(SmallMolecule.class), "input simple PE");
  		p.add(notGeneric(), "input simple PE");
  		p.add(peToER(), "input simple PE", "changed generic SMR");
  		p.add(new ConversionSide(ConversionSide.Type.OTHER_SIDE, blacklist, RelType.OUTPUT), "input PE", "Conversion", "output PE");
  		p.add(equal(false), "input PE", "output PE");
  		p.add(linkToSimple(blacklist), "output PE", "output simple PE");
  		p.add(new Type(SmallMolecule.class), "output simple PE");
  		p.add(notGeneric(), "output simple PE");
  		p.add(peToER(), "output simple PE", "changed generic SMR");
  		p.add(linkedER(false), "changed generic SMR", "changed SMR");
  		p.add(new OR(
  			new MappedConst(hasDifferentCompartments(), 0, 1),
  			new MappedConst(hasDifferentCompartments(), 2, 3)),
  			"input simple PE", "output simple PE", "input PE", "output PE");
  
  		return p;
  	}
docs: Pattern for a ProteinReference has a member PhysicalEntity that is controlling a reaction
  that changes cellular location of a small molecule.
  
  @param blacklist a skip-list of ubiquitous molecules
  @return the pattern