<commit_before><!DOCTYPE tokenLists SYSTEM "tokenLists.dtd">
<!-- 3AA-2.2 Natural amino acids -->
<!-- Histidine numbering uses Organic Chemistry numbering, not Biochemistry numbering -->
<!-- 3AA-2.3 added common examples of 'homo'-amino acids -->
<!-- 3AA-2.4 added common examples of 'nor'-amino acids -->
<!-- 3AA-4.4 added common examples of 'allo'-amino acids -->
<!-- 3AA-9.2 added common examples of 'iso'-amino acids -->
<!-- L-/D-/DL- etc. are handled by the grammar-->
<!-- Make sure that the substitutable N is the first atom in the SMILES and do not include the modifiable acid but note its position using suffixAppliesTo-->
<tokenLists>
  <tokenList tagname="group" type="aminoAcid" subType="endInIne" symbol="¨" >
    <token labels="/2,alpha/3,beta/1" valType="SMILES" value="N[C@@H](C)C" suffixAppliesTo="4">alan</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta//guanidino-C,99/omega/omega'/1" valType="SMILES" value="N[C@@H](CCCNC(N)=N)C" suffixAppliesTo="10">argin</token>
    <token labels="/2,alpha/3,beta/4,gamma///1" valType="SMILES" value="N[C@@H](CC(N)=O)C" suffixAppliesTo="7">asparag</token>
    <token labels="/2,alpha/3,beta/4,gamma/1//" valType="SMILES" value="N[C@@H](CC)C(N)=O" suffixAppliesTo="4">isoasparag</token>
		<token labels="/2,alpha/3,beta/4,gamma/1//" valType="SMILES" value="N[C@@H](CC)C(N)=O" suffixAppliesTo="4">alpha-asparag</token>
    <token value="N[C@@H](CCSC[C@@H](C)N)C" labels="none" valType="SMILES" suffixAppliesTo="8,10">cystathion</token>
    <token labels="/4,gamma/3,beta/2,alpha/1///" valType="SMILES" value="N[C@@H](CCC)C(N)=O" suffixAppliesTo="5">isoglutam</token>
    <token labels="/4,gamma/3,beta/2,alpha/1///" valType="SMILES" value="N[C@@H](CCC)C(N)=O" suffixAppliesTo="5">iso-glutam</token>
		<token labels="/4,gamma/3,beta/2,alpha/1///" valType="SMILES" value="N[C@@H](CCC)C(N)=O" suffixAppliesTo="5">alpha-glutam</token>
    <token labels="/2,alpha/1" valType="SMILES" value="NCC" suffixAppliesTo="3">glyc</token>
    <token labels="/alpha/beta/4/5/1,tele,tau/2/3,pros,pi/" valType="SMILES" value="N[C@@H](Cc1c[nH]cn1)C" suffixAppliesTo="9">histid</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@@H](C)CC)C" suffixAppliesTo="7">isoleuc</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@@H](C)CC)C" suffixAppliesTo="7">iso-leuc</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@H](C)CC)C" suffixAppliesTo="7">alloisoleuc</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@H](C)CC)C" suffixAppliesTo="7">allo-isoleuc</token>
    <token labels="/2,alpha/3,beta/4,gamma/5',delta'/5,delta/1" valType="SMILES" value="N[C@@H](CC(C)C)C" suffixAppliesTo="7">leuc</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon//1" valType="SMILES" value="N[C@@H](CCCCN)C" suffixAppliesTo="8">lys</token>
    <token labels="/2,alpha/3,beta/4,gamma//methyl/1" valType="SMILES" value="N[C@@H](CCSC)C" suffixAppliesTo="7">methion</token>
    <token labels="/2,alpha/3,beta/4,gamma//methyl/1" valType="SMILES" value="N[C@@H](CC[Se]C)C" suffixAppliesTo="7">selenomethion</token>
    <token labels="/alpha/beta/1/2,ortho/3,meta/4,para/5/6/" valType="SMILES" value="N[C@@H](Cc1ccccc1)C" suffixAppliesTo="10">phenylalan</token>
    <token labels="1/2//3/4/5" valType="SMILES" value="N1[C@H](C)CCC1" suffixAppliesTo="3">prol</token>
    <token labels="/2,alpha/3,beta/O/1" valType="SMILES" value="N[C@@H](CO)C" suffixAppliesTo="5">ser</token>
    <token labels="/2,alpha/3,beta/O/4,gamma/1" valType="SMILES" value="N[C@@H]([C@H](O)C)C" suffixAppliesTo="6">threon</token>
    <token labels="/2,alpha/3,beta/O/4,gamma/1" valType="SMILES" value="N[C@@H]([C@@H](O)C)C" suffixAppliesTo="6">allothreon</token>
    <token labels="/2,alpha/3,beta/O/4,gamma/1" valType="SMILES" value="N[C@@H]([C@@H](O)C)C" suffixAppliesTo="6">allo-threon</token>
    <token labels="/alpha/beta/1/2,ortho/3,meta/4,para/5/6/O/" valType="SMILES" value="N[C@@H](Cc1ccc(cc1)O)C" suffixAppliesTo="11">tyros</token>
    <token labels="/2,alpha/3,beta/4',gamma'/4,gamma/1" valType="SMILES" value="N[C@@H](C(C)C)C" suffixAppliesTo="6">val</token>
    <token labels="/2,alpha/3,beta/4,gamma/O/1" valType="SMILES" value="N[C@@H](CCO)C" suffixAppliesTo="6">homoser</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H](CCC)C" suffixAppliesTo="6">norval</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/1" valType="SMILES" value="N[C@@H](CCCC)C" suffixAppliesTo="7">norleuc</token>
    <token labels="/3,beta/2,alpha/1" valType="SMILES" value="NCCC" suffixAppliesTo="4">beta-alan</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon//1" valType="SMILES" value="N[C@@H](CCCC=O)C" suffixAppliesTo="8">allys</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/////1" valType="SMILES" value="N[C@@H](CCCNC(=O)N)C" suffixAppliesTo="10">citrull</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta//1" valType="SMILES" value="N[C@@H](CCCN)C" suffixAppliesTo="7">ornith</token>
    <token labels="//2,alpha/1" valType="SMILES" value="N(C)CC" suffixAppliesTo="4">sarcos</token>
    <token labels="/alpha/beta/1/2/3/4/5/6//1'/2'/3'/4'/5'/6'//" valType="SMILES" value="N[C@@H](Cc1ccc(cc1)Oc2ccc(cc2)O)C" suffixAppliesTo="18">thyron</token>
    <token labels="none" valType="SMILES" value="N[C@@H](Cc1cc(I)c(c(I)c1)Oc2cc(I)c(c(I)c2)O)C(O)=O" suffixAppliesTo="22">thyrox</token>
    <token labels="none" valType="SMILES" value="N[C@@H](CCCCNC([C@H]1[C@H](C)CC=N1)=O)C" suffixAppliesTo="16">pyrrolys</token>
    <token labels="none" valType="SMILES" value="N[C@@H](CSC[C@H](N)C)C" suffixAppliesTo="8,9">lanthion</token>
    <token labels="none" valType="SMILES" value="N[C@@H](CCSCC[C@H](N)C)C" suffixAppliesTo="10,11">homolanthion</token>
    <token labels="none" valType="SMILES" value="NC(=C)C" suffixAppliesTo="4">dehydroalan</token>
    <token labels="1/2//3/4//5" valType="SMILES" value="N1[C@H](C)C[C@@H](O)C1" suffixAppliesTo="3">hydroxyprol</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta//6,epsilon//1" valType="SMILES" value="N[C@@H](CC[C@@H](O)CN)C" suffixAppliesTo="9">hydroxylys</token>
		<token value="ON(C=O)CC" labels="none" valType="SMILES" suffixAppliesTo="6">hadacid</token>
		<token value="NCC(O)C" labels="/3,beta/2,alpha//1" valType="SMILES" suffixAppliesTo="5">isoser</token>
		<token value="NCC(O)C" labels="/3,beta/2,alpha//1" valType="SMILES" suffixAppliesTo="5">iso-ser</token>
    <token labels="//alpha/beta/3/2/1/7a/7/6/5/4/3a/" valType="SMILES" value="N(C)[C@@H](Cc1c[nH]c2ccccc12)C" suffixAppliesTo="14">abr</token>
    <token labels="/2,alpha/3,beta/4,gamma/////////////1" valType="SMILES" value="N[C@@H](CCC(=O)NNc1ccc(CO)cc1)C" suffixAppliesTo="17">agarit</token>
    <token labels="/2,alpha/3,beta///////1" valType="SMILES" value="N[C@@H](COC(=O)C=[N+]=[N-])C" suffixAppliesTo="10">azaser</token>
    <token labels="/2,alpha/3,beta/////1" valType="SMILES" value="N[C@@H](CN(O)N=O)C" suffixAppliesTo="8">alanos</token>
    <token labels="/2,alpha/3,beta/////1" valType="SMILES" value="N[C@@H](CNC(=O)N)C" suffixAppliesTo="8">albizz</token>
		<token labels="/2,alpha/3,beta/////1" valType="SMILES" value="N[C@@H](CNC(=O)N)C" suffixAppliesTo="8">albizzi</token>
    <token labels="/2,alpha/3,beta//////1" valType="SMILES" value="N[C@@H](CS(=O)CC=C)C" suffixAppliesTo="9">alli</token>
    <token labels="/2,alpha/3,beta/4,gamma////1" valType="SMILES" value="N[C@@H](CCSCC)C" suffixAppliesTo="8">ethion</token>
		<token labels="/2,alpha/3,beta/4,gamma////1" valType="SMILES" value="N[C@@H](CC[Se]CC)C" suffixAppliesTo="8">selenoethion</token>
		<token labels="/2,alpha/3,beta/4,gamma///1" valType="SMILES" value="N[C@@H](CCON)C" suffixAppliesTo="7">canal</token>
		<token labels="/2,alpha/3,beta/4,gamma//////1" valType="SMILES" value="N[C@@H](CCONC(=N)C)C" suffixAppliesTo="10">canavan</token>
    <token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@](CC)(C)C" suffixAppliesTo="6">isoval</token>
    <token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@](CC)(C)C" suffixAppliesTo="6">iso-val</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)S)C" suffixAppliesTo="7">penicillam</token>
		<token labels="/2,alpha/3,beta/4,gamma/5,delta//methyl/1" valType="SMILES" value="N[C@@H](CCCSC)C" suffixAppliesTo="8">homomethion</token>
    <token labels="/2,alpha/3,beta/4,gamma//////1" valType="SMILES" value="N[C@@H](CCC(=O)NCC)C" suffixAppliesTo="10">thean</token>
		<token labels="/2,alpha/3,beta////////1" valType="SMILES" value="N[C@@H](CSC(C)(C)CCO)C" suffixAppliesTo="11">felin</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon////1" valType="SMILES" value="N[C@@H](CCCCN=[N+]=[N-])C" suffixAppliesTo="10">azidonorleuc</token>
    <token labels="/2,alpha/3,beta/4,gamma/1" valType="SMILES" value="N[C@@H](CC)C" suffixAppliesTo="5">homoalan</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C)CC" suffixAppliesTo="5">beta-homoalan</token>
    <token labels="/2,alpha/3,beta/4,gamma////1" valType="SMILES" value="N[C@@H](CCN=[N+]=[N-])C" suffixAppliesTo="8">azidohomoalan</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)C)C" suffixAppliesTo="7">tertleuc</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)C)C" suffixAppliesTo="7">tert-leuc</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)CO)C" suffixAppliesTo="8">panton</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/////1" valType="SMILES" value="N[C@@H](CCCC[N+](C)(C)C)C" suffixAppliesTo="11">lamin</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/////1" valType="SMILES" value="N[C@@H](CCCCNC(=O)N)C" suffixAppliesTo="11">homocitrull</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/////1" valType="SMILES" value="N[C@@H](CCCCNC(=N)N)C" suffixAppliesTo="11">homoargin</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon///////////1" valType="SMILES" value="N[C@@H](CCCCN[C@H](C(=O)O)CCC(=O)O)C" suffixAppliesTo="17">saccharop</token>
  </tokenList>

<!--These amino acids ends in yl even when forming acyl groups as otherwise they cause ambiguity with the acyls from the acid version
e.g. glutamyl relates to glutamic acid not glutamine-->
  <tokenList tagname="group" type="aminoAcid" subType="endInIne" symbol="Æ" >
    <token labels="/2,alpha/3,beta/4,gamma/5,delta///1" valType="SMILES" value="N[C@@H](CCC(N)=O)C" suffixAppliesTo="8">glutam</token>
    <token labels="/2,alpha/3,beta//1" valType="SMILES" value="N[C@@H](CS)C" suffixAppliesTo="5">cyste</token>
    <token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@H](CCS)C" suffixAppliesTo="6">homocyste</token>
    <token labels="/2,alpha/3,beta//1" valType="SMILES" value="N[C@@H](C[SeH])C" suffixAppliesTo="5">selenocyste</token>
		<token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@H](CC[Se])C" suffixAppliesTo="6">selenohomocyste</token>
  </tokenList>

  <tokenList tagname="group" type="aminoAcid" subType="endInAn" symbol="©" ><!--why isn't this tryptophine!!!!-->
    <token labels="/alpha/beta/3/2/1/7a/7/6/5/4/3a/" valType="SMILES" value="N[C@@H](Cc1c[nH]c2ccccc12)C" suffixAppliesTo="13">tryptoph</token>
  </tokenList>

  <tokenList tagname="group" type="aminoAcid" subType="endInIc" symbol="ª" >
    <token labels="/2,alpha/3,beta/4,gamma/1" valType="SMILES" value="N[C@@H](CC)C" suffixAppliesTo="5,4">aspart</token><commit_msg>Eliminated ambiguity in meaning of alpha-glutamyl<commit_after><!DOCTYPE tokenLists SYSTEM "tokenLists.dtd">
<!-- 3AA-2.2 Natural amino acids -->
<!-- Histidine numbering uses Organic Chemistry numbering, not Biochemistry numbering -->
<!-- 3AA-2.3 added common examples of 'homo'-amino acids -->
<!-- 3AA-2.4 added common examples of 'nor'-amino acids -->
<!-- 3AA-4.4 added common examples of 'allo'-amino acids -->
<!-- 3AA-9.2 added common examples of 'iso'-amino acids -->
<!-- L-/D-/DL- etc. are handled by the grammar-->
<!-- Make sure that the substitutable N is the first atom in the SMILES and do not include the modifiable acid but note its position using suffixAppliesTo-->
<tokenLists>
  <tokenList tagname="group" type="aminoAcid" subType="endInIne" symbol="¨" >
    <token labels="/2,alpha/3,beta/1" valType="SMILES" value="N[C@@H](C)C" suffixAppliesTo="4">alan</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta//guanidino-C,99/omega/omega'/1" valType="SMILES" value="N[C@@H](CCCNC(N)=N)C" suffixAppliesTo="10">argin</token>
    <token labels="/2,alpha/3,beta/4,gamma///1" valType="SMILES" value="N[C@@H](CC(N)=O)C" suffixAppliesTo="7">asparag</token>
    <token labels="/2,alpha/3,beta/4,gamma/1//" valType="SMILES" value="N[C@@H](CC)C(N)=O" suffixAppliesTo="4">isoasparag</token>
		<token labels="/2,alpha/3,beta/4,gamma/1//" valType="SMILES" value="N[C@@H](CC)C(N)=O" suffixAppliesTo="4">alpha-asparag</token>
    <token value="N[C@@H](CCSC[C@@H](C)N)C" labels="none" valType="SMILES" suffixAppliesTo="8,10">cystathion</token>
    <token labels="/4,gamma/3,beta/2,alpha/1///" valType="SMILES" value="N[C@@H](CCC)C(N)=O" suffixAppliesTo="5">isoglutam</token>
    <token labels="/4,gamma/3,beta/2,alpha/1///" valType="SMILES" value="N[C@@H](CCC)C(N)=O" suffixAppliesTo="5">iso-glutam</token>
    <token labels="/2,alpha/1" valType="SMILES" value="NCC" suffixAppliesTo="3">glyc</token>
    <token labels="/alpha/beta/4/5/1,tele,tau/2/3,pros,pi/" valType="SMILES" value="N[C@@H](Cc1c[nH]cn1)C" suffixAppliesTo="9">histid</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@@H](C)CC)C" suffixAppliesTo="7">isoleuc</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@@H](C)CC)C" suffixAppliesTo="7">iso-leuc</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@H](C)CC)C" suffixAppliesTo="7">alloisoleuc</token>
    <token labels="/2,alpha/3,beta/3'/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H]([C@H](C)CC)C" suffixAppliesTo="7">allo-isoleuc</token>
    <token labels="/2,alpha/3,beta/4,gamma/5',delta'/5,delta/1" valType="SMILES" value="N[C@@H](CC(C)C)C" suffixAppliesTo="7">leuc</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon//1" valType="SMILES" value="N[C@@H](CCCCN)C" suffixAppliesTo="8">lys</token>
    <token labels="/2,alpha/3,beta/4,gamma//methyl/1" valType="SMILES" value="N[C@@H](CCSC)C" suffixAppliesTo="7">methion</token>
    <token labels="/2,alpha/3,beta/4,gamma//methyl/1" valType="SMILES" value="N[C@@H](CC[Se]C)C" suffixAppliesTo="7">selenomethion</token>
    <token labels="/alpha/beta/1/2,ortho/3,meta/4,para/5/6/" valType="SMILES" value="N[C@@H](Cc1ccccc1)C" suffixAppliesTo="10">phenylalan</token>
    <token labels="1/2//3/4/5" valType="SMILES" value="N1[C@H](C)CCC1" suffixAppliesTo="3">prol</token>
    <token labels="/2,alpha/3,beta/O/1" valType="SMILES" value="N[C@@H](CO)C" suffixAppliesTo="5">ser</token>
    <token labels="/2,alpha/3,beta/O/4,gamma/1" valType="SMILES" value="N[C@@H]([C@H](O)C)C" suffixAppliesTo="6">threon</token>
    <token labels="/2,alpha/3,beta/O/4,gamma/1" valType="SMILES" value="N[C@@H]([C@@H](O)C)C" suffixAppliesTo="6">allothreon</token>
    <token labels="/2,alpha/3,beta/O/4,gamma/1" valType="SMILES" value="N[C@@H]([C@@H](O)C)C" suffixAppliesTo="6">allo-threon</token>
    <token labels="/alpha/beta/1/2,ortho/3,meta/4,para/5/6/O/" valType="SMILES" value="N[C@@H](Cc1ccc(cc1)O)C" suffixAppliesTo="11">tyros</token>
    <token labels="/2,alpha/3,beta/4',gamma'/4,gamma/1" valType="SMILES" value="N[C@@H](C(C)C)C" suffixAppliesTo="6">val</token>
    <token labels="/2,alpha/3,beta/4,gamma/O/1" valType="SMILES" value="N[C@@H](CCO)C" suffixAppliesTo="6">homoser</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/1" valType="SMILES" value="N[C@@H](CCC)C" suffixAppliesTo="6">norval</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/1" valType="SMILES" value="N[C@@H](CCCC)C" suffixAppliesTo="7">norleuc</token>
    <token labels="/3,beta/2,alpha/1" valType="SMILES" value="NCCC" suffixAppliesTo="4">beta-alan</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon//1" valType="SMILES" value="N[C@@H](CCCC=O)C" suffixAppliesTo="8">allys</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/////1" valType="SMILES" value="N[C@@H](CCCNC(=O)N)C" suffixAppliesTo="10">citrull</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta//1" valType="SMILES" value="N[C@@H](CCCN)C" suffixAppliesTo="7">ornith</token>
    <token labels="//2,alpha/1" valType="SMILES" value="N(C)CC" suffixAppliesTo="4">sarcos</token>
    <token labels="/alpha/beta/1/2/3/4/5/6//1'/2'/3'/4'/5'/6'//" valType="SMILES" value="N[C@@H](Cc1ccc(cc1)Oc2ccc(cc2)O)C" suffixAppliesTo="18">thyron</token>
    <token labels="none" valType="SMILES" value="N[C@@H](Cc1cc(I)c(c(I)c1)Oc2cc(I)c(c(I)c2)O)C(O)=O" suffixAppliesTo="22">thyrox</token>
    <token labels="none" valType="SMILES" value="N[C@@H](CCCCNC([C@H]1[C@H](C)CC=N1)=O)C" suffixAppliesTo="16">pyrrolys</token>
    <token labels="none" valType="SMILES" value="N[C@@H](CSC[C@H](N)C)C" suffixAppliesTo="8,9">lanthion</token>
    <token labels="none" valType="SMILES" value="N[C@@H](CCSCC[C@H](N)C)C" suffixAppliesTo="10,11">homolanthion</token>
    <token labels="none" valType="SMILES" value="NC(=C)C" suffixAppliesTo="4">dehydroalan</token>
    <token labels="1/2//3/4//5" valType="SMILES" value="N1[C@H](C)C[C@@H](O)C1" suffixAppliesTo="3">hydroxyprol</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta//6,epsilon//1" valType="SMILES" value="N[C@@H](CC[C@@H](O)CN)C" suffixAppliesTo="9">hydroxylys</token>
		<token value="ON(C=O)CC" labels="none" valType="SMILES" suffixAppliesTo="6">hadacid</token>
		<token value="NCC(O)C" labels="/3,beta/2,alpha//1" valType="SMILES" suffixAppliesTo="5">isoser</token>
		<token value="NCC(O)C" labels="/3,beta/2,alpha//1" valType="SMILES" suffixAppliesTo="5">iso-ser</token>
    <token labels="//alpha/beta/3/2/1/7a/7/6/5/4/3a/" valType="SMILES" value="N(C)[C@@H](Cc1c[nH]c2ccccc12)C" suffixAppliesTo="14">abr</token>
    <token labels="/2,alpha/3,beta/4,gamma/////////////1" valType="SMILES" value="N[C@@H](CCC(=O)NNc1ccc(CO)cc1)C" suffixAppliesTo="17">agarit</token>
    <token labels="/2,alpha/3,beta///////1" valType="SMILES" value="N[C@@H](COC(=O)C=[N+]=[N-])C" suffixAppliesTo="10">azaser</token>
    <token labels="/2,alpha/3,beta/////1" valType="SMILES" value="N[C@@H](CN(O)N=O)C" suffixAppliesTo="8">alanos</token>
    <token labels="/2,alpha/3,beta/////1" valType="SMILES" value="N[C@@H](CNC(=O)N)C" suffixAppliesTo="8">albizz</token>
		<token labels="/2,alpha/3,beta/////1" valType="SMILES" value="N[C@@H](CNC(=O)N)C" suffixAppliesTo="8">albizzi</token>
    <token labels="/2,alpha/3,beta//////1" valType="SMILES" value="N[C@@H](CS(=O)CC=C)C" suffixAppliesTo="9">alli</token>
    <token labels="/2,alpha/3,beta/4,gamma////1" valType="SMILES" value="N[C@@H](CCSCC)C" suffixAppliesTo="8">ethion</token>
		<token labels="/2,alpha/3,beta/4,gamma////1" valType="SMILES" value="N[C@@H](CC[Se]CC)C" suffixAppliesTo="8">selenoethion</token>
		<token labels="/2,alpha/3,beta/4,gamma///1" valType="SMILES" value="N[C@@H](CCON)C" suffixAppliesTo="7">canal</token>
		<token labels="/2,alpha/3,beta/4,gamma//////1" valType="SMILES" value="N[C@@H](CCONC(=N)C)C" suffixAppliesTo="10">canavan</token>
    <token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@](CC)(C)C" suffixAppliesTo="6">isoval</token>
    <token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@](CC)(C)C" suffixAppliesTo="6">iso-val</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)S)C" suffixAppliesTo="7">penicillam</token>
		<token labels="/2,alpha/3,beta/4,gamma/5,delta//methyl/1" valType="SMILES" value="N[C@@H](CCCSC)C" suffixAppliesTo="8">homomethion</token>
    <token labels="/2,alpha/3,beta/4,gamma//////1" valType="SMILES" value="N[C@@H](CCC(=O)NCC)C" suffixAppliesTo="10">thean</token>
		<token labels="/2,alpha/3,beta////////1" valType="SMILES" value="N[C@@H](CSC(C)(C)CCO)C" suffixAppliesTo="11">felin</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon////1" valType="SMILES" value="N[C@@H](CCCCN=[N+]=[N-])C" suffixAppliesTo="10">azidonorleuc</token>
    <token labels="/2,alpha/3,beta/4,gamma/1" valType="SMILES" value="N[C@@H](CC)C" suffixAppliesTo="5">homoalan</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C)CC" suffixAppliesTo="5">beta-homoalan</token>
    <token labels="/2,alpha/3,beta/4,gamma////1" valType="SMILES" value="N[C@@H](CCN=[N+]=[N-])C" suffixAppliesTo="8">azidohomoalan</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)C)C" suffixAppliesTo="7">tertleuc</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)C)C" suffixAppliesTo="7">tert-leuc</token>
    <token labels="none" valType="SMILES" value="N[C@@H](C(C)(C)CO)C" suffixAppliesTo="8">panton</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/////1" valType="SMILES" value="N[C@@H](CCCC[N+](C)(C)C)C" suffixAppliesTo="11">lamin</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/////1" valType="SMILES" value="N[C@@H](CCCCNC(=O)N)C" suffixAppliesTo="11">homocitrull</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon/////1" valType="SMILES" value="N[C@@H](CCCCNC(=N)N)C" suffixAppliesTo="11">homoargin</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta/6,epsilon///////////1" valType="SMILES" value="N[C@@H](CCCCN[C@H](C(=O)O)CCC(=O)O)C" suffixAppliesTo="17">saccharop</token>
  </tokenList>

<!--These amino acids ends in yl even when forming acyl groups as otherwise they cause ambiguity with the acyls from the acid version
e.g. glutamyl relates to glutamic acid not glutamine-->
  <tokenList tagname="group" type="aminoAcid" subType="endInIne" symbol="Æ" >
		<token labels="/4,gamma/3,beta/2,alpha/1///" valType="SMILES" value="N[C@@H](CCC)C(N)=O" suffixAppliesTo="5">alpha-glutam</token>
    <token labels="/2,alpha/3,beta/4,gamma/5,delta///1" valType="SMILES" value="N[C@@H](CCC(N)=O)C" suffixAppliesTo="8">glutam</token>
    <token labels="/2,alpha/3,beta//1" valType="SMILES" value="N[C@@H](CS)C" suffixAppliesTo="5">cyste</token>
    <token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@H](CCS)C" suffixAppliesTo="6">homocyste</token>
    <token labels="/2,alpha/3,beta//1" valType="SMILES" value="N[C@@H](C[SeH])C" suffixAppliesTo="5">selenocyste</token>
		<token labels="/2,alpha/3,beta/4,gamma//1" valType="SMILES" value="N[C@@H](CC[Se])C" suffixAppliesTo="6">selenohomocyste</token>
  </tokenList>

  <tokenList tagname="group" type="aminoAcid" subType="endInAn" symbol="©" ><!--why isn't this tryptophine!!!!-->
    <token labels="/alpha/beta/3/2/1/7a/7/6/5/4/3a/" valType="SMILES" value="N[C@@H](Cc1c[nH]c2ccccc12)C" suffixAppliesTo="13">tryptoph</token>
  </tokenList>

  <tokenList tagname="group" type="aminoAcid" subType="endInIc" symbol="ª" >
    <token labels="/2,alpha/3,beta/4,gamma/1" valType="SMILES" value="N[C@@H](CC)C" suffixAppliesTo="5,4">aspart</token>
{'fraction_non_alphanumeric': 0.2548072814289377, 'fraction_numerical': 0.040423895393556106, 'mean_word_length': 6.695823742190069, 'pattern_counts': {'":': 0, '<': 365, '<?xml version=': 0, '>': 365, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '682257', 'n_tokens_mistral': 10375, 'n_tokens_neox': 10043, 'n_words': 1088}