code: public static Pattern chemicalAffectsProteinThroughBinding(Blacklist blacklist)
  	{
  		Pattern p = new Pattern(SmallMoleculeReference.class, "SMR");
  		p.add(erToPE(), "SMR", "SPE1");
  		p.add(notGeneric(), "SPE1");
  		if (blacklist != null) p.add(new NonUbique(blacklist), "SPE1");
  		p.add(linkToComplex(), "SPE1", "PE1");
  		p.add(new PathConstraint("PhysicalEntity/componentOf"), "PE1", "Complex");
  		p.add(new PathConstraint("Complex/component"), "Complex", "PE2");
  		p.add(equal(false), "PE1", "PE2");
  		p.add(linkToSpecific(), "PE2", "SPE2");
  		p.add(new Type(SequenceEntity.class), "SPE2");
  		p.add(peToER(), "SPE2", "generic ER");
  		p.add(linkedER(false), "generic ER", "ER");
  		return p;
  	}
docs: A small molecule is in a complex with a protein.
  
  @param blacklist a skip-list of ubiquitous molecules
  @return pattern