Re: [Open Babel] Need complementary information on FP2
Thank you Ernst-Georg a lot, great help. I am more aware now, and I code it. Thanks a lot Marianne Le 16 déc. 2011 à 12:48, Ernst-Georg Schmid a écrit : > Hi, > > from the finger2.cpp source: > > For each of these fragments the atoms, bonding and whether > they constitute a complete ring is recorded and saved in a std::set > so that there is only one of each fragment type. Chemically identical > versions, > i.e. ones with the atoms listed in reverse order and rings listed starting at > different atoms, are identified and only a single canonical fragment is > retained. > > "...so that there is only one of each fragment type..." -> FP2 does not > contain fragment counts. > > But internally it should be possible to retain the counts you need, so you > should be able to write your own fingerprint based on the finger2.cpp source. > > Best regards, > > Ernst-Georg Schmid > -- Learn Windows Azure Live! Tuesday, Dec 13, 2011 Microsoft is holding a special Learn Windows Azure training event for developers. It will provide a great way to learn Windows Azure and what it provides. You can attend the event by watching it streamed LIVE online. Learn more at http://p.sf.net/sfu/ms-windowsazure ___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
[Open Babel] API for generating 2D coordinates or 3D->2D conversion?
Ladies and gentlemen, I would greatly appreciate any hint on the API for 2D coordinate generation or 3D to 2D coordinate conversion, assuming those exist. That can be done from the command line using the '--gen2d' option, which makes me think there could be an API as well. I have not found one yet, though... any suggestions? Many thanks in advance, Ilya -- Ilya Balabin, Ph. D. Department of Chemistry Duke University Durham, NC 27708-0349 http://www.duke.edu/~ilya -- Learn Windows Azure Live! Tuesday, Dec 13, 2011 Microsoft is holding a special Learn Windows Azure training event for developers. It will provide a great way to learn Windows Azure and what it provides. You can attend the event by watching it streamed LIVE online. Learn more at http://p.sf.net/sfu/ms-windowsazure ___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
Re: [Open Babel] Need complementary information on FP2
Many thanks Chris, it is helpful. I see it Best regards Marianne Le 16 déc. 2011 à 13:15, Chris Morley a écrit : > On 16/12/2011 11:01, Marianne wrote: >> Dear all, >> >> In order to have fingerprint of reactions, is it possible to make >> fingerprint (FP2) difference between 2 (or more) compounds, ? (as daylight >> finger print do in section 6.2.2 here >> http://www.daylight.com/dayhtml/doc/theory/theory.finger.html ) >> >> More specifically, I can not find if in the description of FP2, same kind of >> fragment, even finding a number of time in a molecule, is store 1 time or >> each time meet as I suppose? > > FP2 is designed for molecules only, not for reactions. It records, as a > set bit, whether a linear fragment (up to seven atoms long) is present, > however many times it occurs. > > It is possible to define a structural key type fingerprint to include a > count for each structural feature - the MACCS fingerprint uses this. > There are some comments in the code > http://openbabel.svn.sourceforge.net/viewvc/openbabel/openbabel/trunk/src/fingerprints/finger3.cpp?revision=4398&view=markup > > but no support for difference-type reaction fingerprints. > > Chris > > > -- > Learn Windows Azure Live! Tuesday, Dec 13, 2011 > Microsoft is holding a special Learn Windows Azure training event for > developers. It will provide a great way to learn Windows Azure and what it > provides. You can attend the event by watching it streamed LIVE online. > Learn more at http://p.sf.net/sfu/ms-windowsazure > ___ > OpenBabel-discuss mailing list > OpenBabel-discuss@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/openbabel-discuss -- Learn Windows Azure Live! Tuesday, Dec 13, 2011 Microsoft is holding a special Learn Windows Azure training event for developers. It will provide a great way to learn Windows Azure and what it provides. You can attend the event by watching it streamed LIVE online. Learn more at http://p.sf.net/sfu/ms-windowsazure ___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
[Open Babel] Problem with PUBCHEM properties
Dear Coordinator and users of obabel, I want to use open babel to append properties to sdf file and also to filter a sdf file with the properties like: CAT_NO PUBCHEM_CACTVS_HBOND_DONOR PUBCHEM_CACTVS_HBOND_ACCEPTOR PUBCHEM_MOLECULAR_WEIGHT PUBCHEM_XLOGP3 but i got an error message like: not recognized as a property or a descriptor What can I do? Thanks. Regards, Adebayo __ Adebayo A. Adeniyi M.Sc. in Physical Chemistry, University of Ibadan, Nigeria. B.Sc. in Chemistry University of Uyo, Nigeria. Participated in ATOSIM Master Program at École Normale Supérieure of Lyon, France. Specializes in Computational and Physical Chemistry. Address: P.O Box 9435, University of Ibadan, Ibadan, Nigeria. Tel: +2348136909221 E-mail: a.aaden...@yahoo.com, ade4kr...@googlemail.com-- Learn Windows Azure Live! Tuesday, Dec 13, 2011 Microsoft is holding a special Learn Windows Azure training event for developers. It will provide a great way to learn Windows Azure and what it provides. You can attend the event by watching it streamed LIVE online. Learn more at http://p.sf.net/sfu/ms-windowsazure___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
[Open Babel] GAFF atom assignments
Hello, I am trying to figure out how the forcefieldgaff.cpp file reads the gaff.prm file to assign atom types. Given a molecular model where I know the bonds connected between atoms (and I know their basic element name C,N,O,H, etc.), how can I deduce their atom type? (e.g. n2,n1,cp,cd, etc.) within bool OBForceFieldGaff::SetTypes() //reads gaff.prm So once the atom has been assigned a SMARTS string then I guess it becomes pretty easy to make the atom type assignment by matching up the columns. So I guess the question becomes: how do I obtain the SMARTS string for each atom in GAFF? Again, all I know is which atoms are connected to each other and the bond type (single, double). Thank you! - Eric -- Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
Re: [Open Babel] GAFF atom assignments
> So I guess the question becomes: how do I obtain the SMARTS string for each > atom in GAFF? Again, all I know is which atoms are connected to each other > and the bond type (single, double). I'm not sure I understand your question. SMARTS is a pattern matching system. So the Open Babel code runs the SMARTS pattern and finds all matching atoms, e.g.: atom [#6X3](N)(N)N cz"guanidine carbon" So if I run this on benzene, nothing matches. If I run it on guanidine, I obviously get some matches. The OB code handles interpreting the SMARTS (e.g., in this case, atom #6 with 3 total connections, bonded to 3 nitrogens. The code for SMARTS is in the src/parsmart.cpp file. Hope that helps, -Geoff -- Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev ___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
Re: [Open Babel] GAFF atom assignments
Thanks for pointing out parsmart.cpp! Sorry, let me rephrase my question (or separate my many related questions): I have a very basic atomic structure (not part of OpenBabel) that I am implementing and I would like to assign GAFF atom types to it. All I know are the element names and the types of bond orders (single, double). I don't understand OpenBabel's molecule object model very well, but from looking at parsmart.cpp and gaff.prm seems to indicate that there is a rather complex ruleset for assigning atom types to molecules. If all I know are the bond orders and element names, I would have to iterate through all of the atoms, search around each atom for the atoms joined to it, and classify each atom based on the types of atoms around it and the description in gaff.prm: "other hydrogen e.g. on aromatic C" "hydrogen on aliphatic C" "hydrogen on oxygen" "inner sp2 C of conjugated chain systems" However, this won't do because it requires the atoms around it to be classified in the first place, so the algorithm is kind of like a chicken-egg problem. Then I noticed that there are SMARTS strings corresponding to atom types, e.g: [#6X3;R](=*)-*=* [#6X3;R](=*)-*#* [#6X3;R](#*)-*#* all correspond to atom type 'cc'. *1. Is the assignment of atom types somehow based on the SMARTS string of a molecule? *It would make sense that each atom has some SMARTS string property that is compared to the gaff.prm file. *2. How complex of a task is atom assignment to gaff.prm? *I ask this because I am not particularly adept at debugging c++, worser still at the c++ language itself, and a 3000+ lines of smarts parsing is a bit depressing to see... :P actually the question I really care about is: *3. How do I assign the GAFF atom types given what I know?* sorry for my inexperience... just trying to learn here. Thank you! - Eric On Mon, Dec 19, 2011 at 4:10 PM, Geoff Hutchison wrote: > > So I guess the question becomes: how do I obtain the SMARTS string for > each atom in GAFF? Again, all I know is which atoms are connected to each > other and the bond type (single, double). > > I'm not sure I understand your question. SMARTS is a pattern matching > system. So the Open Babel code runs the SMARTS pattern and finds all > matching atoms, e.g.: > > atom [#6X3](N)(N)N cz"guanidine carbon" > > So if I run this on benzene, nothing matches. If I run it on guanidine, I > obviously get some matches. The OB code handles interpreting the SMARTS > (e.g., in this case, atom #6 with 3 total connections, bonded to 3 > nitrogens. > > The code for SMARTS is in the src/parsmart.cpp file. > > Hope that helps, > -Geoff -- Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
Re: [Open Babel] GAFF atom assignments
On Dec 19, 2011, at 7:48 PM, Eric Jang wrote: > 1. Is the assignment of atom types somehow based on the SMARTS string of a > molecule? It would make sense that each atom has some SMARTS string property > that is compared to the gaff.prm file. SMARTS is essentially a programming language. So atoms might match zillions of possible SMARTS. I'd think of it the other way around -- the gaff.prm defines some SMARTS patterns which define atom types in the force field. Some of those may match a particular molecule. Other force fields have other patterns and atom typing rules. ... > 3. How do I assign the GAFF atom types given what I know? My suggestion is to use Open Babel. Take a look, for example at the Tinker format, which provides element, X, Y, Z coordinate, and atom type. If you replace "MMFF94" with "GAFF" it would give you an example at assigning GAFF atom types for anything Open Babel reads. At that point, it's easier to write a file (e.g., simple CML) run it through babel, and read the resulting Tinker file. That's the whole point -- in many ways, cheminformatics tasks can often be handled directly by babel. Hope that helps, -Geoff -- Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
Re: [Open Babel] GAFF atom assignments
Hi Geoff, Don't get me wrong, I think that Babel is the best. But I am unable to use Babel for various reasons (I am intending to implement a web-based docking experiment, that is one of them). I've been using Babel to verify my calculations. I'm so close to finishing, and I have everything nearly completed except for the atom assignments and measurements. So basically I would have to go through each smarts structure defined in gaff.prm and see if there is a matching atom in the molecule? Sorry, but my question remains as to how can element is assigned its atom type based solely on bond connectivities. Thanks, - Eric On Mon, Dec 19, 2011 at 8:44 PM, Geoff Hutchison wrote: > > On Dec 19, 2011, at 7:48 PM, Eric Jang wrote: > > *1. Is the assignment of atom types somehow based on the SMARTS string of > a molecule? *It would make sense that each atom has some SMARTS string > property that is compared to the gaff.prm file. > > > SMARTS is essentially a programming language. So atoms might match > zillions of possible SMARTS. I'd think of it the other way around -- the > gaff.prm defines some SMARTS patterns which define atom types in the force > field. Some of those may match a particular molecule. Other force fields > have other patterns and atom typing rules. > > ... > > *3. How do I assign the GAFF atom types given what I know?* > > > My suggestion is to use Open Babel. Take a look, for example at the Tinker > format, which provides element, X, Y, Z coordinate, and atom type. If you > replace "MMFF94" with "GAFF" it would give you an example at assigning GAFF > atom types for anything Open Babel reads. At that point, it's easier to > write a file (e.g., simple CML) run it through babel, and read the > resulting Tinker file. > > That's the whole point -- in many ways, cheminformatics tasks can often be > handled directly by babel. > > Hope that helps, > -Geoff > > -- Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev___ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss