From 8dfcb0935597571483db587639fb662c93d775b1 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 26 Feb 2024 03:00:59 +0000 Subject: CTAN sync 202402260300 --- graphics/mcf2graph/CHANGELOG | 11 +- graphics/mcf2graph/README | 4 +- graphics/mcf2graph/main_lib.mcf | 130 +++++++++++++++-- graphics/mcf2graph/mcf2graph.mp | 277 ++++++++++++++++++------------------ graphics/mcf2graph/mcf_exa_soc.mp | 8 +- graphics/mcf2graph/mcf_example.pdf | Bin 713389 -> 713698 bytes graphics/mcf2graph/mcf_example.tex | 6 +- graphics/mcf2graph/mcf_manual.pdf | Bin 317677 -> 319715 bytes graphics/mcf2graph/mcf_manual.tex | 230 ++++++++++++++++-------------- graphics/mcf2graph/template_lib.mcf | 4 +- graphics/mcf2graph/template_soc.mp | 6 +- 11 files changed, 412 insertions(+), 264 deletions(-) (limited to 'graphics/mcf2graph') diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG index 946f88d8c0..e239f9ec97 100644 --- a/graphics/mcf2graph/CHANGELOG +++ b/graphics/mcf2graph/CHANGELOG @@ -1,6 +1,15 @@ ******************************************************************************* - Changelog of mcf2graph software package by Akira Yamaji 2024-01-21 + Changelog of mcf2graph software package by Akira Yamaji 2024-02-25 ******************************************************************************* +[ver. 5.12 / 2024-02-25] + -add command `(),``() + define group "string" + `("{string}") + ``("{string}")(atom list) + -update mcf2graph.mp + -update main_lib.mcf + -update MCF manual,example + [ver. 5.11 / 2024-01-21] -change command name !! => !db,!d diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README index 0e091cee0f..0dbc9d157f 100644 --- a/graphics/mcf2graph/README +++ b/graphics/mcf2graph/README @@ -1,7 +1,7 @@ ******************************************************************************** mcf2graph : Convert Molecular Coding Format to graphics with MetaPost Author : Akira Yamaji - version : 5.11 2024-01-21 + version : 5.12 2024-02-25 E-mail : mcf2graph@gmail.com Located at : http://www.ctan.org/pkg/mcf2graph ******************************************************************************** @@ -44,7 +44,7 @@ (9) >mpost -s ahlength=7 filename.mp => output report file 4. License - mcf2graph ver 5.11 Copyright (c) 2013-2024 Akira Yamaji + mcf2graph ver 5.12 Copyright (c) 2013-2024 Akira Yamaji Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/graphics/mcf2graph/main_lib.mcf b/graphics/mcf2graph/main_lib.mcf index 3e2bc95a91..f2868a7ab9 100644 --- a/graphics/mcf2graph/main_lib.mcf +++ b/graphics/mcf2graph/main_lib.mcf @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% molecular library file main_lib.mcf by Akira Yamaji 2024.01.21 +% molecular library file main_lib.mcf by Akira Yamaji 2024.01.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% must use version 5.11 +% must use version 5.12 % tag1:var1;tag2:var2;tag3:var3 ..... % first character of line "%" comment out % first character of line ":" start MCF @@ -149,7 +149,7 @@ CAT:biological;EN:L-Lysine;MW:146.19;EXA:- %------------------------------------------------------------------------------ CAT:biological;EN:L-Arginine;MW:174.21;EXA:- : -<30,NH2,!wb,!COOH,@2,\`1,!`1,!2,NH!,//NH,!NH2 +<30,NH2,!wb,!COOH,@2,\`1,!`1,!2,NH!,?NH,!NH2 ; %------------------------------------------------------------------------------ CAT:biological;EN:L-Hystidine;MW:155.16;EXA:- @@ -365,12 +365,12 @@ CAT:biological;EN:Salicylic acid;MW:138.12;EXA:- %------------------------------------------------------------------------------ CAT:biological;EN:Cinnamic acid;MW:148.16;EXA:- : -<30,Ph,3:/!d+!COOH +<30,Ph,3:/!dr+!COOH ; %------------------------------------------------------------------------------ CAT:biological;EN:Cinnamaldehyde;MW:132.16;EXA:- : -<30,Ph,3:/!d+!CHO +<30,Ph,3:/!dr+!CHO ; %------------------------------------------------------------------------------ CAT:biological;EN:Caffeic acid;MW:180.16;EXA:1 @@ -380,7 +380,96 @@ CAT:biological;EN:Caffeic acid;MW:180.16;EXA:1 %------------------------------------------------------------------------------ CAT:biological;EN:Vanillin;MW:152.15;EXA:1 : -<30,Ph,2:/OH,3:/O!,5:/CHO +<30,Ph,1:/OH,6:/O!,4:/CHO +; +CAT:biological;EN:alfa-Terpinene;MW:136.24;EXA:- +: +<30,?6,3:/?!,6:/_,{3,5}=db +; +%------------------------------------------------------------------------------ +CAT:biological;EN:beta-Terpinene;MW:136.24;EXA:- +: +<30,?6,3:/?!,6://_,3=db +; +%------------------------------------------------------------------------------ +CAT:biological;EN:gamma-Terpinene;MW:136.24;EXA:- +: +<30,?6,3:/?!,6:/_,{3,6}=db +; +%------------------------------------------------------------------------------ +CAT:biological;EN:delta-Terpinene;MW:136.24;EXA:- +: +<30,?6,3://?!,6:/_,5=db +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Eugenol;MW:164.20;EXA:- +: +<30,Ph,1:/OH,6:/O!,4:/!+!d +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Thymol;MW:150.22;EXA:- +: +<30,Ph,4:/OH,3:/?!,6:/_ +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Anisaldehyde;MW:136.15;EXA:- +: +<30,Ph,4:/CHO,1:/O! +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Benzaldehyde;MW:106.12;EXA:- +: +<30,Ph,4:/CHO +; +%------------------------------------------------------------------------------ +CAT:biological;EN:gamma-Nonalactone;MW:156.23;EXA:- +: +<18,?5,2:O,1:?O,3^-12:/!4 +; +%------------------------------------------------------------------------------ +CAT:biological;EN:gamma-Undecalactone;MW:184.27;EXA:- +: +<18,?5,2:O,1:?O,3^-12:/!6 +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Muscone;MW:238.40;EXA:- +: +<-72,#1,60,-48,60,60,-48,60,60,-48,60,60,-48,60,60,-48,##,&1,9:?O,7:/_ +; +%------------------------------------------------------------------------------ +CAT:biological;EN:alfa-Pinene;MW:136.24;EXA:- +: +<30,?6,3:??,5:/_,5=db,@2,180~zf`1,&4~zb +; +%------------------------------------------------------------------------------ +CAT:biological;EN:beta-Pinene;MW:136.24;EXA:- +: +<30,?6,3:??,5://_,@2,180~zf`1,&4~zb +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Neral;MW:152.24;EXA:- +: +<30,!?,!d,!3,?,!d,-60,CHO +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Geranial;MW:152.24;EXA:- +: +<30,!?,!d,!3,?,!d,!,CHO +; +%------------------------------------------------------------------------------ +CAT:biological;EN:p-Cymene;MW:134.21;EXA:- +: +<30,Ph,4:/?!,1:/_ +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Benzyl-acetate;MW:150.18;EXA:- +: +<30,Ph,@4,\,?O!,O!,!,Ph +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Benzyl-benzoate;MW:212.25;EXA:- +: +<30,Ph,4:/!O!+?O! ; %------------------------------------------------------------------------------ CAT:biological;EN:Stearic acid;MW:284.48;EXA:1 @@ -756,7 +845,7 @@ CAT:biological;EN:Psilocybin;MW:284.248;EXA:1 CAT:biological;EN:Tetrodotoxine;MW:319.27;EXA:1 : #1,<60,-90,60,-30`1.15,150,60,&1,@3,-135,60,-30`1.15,150,&4, - @10,\,O,60`1.33,60,&($3)~si_,@8,-15~si_,O,&12,##, + @10,\,O,60`1.33,60,&$3~si_,@8,-15~si_,O,&12,##, @9,45,-60,OH,1^120://NH,{5~zf^-15,7,9^-75,12,13~zf}:/OH,2:NH,6^180:NH ; %------------------------------------------------------------------------------ @@ -828,6 +917,26 @@ CAT:biological;EN:Fumonisin B1;MW:721.83;EXA:1 <30,!19,@6,*\,O!,?O!2,/COOH,!2,COOH,@7,\*`1.2,O!,?O!2,/COOH,!2,COOH, {5,9}:/*_,{11,16,18'}:*/OH,19:/*NH2 ; +%------------------------------------------------------------------------------ +CAT:biological;EN:Dicumarol;MW:336.295;EXA:- +: +<30,Ph,3=?6,@8,\`1.5,!`1.5,?6,-4=Ph2,{8,14}=db,{10,16}:O,{9,17}:?O,{7,13}:/OH +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Dihydroxybergamotin;MW:338.40;EXA:- +: +<30,Ph,3=?6,6=?5,{10,13}=db,{7,13}:O,8:?O,@5,\,O,!2,!d,/_,!3,/OH,!,??,!OH +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Bergamotin;MW:338.40;EXA:- +: +<30,Ph,3=?6,6=?5,{10,13}=db,{7,13}:O,8:?O,@5,\,O,!2,!d,/_,!3,!d,?! +; +%------------------------------------------------------------------------------ +CAT:biological;EN:Alkannin;MW:288.29;EXA:- +: +<30,Ph,3=?6,9=db,{2,5}:/OH,{7,10}:?O,@8,\,/*OH,!2,!d,?! +; %============================================================================== CAT:synthetic;EN:Benzene;MW:78.11;EXA:- : @@ -2164,7 +2273,7 @@ CAT:pesticide;EN:Benalaxyl;MW:325.4;EXA:- %------------------------------------------------------------------------------ CAT:pesticide;EN:Benoxacor;MW:260.1;EXA:- : -<90,Ph,3=?6,7:N,10:O,8:/_,@7,\,?O!,?Cl,!Cl +<90,Ph,3=?6,7:N,10:O,8:/_,@7,\,?O!,/Cl,!Cl ; %------------------------------------------------------------------------------ CAT:pesticide;EN:Heptachlor;MW:373.35;EXA:1 @@ -2846,6 +2955,11 @@ CAT:antibacterial;EN:Oxaziclomefone;MW:376.277;EXA:- : <30,?6,6=dl,4:N,2:O,1:/_,5:?O,6:/Ph,@4,\,??,!Ph,{-4,-2}:/Cl ; +%------------------------------------------------------------------------------ +CAT:biological;EN:Pyrrolnitrin;MW:111;EXA:- +: +<30,Ph,@3,\,?5,{8,11}=db,{1,11}:/Cl,9:NH,2:/NO2, +; %****************************************************************************** CAT:biological;EN:Okadaic acid;MW:805.00;EXA:2 : diff --git a/graphics/mcf2graph/mcf2graph.mp b/graphics/mcf2graph/mcf2graph.mp index ba2c36b292..4f38b05612 100644 --- a/graphics/mcf2graph/mcf2graph.mp +++ b/graphics/mcf2graph/mcf2graph.mp @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 5.11 Copyright (c) 2013-2024 Akira Yamaji +% mcf2graph ver 5.12 Copyright (c) 2013-2024 Akira Yamaji % % Permission is hereby granted, free of charge, to any person obtaining a copy of this software % and associated documentation files (the "Software"), to deal in the Software without restriction, @@ -22,7 +22,7 @@ % This package is located at : http://www.ctan.org/pkg/mcf2graph % Suggestion or request mail to : mcf2graph@gmail.com %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -message "* This is mcf2graph ver 5.11 2024.01.21"; +message "* This is mcf2graph ver 5.12 2024.02.25"; tracingstats:=1; prologues:=3; warningcheck:=0; %------------------------------------------------------------------------------------------------- newinternal string EN_; @@ -33,13 +33,13 @@ string row[][],save_str[],tbl_atom_str[],str_tbl[],arg_s[],mc[],ex[],ad[],op[], lib_tag[][],lib_val[][],mc,ex,ad,op,aux_delimiter,default_library,EN,FM,MW,MI,CAT,JN,CAS, USE,EXA,EXB,file_input,file_output,default_temp_file,mpfont,atomfont,tempc,temps,blanks, sC,sI,sS,sT,sV,forbiddens; -pair save_pair[],msize,mposition,fsize,fmargin,dum,save_mposition,?,?O,?w,?z; +pair save_pair[],msize,mposition,fsize,fmargin,save_mposition,?,?wf,?zf,?w,?z,?O,?NH; %------------------------------------------------------------------------------------------------- fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_frame:=sw_trimming:=sw_ext_all:=sw_abbreviate:=sw_expand:=0; sw_comment:=sw_output:=sw_numbering:=tag_cnt:=rw_cnt:=pcode_all:=0; numbering_start:=1; numbering_end:=4095; %------------------------------------------------------------------------------------------------- -aux_delimiter:=";"; blanks:= " "; forbiddens:=" &()[]{}^=;!'+,`~"; dum:=(-4091,0); +aux_delimiter:=";"; blanks:= " "; forbiddens:=" &()[]{}^=;!'+,`~"; for s="No","EN","JN","MW","MI","FM","CAT","CAS","USE","EXA","EXB": tag[incr tag_cnt]:=s; endfor MW_n:=0; Fig:=1; Mcode:=2; Calc:=4; Info:=8; Table:=16; Report:=32; MOL2k:=64; MOL3k:=128; Atom:=8; Bond:=16; Group:=32; Mol:=64; Outside:=1; Inside:=2; Bothside:=Outside+Inside; @@ -109,8 +109,7 @@ if ahlength=5: message "* output MOL file(V2000)"; message "* "&jobname&"-nnn-"& ef ahlength=6: message "* output MOL file(V3000)"; message "* "&jobname&"-nnn-"&"EN"&".mol"; ef ahlength=7: message "* output report file"; message "* file name="&jobname&"-report.txt"; fi clearit; -%-------------------------------------------------------------------------------------------------- -?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1; +%------------------------------------------------------------------------------------------------- ratio_chain_ring:=0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.015; ratio_thickness_char:=0.1; ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15; ratio_hashgap_bond:=0.12; ratio_hash_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.04; @@ -121,12 +120,12 @@ fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5); ahangle:=45; ahlength:=4; defaultsize:=8; defaultscale:=1; labeloffset:=3; ext_defaultline:=0.5; lonepairdiam:=lonepairspace:=circlediam:=circlepen:=bboxmargin:=0; mc_length:=100; outputformatoptions:=""; -%================================================================================================== -pcode_emb_start:=1000; % 1001 => 1900 for embedded pcode (max 1900) -pcode_emi_start:=1900; % 1901 => 2000 for embedded internal pcode (max 100) -pcode_usr_start:=2000; % 2001 => 3000 for user pcode (max 1000) +%================================================================================================= +pcode_emb_start:=1001; % 1001 => 1900 for embedded pcode (max 900) +pcode_emi_start:=1901; % 1901 => 2000 for embedded internal pcode (max 100) +pcode_usr_start:=2001; % 2001 => 3000 for user pcode (max 1000) pcode_int_start:=3000; % 3001 => 4000 for internal pcode (max 1000) -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def def_com(expr n)(text tx)= nA:=n; forsuffixes list=tx:: list:=nA; nA:=nA+1; endfor enddef; def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_tmp_line,_chg_len, _get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB, @@ -135,7 +134,7 @@ def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_t _len_e,_len_ss,_len_ee,_group_s,_group_e,_rest,_charge,_from,_until, si,dl,dl_,dr,dr_,db,dm,dm_,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,wf_r,wb_r,bd_r,arc_lb,arc_br, arc_lbr,arc_ltr,si_,wf_,wb_,zf_,zb_,wv_,bd_); -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def parameter_list= sw_numbering,sw_expand,sw_output,sw_ext_all,sw_frame,sw_trimming,sw_abbreviate,ratio_atom_bond, ratio_thickness_bond,ratio_char_bond,ratio_chain_ring,ratio_bondgap_bond,ratio_hash_black, @@ -144,7 +143,7 @@ def parameter_list= thickness_frame,offset_thickness,numbering_start,numbering_end,defaultsize,defaultscale, labeloffset,mangle,blength,fsize,fmargin,msize,mposition,defaultfont,atomfont,dottedline_gap enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def init_par(text t)= nA:=nB:=nC:=0; for list=t: if numeric list: save_num[incr nA]:=list; ef pair list: save_pair[incr nB]:=list; @@ -152,7 +151,7 @@ def init_par(text t)= nA:=nB:=nC:=0; fi endfor enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def store_par(text t)= nA:=nB:=nC:=0; for list=t: if numeric list: if save_num[incr nA]<>list: save_num[nA]:=list; fi ef pair list: if save_pair[incr nB]<>list: save_pair[nB]:=list; fi @@ -160,7 +159,7 @@ def store_par(text t)= nA:=nB:=nC:=0; fi endfor enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def restore_par(text t)= nA:=nB:=nC:=0; forsuffixes list=t: if numeric list: if list<>save_num[incr nA]: list:=save_num[nA]; fi ef pair list: if list<>save_pair[incr nB]: list:=save_pair[nB]; fi @@ -168,10 +167,10 @@ def restore_par(text t)= nA:=nB:=nC:=0; fi endfor enddef; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def beginfigm= begingroup - save ','',//,@,#,#@,##,\,\\,\*,|=,|<,**,++,_,f_ext,blen,ext,add,ang_br,fw_n,bw_n, + save ','',`,``,//,@,#,#@,##,\,\\,\*,|=,|<,**,++,_,f_ext,blen,ext,add,ang_br,fw_n,bw_n, info_cnt,bond_cntA,firstc,warning_cnt,hideH,hideH_cnt,cntM,cntA,cntB, minX,minY,maxX,maxY,posA,posM,lineB,sB,eB,angB,angA,lenB,angX,numS,sumA,bond_num,wdM,htM, chargeA,addA,add_rot,mol_pic,color_list,filter_s,no,mw,mi,fm; @@ -181,21 +180,22 @@ def beginfigm= string mi,no,fm,mw,firstc,filter_s; picture mol_pic[]; color color_list[]; - %------------------------------------------------------------------------------------------------ + %----------------------------------------------------------------------------------------------- store_par(parameter_list); no:=mc:=ex:=ad:=op:=temps:=mw:=mi:=fm:=filter_s:=""; EN:=JN:=MW:=FM:=MI:=CAS:=CAT:=EXA:=EXB:=USE:="-"; f_ext:=cntM:=mc_row:=ex_row:=ad_row:=op_row:=info_cnt:=err_cnt:=0; let ext=ext_to_fig; let add=add_to_molecule; let ++=add_to_molecule; let **=ext_to_fig; - def ' = read_ud enddef; def '' = readm enddef; def \ = drawm enddef; def \\ = putm enddef; + def ' = define_parts enddef; def '' = readm enddef; def \ = drawm enddef; def \\ = putm enddef; def \* = checkm enddef; def $ = getm enddef; def @ expr p = mposition:=p; enddef; - def # expr p = fsize:=p; enddef; def #@ expr p = fmargin:=p; enddef; + def # expr p = fsize:=p; enddef; def #@ expr p = fmargin:=p; enddef; + def `(expr s) = define_group_string(s)() enddef; def `` = define_group_string enddef; def ## expr p = msize:=p; enddef; def |=(expr n) = blength:=n; enddef; def |<(expr n) = max_blength:=n; enddef; def _ expr s = EN:=s; enddef; pcode_num:=pcode_usr_start; pcode_int:=pcode_int_start; fig_num:=fig_num+1; mol_pic[0]:=nullpicture; enddef; -%-------------------------------------------------------------------------------------------------- +%------------------------------------------------------------------------------------------------- def endfigm= %-------------------------------------------------------------------------------------------- if cntM>=1: @@ -306,14 +306,10 @@ def putm= if ex_row>=1: ext(scantokens(ex)) fi enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -vardef '(text t)= pcode_num:=pcode_num+-1; read_mcf(pcode_num)(t); pcode_num enddef; -vardef read_id(text t)= pcode_num:=pcode_num+-1; - read_mcf(pcode_num)(|,#rate_cr,t,##,(_com,_rest)); pcode_num enddef; -vardef read_ud(text t)= pcode_num:=pcode_num+-1; - read_mcf(pcode_num)(dum,dum,|,t,(_com,_rest)); pcode_num enddef; +vardef define_parts(text t)= pcode_num:=pcode_num+-1; read_mcf(pcode_num)(t); pcode_num enddef; vardef abs_adress primary n = if n LT 0:: (n+-360)-4095 else:: n-4095 fi enddef; primarydef a from_until b = (_from,a),(_until,b) enddef; -primarydef a op_plus b = read_id(a,b) enddef; +primarydef a op_plus b = define_parts(a,b) enddef; tertiarydef a bond__bond b = (a,b) enddef; tertiarydef a bond___bond b = (a+-2000,b) enddef; tertiarydef a bond____bond b = (a+-2000,b+-2000) enddef; @@ -338,19 +334,18 @@ def group_wv secondary n = /n~wv enddef; def group_nb secondary n = /n~nb endde def read_mcf(expr n)(text t)= begingroup if unknown inside_mc:: - save /,//,/*,*/,**,*/*,~,^,',`,<,>,:,=,+,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_, + save /,//,/*,*/,**,*/*,~,^,`,<,>,:,=,+,\,\\,*\,\*,*\*,@,@$,$,&,&$,#,##,{,},|,||,_, --,---,----,CP,CA,CC,DL,FR,inside_mc; inside_mc:=1; | :=mark_adress; || :=reset_adress; ##:=reset_length; _:=NO_ATOM; \:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv; - let = ==op_equ; let : ==op_col; let ^==op_hat; let ~==op_til; let > ==op_lth; let `==op_bqu; - let -- == bond__bond; let --- == bond___bond; let ---- == bond____bond; - let }==); let @$==jump_atom_abs; let < ==rot_angle; let @==jump_atom; let &==cyc_atom; - let #==chg_length; let /==group_si; let //==group_dm; let */==group_wf; let /*==group_zf; + let = ==op_equ; let : ==op_col; let ^ ==op_hat; let ~ ==op_til; let > ==op_lth; let `==op_bqu; + let -- == bond__bond; let --- == bond___bond; let ---- == bond____bond; let + ==op_plus; + let } ==); let @$ ==jump_atom_abs; let < ==rot_angle; let @ ==jump_atom; let & ==cyc_atom; + let # ==chg_length; let / ==group_si; let // ==group_dm; let */ ==group_wf; let /* ==group_zf; let */*==group_wv; let **==group_nb; let CP == pcode_add; let CA == pcode_add_adr; let FR == fuse_ring_bonds; def DL(expr p)==CA(_set_line,dl,p) enddef; def CB(expr p)==CP(_mk_bond,p) enddef; def CC(expr p)==CP(_com,p) enddef; - def $==abs_adress enddef; def &$==&.$ enddef; def '==read_id enddef; let +==op_plus; - def {==read_number( enddef; + def $==abs_adress enddef; def &$==&.$ enddef; def {==read_number( enddef; fi %---------------------------------------------------------------------------------------------- pcode_cnt[n]:=0; @@ -388,8 +383,8 @@ def expand_pcode(expr n,a)= enddef; %------------------------------------------------------------------------------------------------- vardef read_number(text t)= - save :,','`; - let : == from_until; def ' == +-2000 enddef; def '` == +-2000` enddef; + save :,'; + let : == from_until; def ' == +-2000 enddef; pcode_int:=pcode_int+-1; nA:=0; for list==t:: @@ -509,7 +504,7 @@ enddef; vardef change_atom(expr a,b)= if known b:: pcode_int:=pcode_int+-1; nC:=0; if numeric b:: - if (b GT pcode_emb_start)and(b<=pcode_atom_end):: CA(_chg_atom,b,a) + if (b GT pcode_emb_start)and(b<=pcode_atm_end):: CA(_chg_atom,b,a) ef b==NH:: CA(_chg_atom,N,a) if sw_expand==0:: CP(_tmp_line,nl) fi CC(_group_s) CA(_group_si,H,a) CC(_group_e) ef b==N?:: CA(_chg_atom,N,a) CC(_group_s) CA(_group_si,_,a) CC(_group_e) @@ -812,7 +807,9 @@ enddef; %------------------------------------------------------------------------------------------------- def add_group= if f_at=1: nE:=getA(adrT); check_adrA(nE); else: nE:=cntA+1; fi - group_cnt[incr group_num]:=0; store_group(_jp_absA,nE) store_group(_com,_len_s) + group_cnt[incr group_num]:=0; store_group(_jp_absA,nE) + store_group(_com,_mark) + store_group(_com,_len_s) if lineT<>nb: store_group(_tmp_line,lineT) fi if rotT<>0: store_group(_rot_ang,rotT) fi if lenT<>rate_cr: store_group(_chg_len,lenT) @@ -825,6 +822,7 @@ def add_group= for i=1 upto pcode_cnt[nP]: store_group(pcode_com[nP][i],pcode_par[nP][i]) endfor fi store_group(_com,_len_e) store_group(_chg_env,hz) store_group(_com,_term) + store_group(_com,_rest) if f_lineT=0: lineT:=si; fi if f_lenT=0: lenT:=rate_cr; fi if f_rotT=0: rotT:=0; fi @@ -898,12 +896,12 @@ enddef; %------------------------------------------------------------------------------------------------- vardef arrange_ang(expr n)= if cntB=0: angT:=(angT-180) mod 360; 180 - else: if envB>=pcode_emb_start: pcode_par[envB][cntB-temp_cntB+3] - else: if envB=hz: if n=0: 60 ef n<=90: -60 ef n<=180: 60 ef n<270: -60 else: 60 fi - ef envB=vt: if n=0: -60 ef n<90: 60 ef n<=180: -60 ef n<=270: 60 else: -60 fi - ef abs(envB)<=180: envB - fi - fi + else: if envB>=pcode_emb_start: pcode_par[envB][cntB-temp_cntB] + else: if envB=hz: if n=0: 60 ef n<=90: -60 ef n<=180: 60 ef n<270: -60 else: 60 fi + ef envB=vt: if n=0: -60 ef n<90: 60 ef n<=180: -60 ef n<=270: 60 else: -60 fi + ef abs(envB)<=180: envB + fi + fi fi enddef; %------------------------------------------------------------------------------------------------- @@ -1351,14 +1349,14 @@ vardef bond_stereo(expr n)= vardef bond_config(expr n)= if (n=wf)or(n=zb)or(n=bd): 1 ef (n=zf)or(n=wb)or(n=dt): 3 ef n=wv: 2 else: 0 fi enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -vardef TA(expr s,WT,MI)= +vardef define_atom(expr s,WT,MI)= str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; pcode_num:=pcode_num+1; pcode_com[pcode_num][1]:=_set_atom; pcode_par[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1; str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0; tbl_atom_wt[tbl_cnt]:=WT; tbl_atom_mi[tbl_cnt]:=MI; pcode_num enddef; %------------------------------------------------------------------------------------------------- -vardef TB(expr s)(text t)= +vardef define_group_string(expr s)(text t)= str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; pcode_num:=pcode_num+1; pcode_com[pcode_num][1]:=_set_atom; pcode_par[pcode_num][1]:=str_cnt; pcode_cnt[pcode_num]:=1; str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0; @@ -1366,98 +1364,103 @@ vardef TB(expr s)(text t)= pcode_num enddef; %================================================================================================= -pcode_int:=pcode_emi_start; pcode_num:=pcode_emb_start; -%------------------------------------------------------------------------------------------------- -C:= TA("C" ,12.0107, 12.0000000); H:= TA("H" , 1.00794, 1.00782503223); -D:= TA("D" ,2.012, 2.01410177812); Ag:=TA("{Ag}",107.868, 106.905095); -Al:=TA("{Al}",26.9815, 26.98153853); As:=TA("{As}",74.9216, 74.92159457); -B:= TA("B" ,10.811, 11.00930536); Ba:=TA("{Ba}",137.33, 136.905816); -Be:=TA("{Be}",9.01218, 0); -Bi:=TA("{Bi}",208.9804, 208.980338); Br:=TA("{Br}",79.904, 78.9183376); -Ca:=TA("{Ca}",40.078, 39.962590863); Cd:=TA("{Cd}",112.41, 110.904182); -Cl:=TA("{Cl}",35.453, 34.968852); Co:=TA("{Co}",58.933194, 58.93319429); -Cr:=TA("{Cr}",51.9961, 51.94050623); Cs:=TA("{Cs}",132.905, 132.90543); -Cu:=TA("{Cu}",63.546, 62.92959772); -F:= TA("F" ,18.9984, 18.99840316273); Fe:=TA("{Fe}",55.845, 55.93493633); -Hg:=TA("{Hg}",200.59, 201.97064340); I:= TA("I" ,126.90447,126.9044719); -K:= TA("K" ,39.0983, 38.9637064864); Li:=TA("{Li}",6.941, 7.0160034366); -Mg:=TA("{Mg}",24.305, 23.985041697); Mn:=TA("{Mn}",54.938044, 54.93804391); -Mo:=TA("{Mo}",95.95, 0); -N:= TA("N" ,14.0067, 14.00307400443); Na:=TA("{Na}",22.98977, 22.9897692820); -Ni:=TA("{Ni}",58.693, 57.93534241); O:= TA("O" ,15.9994, 15.99491461957); -P:= TA("P" ,30.973762, 30.97376199842); Pb:=TA("{Pb}",207.2, 205.974455); -Pd:=TA("{Pd}",106.4, 107.905075); -S:= TA("S" ,32.065, 31.9720711744); Sb:=TA("{Sb}",121.75, 120.90381); -Se:=TA("{Se}",78.971, 79.9165218); Si:=TA("{Si}",28.0855, 27.97692653465); -Sn:=TA("{Sn}",118.71, 119.90220163); Ta:=TA("{Ta}",180.948, 0); -Te:=TA("{Te}",127.60, 129.90623); Ti:=TA("{Ti}",47.867, 47.94794198); -U:= TA("U", 238.0289, 238.05079); V:= TA("V", 50.9415, 50.943957); -W:= TA("W", 183.85, 181.948225); Zn:=TA("{Zn}",65.409, 63.92914201); -NO_ATOM:=TA("",0,0); -tbl_atom_end:=tbl_cnt; -%------------------------------------------------------------------------------------------------- -if sw_expand=0: - CH3:=TB("C{H_3_}")(C,H,H,H); CH2:=TB("C{H_3_}")(C,H,H); CN:=TB("CN")(C,N); OH:=TB("OH")(O,H); - COOH:=TB("COOH")(C,O,O,H); COONa:=TB("COO{Na}")(C,O,O,Na); CHO:=TB("CHO")(C,H,O); - NO:=TB("NO")(N,O); NO2:=TB("N{O_2_}")(N,O,O); NH2:=TB("N{H_2_}")(N,H,H); - SH:= TB("SH")(S,H); SO2H:=TB("S{O_2_}H")(S,O,O,H); SO3H:=TB("S{O_3_}H")(S,O,O,O,H); - ONa:=TB("O{Na}")(O,Na); SO3Na:=TB("S{O_3_}{Na}")(S,O,O,O,Na); -fi -%------------------------------------------------------------------------------------------------- -tbl_group_end:=tbl_cnt; pcode_atom_end:=pcode_num; -%================================================================================================= -?:=(_group_si,NO_ATOM); ?w:=(_group_wf,NO_ATOM); ?z:=(_group_zf,NO_ATOM); ?O:=(_group_dm,O); -for i=3 upto 20: ?[i]:='((_com,_len_ss),(_get_len,_ring_len),<((-180 DIV i)-90) - for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),(_com,_len_ee)); -endfor -Ph:=Ph1:='(?6,-2=dl,-4=dl,-6=dl); Ph2:='(?6,-1=dl,-3=dl,-5=dl); -for i=5,6,7,8: for j=11 upto 15: ?[i][j]:='((i,j)); endfor endfor -%------------------------------------------------------------------------------------------------- -!:=!1:='((_mk_bond,_arrange_ang)); !db:=!d:='(!~db); !tm:=!t:='(!~tm); !wf:=!w:='(!~wf); -!zf:=!z:='(!~zf); !wb:='(!~wb); !zb:='(!~zb); !dl:='(!~dl); !dr:='(!~dr); !dm:='(!~dm); -for i==2 upto 20: - ![i]:='((_com,_len_ss),(_get_len,_tmp_len),! for j==2 upto i::,! endfor ,(_com,_len_ee)); -endfor -?!:='(/_,!); ?!d:='(/_,!d); ?!2:='(/_,!2); ??!:='(/_,/_^60,60); ??:='(/_^35,/_^-35); -!?:='(!,/_); !?!:='(!?,!); !??!:='(!,??,!); ?2:='(/!); !?2:='(!,?2); ?2!:='(?2,!); !?2!:='(!?2,!); -NH:='(N,/H~nl); n_:='((_set_add,MIS)); p_:='((_set_add,PLS)); -zero_wf:='(0~wf); zero_zf:='(0~zf); zero_dm:='(0~dm); zero_wv:='(0~wv); -mark_adress:='((_com,_mark)); reset_adress:='((_com,_moff)); reset_length:='((_com,_len_e)); -%------------------------------------------------------------------------------------------------- -if sw_expand=1: - CH3:='(/H,/H^60,/H^-60); NH:='(N,/H); NH2:='(N,/H^60,/H^-60); NO2:='(N,//O^60,//O^-60); - OH:='(O,!,H); NO:='(N,//O); CONH2:='(//O,!,NH2); SH:='(S,!,H); SO2H:='(S,//O^60,/OH^-60); - SO3H:='(S,/OH,//O^60,//O^-60); CHO:='(//O^-60,/H^60); COOH:='(//O^-60,/OH^60); CN:='(!~tm,N); - ONa:='(O,!,Na); SO3Na:='(S,/ONa,//O^60,//O^-60); -fi -%------------------------------------------------------------------------------------------------- -?F!F:='(/F,60,F); ?Cl!Cl:='(/Cl,60,Cl); ?Br!Br:='(/Br,60,Br); ?F?F!F:='(/F,/F^60,60,F); -?Cl?Cl!Cl:='(/Cl,/Cl^60,60,Cl); -%------------------------------------------------------------------------------------------------- -N!:='(N,!); N?:='(N,/_); N!2:='(N,!3); N!2:='(N,!3); !N:='(!,N); -N?!:='(N,?!); N?2:='(N,?2); N?2!:='(N?2,!); N?!2:='(N,?!2); -S?O:='(S,?O); S?O!:='(S?O,!); ?O?O:='(?O^-35,?O^35); S?O?O:='(S,?O?O); S?O?O!:='(S?O?O,!); -O!:='(O,!); O!2:='(O,!2); O!3:='(O,!3); S!:='(S,!); S!2:='(S,!2); S!3:='(S,!3); -%------------------------------------------------------------------------------------------------- -?O!:='(?O,!); ?O!2:='(?O,!2); ?O!3:='(?O,!3); !?O:='(!,?O); !?O!:='(!,?O!); -NH!:='(NH,!); NH!2:='(NH,!2); !NH:='(!,NH);!NH!:='(!,NH!); ?NH2:='(/NH2); ?NH:='(//NH); -%------------------------------------------------------------------------------------------------- -!OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); !S?O:='(!,S?O); !O:='(!,O); !dO:='(!d,O); -!O!:='(!,O!); !O!2:='(!,O!2); !O!3:='(!,O!3); !S!:='(!,S!); !S!2:='(!,S!2); !S!3:='(!,S!3); -!COOH:='(!,COOH); ?COOH:='(/COOH); !CH3:='(!,CH3); !CN:='(!,CN); !CHO:='(!,CHO); !NO2:='(!,NO2); -!Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F); !?F!F:='(!,?F!F); !?Cl!Cl:='(!,?Cl!Cl); -!?F?F!F:='(!,?F?F!F); !?Cl?Cl!Cl:='(!,?Cl?Cl!Cl); -!?3:='(!,?3); !?4:='(!,?4); !?5:='(!,?5); !?6:='(!,?6); !?7:='(!,?7); !?8:='(!,?8); !Ph:='(!,Ph); -?H:='(/H); ?F:='(/F); ?Cl:='(/Cl); ?OH:='(/OH); !?OH:='(!,?OH); ?OH!:='(?OH,!); -%------------------------------------------------------------------------------------------------- -lr:='(0,0,0,60 for i==1 upto 10:: ,-60,60 endfor); -rl:='(0,0,0,-60 for i==1 upto 10:: ,60,-60 endfor); -%------------------------------------------------------------------------------------------------- -R:='("R"); R1:='("{R^1^}"); R2:='("{R^2^}"); R3:='("{R^3^}"); R4:='("R^4^"); R5:='("{R^5^}"); -R6:='("R6"); R7:='("{R^7^}"); R8:='("{R^8^}"); R9:='("{R^9^}"); R10:='("R^10^");R11:='("{R^11^}"); +def define_atom_group_parts= + save `,``,'; + def `=define_atom enddef; def ``=define_group_string enddef; def '= define_parts enddef; + pcode_int:=pcode_emi_start; pcode_num:=pcode_emb_start; + ?3:=?20:=Ph:=Ph1:=Ph2:=hz:=0; vt:=1; + %----------------------------------------------------------------------------------------------- + C:= `("C" ,12.0107, 12.0000000); H:= `("H" , 1.00794, 1.00782503223); + D:= `("D" ,2.012, 2.01410177812); Ag:=`("{Ag}",107.868, 106.905095); + Al:=`("{Al}",26.9815, 26.98153853); As:=`("{As}",74.9216, 74.92159457); + B:= `("B" ,10.811, 11.00930536); Ba:=`("{Ba}",137.33, 136.905816); + Be:=`("{Be}",9.01218, 0); + Bi:=`("{Bi}",208.9804, 208.980338); Br:=`("{Br}",79.904, 78.9183376); + Ca:=`("{Ca}",40.078, 39.962590863); Cd:=`("{Cd}",112.41, 110.904182); + Cl:=`("{Cl}",35.453, 34.968852); Co:=`("{Co}",58.933194, 58.93319429); + Cr:=`("{Cr}",51.9961, 51.94050623); Cs:=`("{Cs}",132.905, 132.90543); + Cu:=`("{Cu}",63.546, 62.92959772); + F:= `("F" ,18.9984, 18.99840316273); Fe:=`("{Fe}",55.845, 55.93493633); + Hg:=`("{Hg}",200.59, 201.97064340); I:= `("I" ,126.90447,126.9044719); + K:= `("K" ,39.0983, 38.9637064864); Li:=`("{Li}",6.941, 7.0160034366); + Mg:=`("{Mg}",24.305, 23.985041697); Mn:=`("{Mn}",54.938044, 54.93804391); + Mo:=`("{Mo}",95.95, 0); + N:= `("N" ,14.0067, 14.00307400443); Na:=`("{Na}",22.98977, 22.9897692820); + Ni:=`("{Ni}",58.693, 57.93534241); O:= `("O" ,15.9994, 15.99491461957); + P:= `("P" ,30.973762, 30.97376199842); Pb:=`("{Pb}",207.2, 205.974455); + Pd:=`("{Pd}",106.4, 107.905075); + S:= `("S" ,32.065, 31.9720711744); Sb:=`("{Sb}",121.75, 120.90381); + Se:=`("{Se}",78.971, 79.9165218); Si:=`("{Si}",28.0855, 27.97692653465); + Sn:=`("{Sn}",118.71, 119.90220163); Ta:=`("{Ta}",180.948, 0); + Te:=`("{Te}",127.60, 129.90623); Ti:=`("{Ti}",47.867, 47.94794198); + U:= `("U", 238.0289, 238.05079); V:= `("V", 50.9415, 50.943957); + W:= `("W", 183.85, 181.948225); Zn:=`("{Zn}",65.409, 63.92914201); + NO_ATOM:=`("",0,0); + tbl_atom_end:=tbl_cnt; + %----------------------------------------------------------------------------------------------- + if sw_expand=0: + CH3:=``("C{H_3_}")(C,H,H,H); CH2:=``("C{H_3_}")(C,H,H); CN:=``("CN")(C,N); OH:=``("OH")(O,H); + COOH:=``("COOH")(C,O,O,H); COONa:=``("COO{Na}")(C,O,O,Na); CHO:=``("CHO")(C,H,O); + NO:=``("NO")(N,O); NO2:=``("N{O_2_}")(N,O,O); NH2:=``("N{H_2_}")(N,H,H); + SH:= ``("SH")(S,H); SO2H:=``("S{O_2_}H")(S,O,O,H); SO3H:=``("S{O_3_}H")(S,O,O,O,H); + ONa:=``("O{Na}")(O,Na); SO3Na:=``("S{O_3_}{Na}")(S,O,O,O,Na); + fi + %----------------------------------------------------------------------------------------------- + tbl_group_end:=tbl_cnt; pcode_atm_end:=pcode_num; + ?:=(_group_si,NO_ATOM); ?wf:=?w:=(_group_si,NO_ATOM); ?zf:=?z:=(_group_si,NO_ATOM); + ?O:=(_group_dm,O); NH:='(N,/H~nl); ?NH:=(_group_dm,NH); + %----------------------------------------------------------------------------------------------- + ?H:='(/H); ?F:='(/F); ?Cl:='(/Cl); ?OH:='(/OH); ?OH:='(/COOH); ?NH2:='(/NH2); + for i=3 upto 20: ?[i]:='((_com,_len_ss),(_get_len,_ring_len),<((-180 DIV i)-90) + for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),(_com,_len_ee)); + endfor + Ph:=Ph1:='(?6,-2=dl,-4=dl,-6=dl); Ph2:='(?6,-1=dl,-3=dl,-5=dl); + for i=5,6,7,8: for j=11 upto 15: ?[i][j]:='((i,j)); endfor endfor + %----------------------------------------------------------------------------------------------- + !:=!1:='((_mk_bond,_arrange_ang)); !db:=!d:='(!~db); !tm:=!t:='(!~tm); !wf:=!w:='(!~wf); + !zf:=!z:='(!~zf); !wb:='(!~wb); !zb:='(!~zb); !dl:='(!~dl); !dr:='(!~dr); !dm:='(!~dm); + for i==2 upto 20: + ![i]:='((_com,_len_ss),(_get_len,_tmp_len),! for j==2 upto i::,! endfor ,(_com,_len_ee)); + endfor + ?!:='(/_,!); ?!d:='(/_,!d); ?!2:='(/_,!2); ??!:='(/_,/_^60,60); ??:='(/_^35,/_^-35); + !?:='(!,/_); !?!:='(!?,!); !??!:='(!,??,!); ?2:='(/!); !?2:='(!,?2); ?2!:='(?2,!); + n_:='((_set_add,MIS)); p_:='((_set_add,PLS)); + zero_wf:='(0~wf); zero_zf:='(0~zf); zero_dm:='(0~dm); zero_wv:='(0~wv); + mark_adress:='((_com,_mark)); reset_adress:='((_com,_moff)); reset_length:='((_com,_len_e)); + %----------------------------------------------------------------------------------------------- + if sw_expand=1: + CH3:='(/H,/H^60,/H^-60); NH:='(N,/H); NH2:='(N,/H^60,/H^-60); NO2:='(N,//O^60,//O^-60); + OH:='(O,!,H); NO:='(N,//O); CONH2:='(//O,!,NH2); SH:='(S,!,H); SO2H:='(S,//O^60,/OH^-60); + SO3H:='(S,/OH,//O^60,//O^-60); CHO:='(//O^-60,/H^60); COOH:='(//O^-60,/OH^60); CN:='(!~tm,N); + ONa:='(O,!,Na); SO3Na:='(S,/ONa,//O^60,//O^-60); + fi + %----------------------------------------------------------------------------------------------- + ?F!F:='(/F,60,F); ?Cl!Cl:='(/Cl,60,Cl); ?Br!Br:='(/Br,60,Br); ?F?F!F:='(/F,/F^60,60,F); + ?Cl?Cl!Cl:='(/Cl,/Cl^60,60,Cl); + %----------------------------------------------------------------------------------------------- + N!:='(N,!); N?:='(N,/_); N!2:='(N,!3); N!2:='(N,!3); !N:='(!,N); + N?!:='(N,?!); N?2:='(N,?2); N?2!:='(N?2,!); N?!2:='(N,?!2); + S?O:='(S,?O); S?O!:='(S?O,!); ?O?O:='(?O^-35,?O^35); S?O?O:='(S,?O?O); S?O?O!:='(S?O?O,!); + O!:='(O,!); O!2:='(O,!2); O!3:='(O,!3); S!:='(S,!); S!2:='(S,!2); S!3:='(S,!3); + %----------------------------------------------------------------------------------------------- + ?O!:='(?O,!); ?O!2:='(?O,!2); ?O!3:='(?O,!3); !?O:='(!,?O); !?O!:='(!,?O!); + NH!:='(NH,!); NH!2:='(NH,!2); !NH:='(!,NH); !NH!:='(!,NH!); + %----------------------------------------------------------------------------------------------- + !OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); !S?O:='(!,S?O); !O:='(!,O); !dO:='(!d,O); + !O!:='(!,O!); !O!2:='(!,O!2); !O!3:='(!,O!3); !S!:='(!,S!); !S!2:='(!,S!2); !S!3:='(!,S!3); + !COOH:='(!,COOH); ?COOH:='(/COOH); !CH3:='(!,CH3); !CN:='(!,CN); !CHO:='(!,CHO); !NO2:='(!,NO2); + !Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F); !?F!F:='(!,?F!F); !?Cl!Cl:='(!,?Cl!Cl); + !?F?F!F:='(!,?F?F!F); !?Cl?Cl!Cl:='(!,?Cl?Cl!Cl); + !?3:='(!,?3); !?4:='(!,?4); !?5:='(!,?5); !?6:='(!,?6); !?7:='(!,?7); !?8:='(!,?8); + !Ph:='(!,Ph); !?OH:='(!,?OH); ?OH!:='(?OH,!); + %----------------------------------------------------------------------------------------------- + lr:='(60 for i==1 upto 10:: ,-60,60 endfor); rl:='(-60 for i==1 upto 10:: ,60,-60 endfor); + %----------------------------------------------------------------------------------------------- + hexose_hp:='(#1.4,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##); + Pyranose_hp:='(#1.4,-35~wf_r,35~bd_r`1,30~wb_r,130`1.66,O,&1,##); +enddef; %------------------------------------------------------------------------------------------------- -hexose_hp:='(#1.4,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##); -Pyranose_hp:='(#1.4,-35~wf_r,35~bd_r`1,30~wb_r,130`1.66,O,&1,##); +define_atom_group_parts; %================================================================================================= init_par(parameter_list); %------------------------------------------------------------------------------------------------- diff --git a/graphics/mcf2graph/mcf_exa_soc.mp b/graphics/mcf2graph/mcf_exa_soc.mp index b80ca603d6..e746f27a20 100644 --- a/graphics/mcf2graph/mcf_exa_soc.mp +++ b/graphics/mcf2graph/mcf_exa_soc.mp @@ -1,8 +1,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% MCF metapost souce file example by Akira Yamaji 2024.01.21 +% MCF metapost souce file example by Akira Yamaji 2024.02.12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.11 -message "* mcf_template 2024.01.21"; +if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.12 +message "* mcf_template 2024.02.12"; message ""; %------------------------------------------------------------------------------ fsize:=(30mm,20mm); @@ -22,7 +22,7 @@ max_blength:=4mm; %%%%loadm("EN<>*"); % select all loadm("EXA=1"); % select EXA=1 %------------------------------------------------------------------------------ -for i=1 upto ucount: beginfigm $(i) \\ endfigm endfor +for i=1 upto ucount: beginfigm $(i) \\ endfigm endfor %****************************************************************************** %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bye diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf index aa3ba32aa8..efd7084173 100644 Binary files a/graphics/mcf2graph/mcf_example.pdf and b/graphics/mcf2graph/mcf_example.pdf differ diff --git a/graphics/mcf2graph/mcf_example.tex b/graphics/mcf2graph/mcf_example.tex index 257d3b40f8..e4464a0e43 100644 --- a/graphics/mcf2graph/mcf_example.tex +++ b/graphics/mcf2graph/mcf_example.tex @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2024.01.21 +% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2024.02.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% ** mcf2graph.mf must be version 5.11 +% ** mcf2graph.mf must be version 5.12 % ** use mcf_library.mcf % ** typeset by LuaLaTeX(luamplib) %------------------------------------------------------------------------- @@ -29,7 +29,7 @@ Author : Akira Yamaji \quad Date : \today \\ Located at : http://www.ctan.org/pkg/mcf2graph \end{center} -{\small *use 'mcf2grapf.mp' ver 5.10 \quad +{\small *use 'mcf2grapf.mp' ver 5.12 \quad *typeset with LuaLaTeX \quad *use molecular library file 'main\_lib.mcf' \\ ** FM(fm):molecular formula (calculated) \quad diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf index e0e87b0248..4609060af5 100644 Binary files a/graphics/mcf2graph/mcf_manual.pdf and b/graphics/mcf2graph/mcf_manual.pdf differ diff --git a/graphics/mcf2graph/mcf_manual.tex b/graphics/mcf2graph/mcf_manual.tex index 3c79a1b095..aeae9c96d7 100644 --- a/graphics/mcf2graph/mcf_manual.tex +++ b/graphics/mcf2graph/mcf_manual.tex @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format manual by Akira Yamaji 2024.01.21 +% Molecular Coding Format manual by Akira Yamaji 2024.02.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% ** mcf2graph.mf must be version 5.11 +% ** mcf2graph.mf must be version 5.12 % ** use main_lib.mcf % ** typeset by LuaLaTeX(luamplib) %---------------------------------------------------------------------------- @@ -37,7 +37,7 @@ \author{Akira Yamaji} \date{\today} \maketitle -\begin{center} mcf2graph version 5.03 \end{center} +\begin{center} mcf2graph version 5.12 \end{center} \begin{center} Located at http://www.ctan.org/pkg/mcf2graph \end{center} \begin{center} Suggestion or request mail to: mcf2graph@gmail.com \end{center} %----------------------------------------------------------------------------- @@ -1071,13 +1071,23 @@ endfigm \begin{mplibcode} beginfigm %%%%% EN:Left-right_right-left - #(40mm,20mm); - sw_trimming:=1; - \(<30,!4,2:/!6>30,4:/!4>-45) + #(40mm,18mm); + sw_trimming:=0; + \(<-30,!6, + {3^-30,3,3^30}:/!3>lr, + {5^-30,5,5^30}:/!3>rl) + ++(defaultscale:=0.5; labeloffset:=2bp; + label.lft(">lr",A11); + label.lft(">lr",A15); + label.lft(">lr",A19); + label.rt(">rl",A23); + label.rt(">rl",A27); + label.rt(">rl",A31); + ) endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Fixed rotate angle} +\subsubsection{Rotate fixed angle} \index{\textgreater}% \begin{verbatim} >n : rotate n @@ -1093,10 +1103,14 @@ beginfigm #(40mm,20mm); sw_trimming:=1; \(<30,!4,2:/!6>30,4:/!4>-45) + ++(defaultscale:=0.5; labeloffset:=2bp; + label.bot(">30",A12); + label.bot(">45",A17); + ) endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Multiple rotate angle} +\subsubsection{Rotate multiple angle} \begin{verbatim} >'(90,-90,...) : rotate 90,-90,... @@ -1106,8 +1120,15 @@ endfigm \begin{mplibcode} beginfigm #(60mm,20mm); - sw_trimming:=1; \(<30,!6,6>'(90,-90,90,-90,90):/!5) + ++(defaultscale:=0.5; labeloffset:=2bp; + label.lft(">'(90,-90,90,-90,90)",A13); + label.rt(">90",A12); + label.lft(">-90",A11); + label.rt(">90",A10); + label.lft(">-90",A9); + label.rt(">90",A8); + ) endfigm \end{mplibcode} %----------------------------------------------------------------------------- @@ -1118,20 +1139,21 @@ endfigm \index{NH}% \index{N"!}% \index{N"!2}% -\index{SO}% -\index{SOO}% +\index{S?O}% +\index{S?O?O}% \begin{verbatim} -NH : N,/H~nl N? : N,/_ N?2 : N,/! -S?O : S,//O S?O?O : S,//O^35,//^-35 +NH : N,/H~nl N? : N,/_ +N?2 : N,/! S?O : S,//O +S?O?O : S,//O^35,//^-35 <-30,!2,NH,!2,N?,!2,N?2,S?O,!2,S?O?O,! \end{verbatim} %----------------------------------------- \begin{mplibcode} beginfigm -#(60mm,12mm); +#(60mm,10mm); sw_trimming:=1; -\(<-30,!2,NH,!2,N?,!2,N?2,!2,S?O,!2,S?O?O,!) +\(<-30,!2`1.2,NH,!2`1.2,N?,!2`1.2,N?2,!2`1.2,S?O,!2`1.2,S?O?O,!`1.2) endfigm \end{mplibcode} %----------------------------------------------------------------------------- @@ -1150,16 +1172,24 @@ endfigm beginfigm #(60mm,10mm); sw_trimming:=1; -\(<30,!11`1,2:??,4:/!,6:/?!,8:/??!,10:/N?!) +\(<30,!11`1.2,2:??,4:/!,6:/?!,8:/??!,10:/N?!) endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{User definition} +\subsubsection{Define group,parts} +\index{'}% +\index{`}% +\index{``}% \begin{verbatim} -'(..) : user defined parts +`(..) : define group +``(..)(..) : define group with atoms +'(..) : define parts +CF3:=`("{CF3}"); % ** group weight =0 +CF3:=``("{CF3}")(C,F,F,F); + ** group weight =12(C)+19(F)*3=69 iBuOH:='(!?!,OH); -\(<30,?6,{4,6}:/iBuOH) +\(<30,?6,{4,6}:/iBuOH,3:/CF3) \end{verbatim} %----------------------------------------- \begin{mplibcode} @@ -1167,17 +1197,18 @@ beginfigm #(60mm,10mm); sw_trimming:=1; iBuOH:='(!?!,OH); - \(<30,?6,{4,6}:/iBuOH) + CF3:=``("{CF3}")(C,F,F,F); + \(<30,?6,{4,6}:/iBuOH,3:/CF3) endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Inline definition} +\subsubsection{Concatenate group,parts} \index{+}% \begin{verbatim} a+b : '(a,b) +/!?!+OH : /'(!?!,OH) <30,!8,{2,6}:/!?!+OH - <30,!8,{2,6}:/'(!?!,OH) \end{verbatim} %----------------------------------------- \begin{mplibcode} @@ -1188,8 +1219,8 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Move position} -\index{"@()}% +\subsubsection{Move position [ @{ }]} +\index{@}% \begin{verbatim} @(x,y) : Move l*(x,y) from current position @$(x,y): Move l*(x,y) from origin(@1) @@ -1203,13 +1234,15 @@ beginfigm #(70mm,13mm) #@(2mm,1mm) sw_trimming:=1; \(<30,?6,@3,\,!3,//O,!,O,n_^60,@$(6,1),H,p_^15) - ++(drawdot A1 withpen pencircle scaled 2bp; + ++(drawdot A1 withpen pencircle scaled 3bp; + drawdot A12 withpen pencircle scaled 3bp; pickup pencircle scaled 0.1bp; for i=0 upto 6: - draw (A1+(l*i,l-3bp))--(l*i,l+3bp); + draw (A1+(l*i,l-4bp))--(l*i,l+4bp); endfor draw A1--(A1+(0,1l))--A1+(6l,1l); - draw (A1+(0,1l))--(A1+(-3bp,1l)); + draw (A1+(-4bp,1l))--(A1+(4bp,1l)); + draw (A1+(-4bp,0))--(A1+(4bp,0)); ) endfigm \end{mplibcode} @@ -1223,37 +1256,28 @@ endfigm %----------------------------------------- \begin{mplibcode} beginfigm - #(75mm,13mm) |<(8mm) + #(75mm,12mm) |<(8mm) sw_numbering:=Atom; numbering_end:=15; \(<30,!14,{2,6:10,14}:/_~bd_r`0.5) endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\newpage \subsubsection{Change color} \index{red}% \index{blue}% \index{green}% \begin{verbatim} beginfigm - \( - <30,Ph,{2,5}:N,3:/NH2,4:/COOH, - %--------------------- - 2:red, % red A2 - 5:blue, % blue A5 - 3=green % green B3 - %--------------------- - ) + \(<30,Ph,{2,5}:N,3:/NH2,4:/COOH, + 2:red, 5:blue, 3=green) endfigm \end{verbatim} %----------------------------------------- \begin{mplibcode} beginfigm - #(50mm,20mm) |<(8mm) - \( - <30,Ph,{2,5}:N,3:/NH2,4:/COOH, - 2:red,5:blue,3=green - ) + #(50mm,18mm) |<(8mm) + \(<30,Ph,{2,5}:N,3:/NH2,4:/COOH, + 2:red,5:blue,3=green) endfigm \end{mplibcode} %----------------------------------------------------------------------------- @@ -1270,7 +1294,7 @@ endfigm %----------------------------------------- \begin{mplibcode} beginfigm - #(50mm,20mm) |<(8mm) + #(50mm,18mm) |<(8mm) atomfont:="cmr8"; \(<30,Ph,{2,5}:N,3:/NH2,4:/COOH) endfigm @@ -1303,7 +1327,7 @@ endfigm %------------------------------------------------------------------------------ \subsection{Size/Ratio parameter} %----------------------------------------------------------------------------- -\subsubsection{Bond length [ \textbar=() ]} +\subsubsection{Bond length [ \textbar={ }]} \index{blength}% \index{\textbar=()}% \begin{verbatim} @@ -1372,7 +1396,7 @@ endfigm %------------------------------------------------------------------------------ \subsubsection{Molecular size} \index{msize}% -\index{\#\#()}% +\index{\#\#}% \begin{verbatim} ##(1,1) : msize=(1,1) ** default ## p : abbreviated form of msize:=p; @@ -1483,7 +1507,7 @@ endfigm %------------------------------------------------------------------------------ \subsection{Size parameter} %----------------------------------------------------------------------------- -\subsubsection{Figure size [ \#(){ }]} +\subsubsection{Figure size [ \#{ }]} \index{fsize}% \index{\#()}% \begin{verbatim} @@ -1509,7 +1533,7 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Figure margin [ \#@(){ }]} +\subsubsection{Figure margin [ \#@{ }]} \index{fmargin}% \index{\#"@()}% \begin{verbatim} @@ -1617,7 +1641,7 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Max bond length [ \textbar\textless=(){ }]} +\subsubsection{Max bond length [ \textbar\textless{ }]} \index{max\_blength}% \index{\textbar\textless()}% \begin{verbatim} @@ -1744,7 +1768,7 @@ endfigm %----------------------------------------------------------------------------- \subsubsection{Figure atom gap/atom length} \index{ratio\_atomgap\_atom}% -\index{readm()}% +\index{readm}% \begin{verbatim} default: ratio_atomgap_atom= 0.050 \end{verbatim} @@ -1862,8 +1886,7 @@ endfigm \begin{verbatim} sw_trimming:=0; ** default ##(1,0.7) -@(0.2,0.3)\(Ph) -@(0.8,0.7)\(Ph) +@(0.2,0.3)\(Ph) @(0.8,0.7)\(Ph) \end{verbatim} %------------------------------------------------------ \begin{mplibcode} @@ -1877,8 +1900,7 @@ endfigm %------------------------------------------------------ \begin{verbatim} sw_trimming:=1; -@(0.2,0.3)\(Ph) -@(0.8,0.7)\(Ph) +@(0.2,0.3)\(Ph) @(0.8,0.7)\(Ph) \end{verbatim} %------------------------------------------------------ \begin{mplibcode} @@ -1894,19 +1916,22 @@ endfigm \subsubsection{Expand mode} \index{sw\_expand}% \begin{verbatim} -@(0, .5)\(<30,Ph,4:/COOH,3:/NH2) +** put before input mcf2graph sw_expand:=1; +input mcf2graph.mp; + +(sw_expand=0) ** default +@(0, .5)\(<30,Ph,4:/COOH,3:/NH2) +(sw_expand=1) @(1, .5)\(<30,Ph,4:/COOH,3:/NH2) -** default: sw_expand=0 \end{verbatim} %------------------------------------------------------ \begin{mplibcode} beginfigm - ''("<30,Ph,4:/COOH,3:/NH2") - #(60mm,20mm) - @(0, .5)\(scantokens(mc)) + #(60mm,15mm) + @(0, .5)\(<30,Ph,1:/COOH,3:/NH2) sw_expand:=1; - @(1, .5)\(scantokens(mc)) + @(1, .5)\(<30,Ph,1:/'(//O^-60,/OH^60),3:/'(N,/H^60,/H^-60)) endfigm \end{mplibcode} %----------------------------------------------------------------------------- @@ -2094,9 +2119,9 @@ ratio_thickness_bond:=save_ratio; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Command} %----------------------------------------------------------------------------- -\subsection{drawm [ \textbackslash() ]} +\subsection{drawm [ \textbackslash{ }]} \index{drawm}% -\index{\textbackslash()}% +\index{\textbackslash}% \begin{verbatim} (Draw molecule) @@ -2121,7 +2146,7 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsection{readm() [ ''() ]} +\subsection{readm [ ' ' ]} \index{readm()}% \index{''}% \begin{verbatim} @@ -2135,7 +2160,7 @@ readm(string1,string2, ...); " @9,\,NH,!,//O,! ") \end{verbatim} %----------------------------------------------------------------------------- -\subsection{checkm() [ \textbackslash*(){ }]} +\subsection{checkm [ \textbackslash*{ }]} \index{checkm()}% \index{\textbackslash*()}% \begin{verbatim} @@ -2167,10 +2192,10 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsection{getm() [ \$() ]} -\index{getm()}% +\subsection{getm [ \$ ]} +\index{getm}% \index{ucount}% -\index{\$()}% +\index{\$}% \begin{verbatim} getm(number) ** number = numeric @@ -2209,9 +2234,9 @@ putm: put figure \end{verbatim} %=============================================================================== \newpage -\subsection{add()} -\index{add()}% -\index{++()}% +\subsection{add [ ++ ]} +\index{add}% +\index{++}% \index{plus}% \index{minus}% \index{lonepair}% @@ -2405,9 +2430,9 @@ endfigm \end{mplibcode} %----------------------------------------------------------------------------- \newpage -\subsection{ext()} -\index{ext()}% -\index{**()}% +\subsection{ext [ ** ]} +\index{ext}% +\index{**}% \index{w0}% \index{h0}% \index{aw}% @@ -2436,24 +2461,22 @@ ratio_thickness_char: pen thickness / char width %---------------------------------------- beginfigm - #(70mm,30mm) |=(0.065) + #(70mm,30mm) + |=(0.065) %--------------------------------------- - @(0.1,0.5)\( - <-210,60`1,60`1,60`1,{1,3}=dl, - 1:/R1,4:/R2^-60 + @(0.1,0.5) + \(<-210,60`1,60`1,60`1,{1,3}=dl) + ++( + defaultscale:=0.6; + label.bot("Diene",p0+(0.5w,0)); ) + @(0.4,0.5) + \(<-30,-60`1,1=dm) ++( - defaultscale:=0.6; - label.bot("Diene",p0+(0.5w,0)); - ) - @(0.4,0.5)\( - <-30,-60`1,1=dl,1:/R3,2:/R4^60) - ++(defaultscale:=0.6; + defaultscale:=0.6; label.bot("Dienophile",p0+(.5w,0)); - ) - @(0.9,0.5)\( - <30,?6,6=dl,2:/R2,3:/R4,4:/R3,5:/R1 - ) + ) + @(0.9,0.5)\(<30,?6,6=dl) %--------------------------------------- **( drawarrow (.52w,.5h)..(.6w,.5h); @@ -2461,7 +2484,8 @@ beginfigm label("+",(0.25w,0.5h)); ratio_thickness_char:=0.125; label.bot("Diels-Alder Reaction", - (.5w,h)); + (.5w,h) + ); ) %--------------------------------------- endfigm @@ -2469,24 +2493,20 @@ endfigm %------------------------------------------------------------------------------ \begin{mplibcode} beginfigm - #(70mm,30mm) |=(0.065) + #(70mm,30mm) + |=(0.065) %--------------------------------------- @(0.1,0.5)\( - <-210,60`1,60`1,60`1,{1,3}=dl, - 1:/R1,4:/R2^-60 - ) + <-210,60`1,60`1,60`1,{1,3}=dl) ++( defaultscale:=0.6; label.bot("Diene",p0+(0.5w,0)); ) - @(0.4,0.5)\( - <-30,-60`1,1=dl,1:/R3,2:/R4^60) + @(0.4,0.5)\(<-30,-60`1,1=dm) ++(defaultscale:=0.6; label.bot("Dienophile",p0+(.5w,0)); ) - @(0.9,0.5)\( - <30,?6,6=dl,2:/R2,3:/R4,4:/R3,5:/R1 - ) + @(0.9,0.5)\(<30,?6,6=dl) %--------------------------------------- **( drawarrow (.52w,.5h)..(.6w,.5h); @@ -2500,7 +2520,7 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Local ext() setting} +\subsubsection{Local ext setting} \index{\_}% \begin{verbatim} _s : abbreviated form of EN:=s; @@ -2541,7 +2561,7 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsubsection{Global ext() setting} +\subsubsection{Global ext setting} \index{ext\_clear}% \begin{verbatim} ext_clear: reset global ext() @@ -2597,7 +2617,7 @@ endfigm \onecolumn \section{Example} %----------------------------------------------------------------------------- -\subsection{drawm() example} +\subsection{drawm example} \paragraph{(Luciferin)} \begin{verbatim} beginfigm @@ -2614,7 +2634,7 @@ beginfigm endfigm \end{mplibcode} %----------------------------------------------------------------------------- -\subsection{readm() example} +\subsection{readm example} %----------------------------------------------------------------------------- \paragraph{(Colchicine)} \begin{verbatim} @@ -2766,7 +2786,7 @@ endfigm %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \noindent% \newpage -\subsection{loadm() example} +\subsection{loadm example} \index{sw\_comment}% \index{loadm()}% \paragraph{(Example)} @@ -2835,7 +2855,7 @@ MI : monoisotopic mass from data USE : the use \noindent% %---------------------------------------------------------------------------- \newpage -\subsection{getm() example} +\subsection{getm example} \paragraph{(Chlorophyll a)} \noindent% \begin{verbatim} @@ -2947,13 +2967,14 @@ beginfigm %-------------------------------------------------------------------------------- COOH:='(//O,!,OH); HOCO:='(OH,!,//O,); +S_CoA:=`("{S-CoA}"); @(0.33, 1)\(<30,HOCO,!,//O,!2,COOH) % Oxaloacetate @(0.66, 1)\(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165) % Citrate @(1, 1)\(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH) % cis-Aconitate @(1, 0.58)\(<30,HOCO,!4,COOH,@-4,\`1,COOH,5:/OH) % Isocitrate @(1, 0.05)\(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH) % Oxalosuccinate @(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH) % alfa-Ketoglutarate -@(0.33,0.05)\(<30,HOCO,!3,//O,!,"{S-CoA}") % Succinyl-CoA +@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA) % Succinyl-CoA @(0, 0.05)\(<30,HOCO,!3,COOH) % Succinate @(0, 0.55)\(<30,HOCO,!,!~dr,!,COOH) % Fumarate @(0, 1)\(<30,HOCO,!3,COOH,3:/OH) % L-Malate @@ -3013,13 +3034,14 @@ beginfigm #(160mm,75mm) |<(5mm) COOH:='(//O,!,OH); % define COOH HOCO:='(OH,!,//O,); % define HOCO +S_CoA:=`("{S-CoA}"); % define S_CoA @(0.33, 1)\(<30,HOCO,!,//O,!2,COOH) % Oxaloacetate @(0.66, 1)\(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165) % Citrate @(1, 1)\(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH) % cis-Aconitate @(1, 0.58)\(<30,HOCO,!4,COOH,@-4,\`1,COOH,5:/OH) % Isocitrate @(1, 0.05)\(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH) % Oxalosuccinate @(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH) % alfa-Ketoglutarate -@(0.33,0.05)\(<30,HOCO,!3,//O,!,"{S-CoA}") % Succinyl-CoA +@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA) % Succinyl-CoA @(0, 0.05)\(<30,HOCO,!3,COOH) % Succinate @(0, 0.55)\(<30,HOCO,!,!~dr,!,COOH) % Fumarate @(0, 1)\(<30,HOCO,!3,COOH,3:/OH) % L-Malate diff --git a/graphics/mcf2graph/template_lib.mcf b/graphics/mcf2graph/template_lib.mcf index 2af1f4d88f..6b2c965ace 100644 --- a/graphics/mcf2graph/template_lib.mcf +++ b/graphics/mcf2graph/template_lib.mcf @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf template file mcf_template.mcf by Akira Yamaji 2024.01.21 +% mcf template file mcf_template.mcf by Akira Yamaji 2024.01.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% must use version 5.11 +% must use version 5.12 % tag1:var1;tag2:var2;tag3:var3 ..... % first character of line "%" comment out % first character of line ":" start MCF diff --git a/graphics/mcf2graph/template_soc.mp b/graphics/mcf2graph/template_soc.mp index cfc1dd2699..63243412a9 100644 --- a/graphics/mcf2graph/template_soc.mp +++ b/graphics/mcf2graph/template_soc.mp @@ -1,8 +1,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% MCF compile template file by Akira Yamaji 2024.01.21 +% MCF compile template file by Akira Yamaji 2024.01.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.11 -message "* mcf_template 2024.01.21"; +if unknown mcftograph: input mcf2graph; fi %%% it must be version 5.12 +message "* mcf_template 2024.01.25"; message ""; %------------------------------------------------------------------------------ %%%%ext(defaultscale:=.3; label.rt(EN,(0,0));) -- cgit v1.2.3