-- -- first, define the datatype. Turn off echoing so that expected file -- does not depend on contents of rdkit.sql. -- SET client_min_messages = warning; \set ECHO none RESET client_min_messages; SELECT is_valid_smiles('c1ccccc1'); is_valid_smiles ----------------- t (1 row) SELECT mol_from_smiles('c1ccccc1'); mol_from_smiles ----------------- c1ccccc1 (1 row) SELECT is_valid_smiles('c1ccccc'); is_valid_smiles ----------------- f (1 row) SELECT mol_from_smiles('c1ccccc'); WARNING: could not create molecule from SMILES 'c1ccccc' mol_from_smiles ----------------- (1 row) SELECT mol_from_smiles('cccccc'); WARNING: could not create molecule from SMILES 'cccccc' mol_from_smiles ----------------- (1 row) SELECT is_valid_smiles('c1cccn1'); is_valid_smiles ----------------- f (1 row) SELECT is_valid_smarts('c1ccc[n,c]1'); is_valid_smarts ----------------- t (1 row) SELECT mol_from_smarts('c1ccc[n,c]1'); mol_from_smarts ----------------- c1ccnc1 (1 row) SELECT is_valid_smarts('c1ccc'); is_valid_smarts ----------------- f (1 row) SELECT mol_from_smarts('c1ccc'); WARNING: could not create molecule from SMILES 'c1ccc' mol_from_smarts ----------------- (1 row) SELECT mol_to_smiles(mol_from_smiles('c1ccccc1')); mol_to_smiles --------------- c1ccccc1 (1 row) SELECT mol_to_smarts(mol_from_smiles('c1ccccc1')); mol_to_smarts ---------------------------------- [#6]1:[#6]:[#6]:[#6]:[#6]:[#6]:1 (1 row) SELECT mol_to_smarts('c1cccc[n,c]1'::qmol); mol_to_smarts -------------------------------- c1:,-c:,-c:,-c:,-c:,-[n,c]:,-1 (1 row) SELECT mol_to_smiles('c1cccc[n,c]1'::qmol); mol_to_smiles --------------- c1ccncc1 (1 row) SELECT is_valid_smiles(''); is_valid_smiles ----------------- t (1 row) SELECT mol_from_smiles(''); mol_from_smiles ----------------- (1 row) SELECT mol_to_smiles(mol_from_smiles('')); mol_to_smiles --------------- (1 row) CREATE TABLE pgmol (id int, m mol); \copy pgmol from 'data/data' CREATE UNIQUE INDEX mol_ididx ON pgmol (id); SELECT count(*) FROM pgmol; count ------- 1000 (1 row) SELECT count(*) FROM pgmol WHERE m @> 'c1ccccc1'; count ------- 901 (1 row) SELECT count(*) FROM pgmol WHERE m @> 'c1cccnc1'; count ------- 245 (1 row) SELECT count(*) FROM pgmol WHERE 'c1ccccc1' <@ m; count ------- 901 (1 row) SELECT count(*) FROM pgmol WHERE 'c1cccnc1' <@ m; count ------- 245 (1 row) SELECT count(*) FROM pgmol WHERE m @> mol_from_smarts('c1ccccc1'); count ------- 901 (1 row) SELECT count(*) FROM pgmol WHERE m @> mol_from_smarts('c1cccnc1'); count ------- 245 (1 row) SELECT count(*) FROM pgmol WHERE m @> mol_from_smarts('c1ccc[n,c]c1'); count ------- 939 (1 row) SELECT count(*) FROM pgmol WHERE mol_from_smarts('c1ccccc1') <@ m; count ------- 901 (1 row) SELECT count(*) FROM pgmol WHERE mol_from_smarts('c1ccc[n,c]c1') <@ m; count ------- 939 (1 row) SELECT id, rdkit_fp(m) AS f, maccs_fp(m) as maccsf INTO pgbfp FROM pgmol; CREATE UNIQUE INDEX bfp_ididx ON pgbfp (id); SELECT id, morgan_fp(m,1) AS f INTO pgsfp FROM pgmol; CREATE UNIQUE INDEX sfp_ididx ON pgsfp (id); SELECT id, torsion_fp(m) AS f INTO pgtorsfp FROM pgmol; SELECT id, atompair_fp(m) AS f INTO pgpairfp FROM pgmol; set rdkit.tanimoto_threshold=0.5; set rdkit.dice_threshold=0.5; SELECT id, tanimoto_sml(rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol), f) FROM (SELECT * FROM pgbfp ORDER BY id) AS t WHERE rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol) % f LIMIT 10; id | tanimoto_sml ----+-------------- (0 rows) SELECT id, dice_sml(rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol), f) FROM (SELECT * FROM pgbfp ORDER BY id) AS t WHERE rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol) % f LIMIT 10; id | dice_sml ----+---------- (0 rows) SELECT id, tanimoto_sml(rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol), f) FROM (SELECT * FROM pgbfp ORDER BY id) AS t WHERE rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol) # f LIMIT 10; id | tanimoto_sml --------+------------------- 66722 | 0.360103626943005 498250 | 0.368298368298368 576770 | 0.353684210526316 644427 | 0.337016574585635 645921 | 0.365942028985507 690546 | 0.402 698576 | 0.422657952069717 714484 | 0.383073496659243 771595 | 0.343936381709742 788060 | 0.333865814696486 (10 rows) SELECT id, dice_sml(rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol), f), size(f) FROM (SELECT * FROM pgbfp ORDER BY id) AS t WHERE rdkit_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol) # f LIMIT 10; id | dice_sml | size --------+-------------------+------ 66722 | 0.52952380952381 | 1024 498250 | 0.538330494037479 | 1024 576770 | 0.522550544323484 | 1024 644427 | 0.504132231404959 | 1024 645921 | 0.535809018567639 | 1024 690546 | 0.573466476462197 | 1024 698576 | 0.594180704441041 | 1024 714484 | 0.553945249597424 | 1024 771595 | 0.511834319526627 | 1024 788060 | 0.50059880239521 | 1024 (10 rows) set rdkit.tanimoto_threshold=0.4; SELECT id, tanimoto_sml(morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)))'::mol, 1), f) FROM (SELECT * FROM pgsfp ORDER BY id) AS t WHERE morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)))'::mol, 1) % f LIMIT 10; id | tanimoto_sml ---------+------------------- 3761688 | 0.441860465116279 (1 row) SELECT id, dice_sml(morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)))'::mol, 1), f) FROM (SELECT * FROM pgsfp ORDER BY id) AS t WHERE morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)))'::mol, 1) % f LIMIT 10; id | dice_sml ---------+------------------- 3761688 | 0.612903225806452 (1 row) SELECT id, tanimoto_sml(morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1), f) FROM (SELECT * FROM pgsfp ORDER BY id) AS t WHERE morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1) # f LIMIT 10; id | tanimoto_sml ----------+------------------- 902176 | 0.347826086956522 2952787 | 0.365853658536585 5281628 | 0.346153846153846 10560368 | 0.435897435897436 16196768 | 0.375 (5 rows) SELECT id, dice_sml(morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1), f) FROM (SELECT * FROM pgsfp ORDER BY id) AS t WHERE morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1) # f LIMIT 10; id | dice_sml ----------+------------------- 902176 | 0.516129032258065 2952787 | 0.535714285714286 5281628 | 0.514285714285714 10560368 | 0.607142857142857 16196768 | 0.545454545454545 (5 rows) select dice_sml(morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1), morgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)N)'::mol, 1)) sml; sml ------------------- 0.884615384615385 (1 row) select dice_sml(featmorgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1), featmorgan_fp('C1C(OC2=CC(=CC(=C2C1=O)O)N)'::mol, 1)) sml; sml ------------------- 0.884615384615385 (1 row) select dice_sml(morganbv_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1), morganbv_fp('C1C(OC2=CC(=CC(=C2C1=O)O)N)'::mol, 1)) sml; sml ------------------- 0.888888888888889 (1 row) select dice_sml(featmorganbv_fp('C1C(OC2=CC(=CC(=C2C1=O)O)O)'::mol, 1), featmorganbv_fp('C1C(OC2=CC(=CC(=C2C1=O)O)N)'::mol, 1)) sml; sml ------------------- 0.903225806451613 (1 row) select 'Cc1ccccc1'::mol@='c1ccccc1C'::mol; ?column? ---------- t (1 row) select 'Cc1ccccc1'::mol@='c1ccccc1CC'::mol; ?column? ---------- f (1 row) select 'Cc1ccccc1'::mol@='c1cccnc1C'::mol; ?column? ---------- f (1 row) select subtract(torsion_fp('CCC1CCNCC1'),torsion_fp('OCC1CCNCC1'))=subtract(torsion_fp('CCC1CCOCC1'),torsion_fp('OCC1CCOCC1')); ?column? ---------- t (1 row) select subtract(torsion_fp('CCC1CCNCC1'),torsion_fp('OCC1CCNCC1'))=subtract(torsion_fp('CCC1CCOCC1'),torsion_fp('NCC1CCOCC1')); ?column? ---------- f (1 row) select add(torsion_fp('CCC1CCNCC1'),torsion_fp('OCC1CCNCC1'))=add(torsion_fp('CCC1CCOCC1'),torsion_fp('OCC1CCOCC1')); ?column? ---------- f (1 row) select add(torsion_fp('CCC1CCNCC1'),torsion_fp('OCC1CCNCC1'))=add(torsion_fp('CCC1CCOCC1'),torsion_fp('NCC1CCOCC1')); ?column? ---------- f (1 row) select add(torsion_fp('CCC1CCNCC1'),torsion_fp('OCC1CCNCC1'))=subtract(torsion_fp('CCC1CCNCC1'),torsion_fp('OCC1CCNCC1')); ?column? ---------- f (1 row) select add(torsion_fp('CCC1CCNCC1'),torsion_fp('OCC1CCNCC1'))=subtract(torsion_fp('CCC1CCOCC1'),torsion_fp('OCC1CCOCC1')); ?column? ---------- f (1 row) select is_valid_ctab('chiral1.mol ChemDraw04200416412D 5 4 0 0 0 0 0 0 0 0999 V2000 -0.0141 0.0553 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8109 0.0553 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 -0.4266 0.7697 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 -0.0141 -0.7697 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 -0.8109 -0.1583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 1 3 1 0 1 4 1 1 1 5 1 0 M END'); is_valid_ctab --------------- t (1 row) select is_valid_ctab('invalid'); is_valid_ctab --------------- f (1 row) select mol_from_ctab('chiral1.mol ChemDraw04200416412D 5 4 0 0 0 0 0 0 0 0999 V2000 -0.0141 0.0553 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8109 0.0553 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 -0.4266 0.7697 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 -0.0141 -0.7697 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 -0.8109 -0.1583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 1 3 1 0 1 4 1 1 1 5 1 0 M END'); mol_from_ctab ---------------- C[C@](F)(Cl)Br (1 row) -- mol_to_ctab() - suppress auto-generation of depiction. select mol_to_ctab(mol('CCC'), false); mol_to_ctab ----------------------------------------------------------------------- + RDKit + + 3 2 0 0 0 0 0 0 0 0999 V2000 + 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 1 2 1 0 + 2 3 1 0 + M END + (1 row) -- mol_to_ctab() - with auto-generated depiction. select mol_to_ctab(mol('CCC')); mol_to_ctab ----------------------------------------------------------------------- + RDKit 2D + + 3 2 0 0 0 0 0 0 0 0999 V2000 + 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 1.2990 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 2.5981 -0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 1 2 1 0 + 2 3 1 0 + M END + (1 row) -- mol_to_ctab() - should preserve existing/input depiction. Note the -- extra 'true' parameter to 'mol_from_ctab()' that forces the cartridge -- to preserve the input conformer. Otherwise the conformer will be lost. select mol_to_ctab(mol_from_ctab('chiral1.mol ChemDraw04200416412D 5 4 0 0 0 0 0 0 0 0999 V2000 -0.0141 0.0553 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8109 0.0553 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 -0.4266 0.7697 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 -0.0141 -0.7697 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 -0.8109 -0.1583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 1 3 1 0 1 4 1 1 1 5 1 0 M END', true)); mol_to_ctab ----------------------------------------------------------------------- + RDKit 2D + + 5 4 0 0 0 0 0 0 0 0999 V2000 + -0.0141 0.0553 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 0.8109 0.0553 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0+ -0.4266 0.7697 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0+ -0.0141 -0.7697 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0+ -0.8109 -0.1583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0+ 1 2 1 6 + 1 3 1 0 + 1 4 1 0 + 1 5 1 0 + M END + (1 row) select all_values_lt(torsion_fp('c1ccccc1C'::mol),2); all_values_lt --------------- f (1 row) select all_values_lt(torsion_fp('c1ccccc1C'::mol),3); all_values_lt --------------- t (1 row) select all_values_gt(torsion_fp('c1ccccc1C'::mol),1); all_values_gt --------------- t (1 row) select all_values_gt(torsion_fp('c1ccccc1C'::mol),2); all_values_gt --------------- f (1 row) select is_valid_mol_pkl('foo'::bytea); is_valid_mol_pkl ------------------ f (1 row) select is_valid_mol_pkl(mol_to_pkl('c1ccccc1'::mol)); is_valid_mol_pkl ------------------ t (1 row) select mol_from_pkl(mol_to_pkl('c1ccccc1'::mol)); mol_from_pkl -------------- c1ccccc1 (1 row) select tanimoto_sml(morganbv_fp('c1ccccn1'::mol),morganbv_fp('c1ccccc1'::mol)); tanimoto_sml ------------------- 0.333333333333333 (1 row) select tanimoto_sml(bfp_from_binary_text(bfp_to_binary_text(morganbv_fp('c1ccccn1'::mol))), bfp_from_binary_text(bfp_to_binary_text(morganbv_fp('c1ccccc1'::mol)))); tanimoto_sml ------------------- 0.333333333333333 (1 row) -- GitHub issue 9 select 'C1CC2CC3C45C2C2C6C7C8C9C%10C(C1)C1C%11%10C%109C98C87C76C42C24C65C3C3C56C64C4%12C72C28C79C8%10C9%11C1C1C%109C98C87C42C24C7%12C%116C65C3C3C56C6%11C%117C74C4%12C82C29C8%10C1C1C98C42C24C89C1C1C98C84C4%10C%122C27C7%11C%116C65C3C3C56C6%11C%117C42C24C7%11C%116C65C3C3C56C6%11C%117C74C4%12C%102C28C89C1C1C98C42C24C89C1C1C98C84C4%10C%122C27C7%11C%116C65C3C3C56C6%11C%117C42C24C7%11C%116C65C3C3C56C6%11C%117C74C4%12C%102C28C89C1C1C98C42C24C89C1CC8C4C1C%122C27C4%11C76C65C3CC6C7C4C12'::mol; mol ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- C1CC2CC3C4C5C6C7C8C9C%10C%11C%12C%13C%14C%15C%16CC%17C%18C%19C%20C%21C%22C%23CC%24C%25C%26C%27C%28C%29C%30C%31C%32C%33C%34C%35C%36C%37C(C1)C1C%38C%39C%40C%41C%42C2C32C%423C%41%42C%40%41C%39%40C%38%39C1%37C%361C%35%36C%34%35C%33%34C%32%33C%31%32C%30%31C%29%30C%28%29C%27%28C%26%27C%25%26C%23%24C%22%23C%21%22C%20%21C%19%20C%18%19C%17%16C%15%16C%14%15C%13%14C%12%13C%11%12C%10%11C9%10C89C78C67C56C42C32C%423C%414C%405C%391C%361C%35%17C%34%18C%33%24C%32%25C%31%32C%30%31C%29%30C%28%29C%27%28C%23%26C%22%23C%21%22C%20%21C%19%16C%15%16C%14%15C%13%14C%12%13C%11%12C%10%11C9%10C89C78C62C32C43C51C%171C%184C%245C%256C%327C%31%17C%30%18C%29%19C%23%28C%22%20C%21%16C%15%16C%14%15C%13%14C%12%13C%11%12C%10%11C9%10C82C31C%104C%115C%126C%137C%14%17C%15%18C%20%16%19 (1 row) -- chiral matching select 'C[C@H](F)Cl'::mol@>'CC(F)Cl'::mol as match; match ------- t (1 row) select 'C[C@H](F)Cl'::mol@>'C[C@H](F)Cl'::mol as match; match ------- t (1 row) select 'C[C@H](F)Cl'::mol@>'C[C@@H](F)Cl'::mol as match; match ------- t (1 row) set rdkit.do_chiral_sss=true; select 'C[C@H](F)Cl'::mol@>'CC(F)Cl'::mol as match; match ------- t (1 row) select 'C[C@H](F)Cl'::mol@>'C[C@H](F)Cl'::mol as match; match ------- t (1 row) select 'C[C@H](F)Cl'::mol@>'C[C@@H](F)Cl'::mol as match; match ------- f (1 row) set rdkit.do_chiral_sss=false; -- substructure counts select substruct_count('c1ccncc1'::mol,'c1ccncc1'::mol); substruct_count ----------------- 1 (1 row) select substruct_count('c1ccncc1'::mol,'c1ccncc1'::mol,false); substruct_count ----------------- 2 (1 row) -- special queries select 'c1ccc[nH]1'::mol@>mol_from_smiles('c1cccn1[H]') as match; match ------- t (1 row) select 'c1cccn1C'::mol@>mol_from_smiles('c1cccn1[H]') as match; match ------- t (1 row) select 'c1ccc[nH]1'::mol@>qmol_from_smiles('c1cccn1[H]') as match; match ------- t (1 row) select 'c1cccn1C'::mol@>qmol_from_smiles('c1cccn1[H]') as match; match ------- f (1 row) select 'c1ccc[nH]1'::mol@>mol_from_ctab('query Mrv0541 04021509592D 6 6 0 0 0 0 999 V2000 -0.2652 0.7248 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.2652 -0.1002 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 2 3 2 0 0 0 0 4 5 2 0 0 0 0 1 5 1 0 0 0 0 3 4 1 0 0 0 0 1 6 1 0 0 0 0 M END') as match; match ------- t (1 row) select 'c1cccn1C'::mol@>mol_from_ctab('query Mrv0541 04021509592D 6 6 0 0 0 0 999 V2000 -0.2652 0.7248 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.2652 -0.1002 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 2 3 2 0 0 0 0 4 5 2 0 0 0 0 1 5 1 0 0 0 0 3 4 1 0 0 0 0 1 6 1 0 0 0 0 M END') as match; match ------- t (1 row) select 'c1ccc[nH]1'::mol@>qmol_from_ctab('query Mrv0541 04021509592D 6 6 0 0 0 0 999 V2000 -0.2652 0.7248 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.2652 -0.1002 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 2 3 2 0 0 0 0 4 5 2 0 0 0 0 1 5 1 0 0 0 0 3 4 1 0 0 0 0 1 6 1 0 0 0 0 M END') as match; match ------- t (1 row) select 'c1cccn1C'::mol@>qmol_from_ctab('query Mrv0541 04021509592D 6 6 0 0 0 0 999 V2000 -0.2652 0.7248 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.9796 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.9623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4493 1.1373 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.2652 -0.1002 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 2 3 2 0 0 0 0 4 5 2 0 0 0 0 1 5 1 0 0 0 0 3 4 1 0 0 0 0 1 6 1 0 0 0 0 M END') as match; match ------- f (1 row)