code: @Override
      public List<Statement> expand(Term term) {
          List<Statement> statements = new ArrayList<Statement>();
  
          // first argument of a protein mod term is the protein parameter
          BELObject proteinArgument = term.getFunctionArguments().get(0);
          Parameter pp = (Parameter) proteinArgument;
  
          // second argument of a protein mod term is the modification
          BELObject modArgument = term.getFunctionArguments().get(1);
          Term mt = (Term) modArgument;
  
          FunctionEnum fx = mt.getFunctionEnum();
  
          Term proteinTrm = new Term(PROTEIN_ABUNDANCE);
          proteinTrm.addFunctionArgument(pp);
  
          Statement stmt = null;
          final Object obj = new Object(term);
          if (isMutation(fx)) {
              // mutation
              // protein term connects to its mutation with HAS_VARIANT
              // relationship
              stmt = new Statement(proteinTrm, null, null, obj, HAS_VARIANT);
          } else {
              // modified protein
              // protein term connects to its modification with HAS_MODIFICATION
              // relationship
              stmt = new Statement(proteinTrm, null, null, obj, HAS_MODIFICATION);
          }
  
          attachExpansionRuleCitation(stmt);
          statements.add(stmt);
  
          return statements;
      }
docs: {@inheritDoc}