Collections:
"-o svg -xd -d" Bug in Open Babel 3.1.1
Why "obabel ... -o svg -xd -d" is not able to remove hydrogens?
✍: FYIcenter.com
It seems to be code bug in the "obabel" command in Open Babel 3.1.1 release.
In Open Babel 3.1.1 release, options -xd and -d are not respected together for SVG output in the "obabel -i sdf -o svg -xC -xt -xP400 -xd -d" command.
For example, the following commands shows you that hydrogens and molecule name are included in the SVG output:
fyicenter$ obabel -V Open Babel 3.1.1 -- Sep 27 2022 -- 18:26:52 fyicenter$ obabel -:C -O carbon.sdf -h --gen2D --title Carbon fyicenter$ cat carbon.sdf | obabel -i sdf -o svg -xC -xt -xP400 <?xml version="1.0"?> <svg version="1.1" id="topsvg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cml="http://www.xml-cml.org/schema" x="0" y="0" width="200px" height="200px" viewBox="0 0 100 100"> <title>Carbon - Open Babel Depiction</title> <rect x="0" y="0" width="100" height="100" fill="white"/> <g transform="translate(0,0)"> <svg width="100" height="100" x="0" y="0" viewBox="0 0 160.002 149.28" font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="2" stroke-linecap="round"> <line x1="80.0" y1="74.6" x2="107.0" y2="74.6" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="2.0"/> <line x1="80.0" y1="74.6" x2="66.5" y2="51.3" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="2.0"/> <line x1="80.0" y1="74.6" x2="66.5" y2="98.0" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="2.0"/> <line x1="80.0" y1="74.6" x2="53.0" y2="74.6" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="2.0"/> <text x="114.001528" y="82.639914" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="54.000382" y="48.000000" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="54.000382" y="117.279827" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="34.000000" y="82.639914" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> </svg> </g> <text font-size="18.000000" fill ="black" font-family="sans-serif" x="10.000000" y="20.000000" >Carbon</text> </svg>
If you add -xd and -d options to remove molecule name and hydrogens, only -xd is respected. Only molecule name is removed.
fyicenter$ cat carbon.sdf | obabel -i sdf -o svg -xC -xt -xP400 -xd -d <?xml version="1.0"?> <svg version="1.1" id="topsvg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cml="http://www.xml-cml.org/schema" x="0" y="0" width="400px" height="400px" viewBox="0 0 100 100"> <title>Carbon - Open Babel Depiction</title> <rect x="0" y="0" width="100" height="100" fill="white"/> <g transform="translate(0,0)"> <svg width="100" height="100" x="0" y="0" viewBox="0 0 160.002 149.28" font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4" stroke-linecap="round"> <line x1="80.0" y1="74.6" x2="107.0" y2="74.6" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <line x1="80.0" y1="74.6" x2="66.5" y2="51.3" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <line x1="80.0" y1="74.6" x2="66.5" y2="98.0" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <line x1="80.0" y1="74.6" x2="53.0" y2="74.6" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <text x="114.001528" y="82.639914" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="54.000382" y="48.000000" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="54.000382" y="117.279827" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="34.000000" y="82.639914" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> </svg> </g> </svg>
If you add -d and -xd options to remove hydrogens and molecule name, only -d is respected. Only hydrogens are removed.
fyicenter$ cat carbon.sdf | obabel -i sdf -o svg -xC -xt -xP400 -d -xd <?xml version="1.0"?> <svg version="1.1" id="topsvg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cml="http://www.xml-cml.org/schema" x="0" y="0" width="400px" height="400px" viewBox="0 0 100 100"> <title>Carbon - Open Babel Depiction</title> <rect x="0" y="0" width="100" height="100" fill="white"/> <g transform="translate(0,0)"> <svg width="100" height="100" x="0" y="0" viewBox="0 0 80 80" font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4" stroke-linecap="round"> <text x="36" y="48" fill="rgb(102,102,102)" stroke-width="0" font-weight="bold" font-size="16" >CH</text> <text x="60" y="51.68" fill="rgb(102,102,102)" stroke-width="0" font-weight="bold" font-size="13" >4</text> </svg> </g> <text font-size="18" fill ="black" font-family="sans-serif" x="10" y="20" >Carbon</text> </svg>
However, in Open Babel 3.1.0, both "obabel -i sdf -o svg -xC -xt -xP400 -d -xd" and "obabel -i sdf -o svg -xC -xt -xP400 -xd -d" commands works as expected. Molecule name and hydrogens are all removed.
fyicenter$ obabel -V Open Babel 3.1.0 -- Jul 19 2021 -- 10:30:02 fyicenter$ obabel -:C -O carbon.sdf -h --gen2D --title Carbon fyicenter$ cat carbon.sdf | obabel -i sdf -o svg -xC -xt -xP400 <?xml version="1.0"?> <svg version="1.1" id="topsvg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cml="http://www.xml-cml.org/schema" x="0" y="0" width="400px" height="400px" viewBox="0 0 100 100"> <title>Carbon - Open Babel Depiction</title> <rect x="0" y="0" width="100" height="100" fill="white"/> <g transform="translate(0,0)"> <svg width="100" height="100" x="0" y="0" viewBox="0 0 160.002 149.28" font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4" stroke-linecap="round"> <line x1="80.0" y1="74.6" x2="107.0" y2="74.6" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <line x1="80.0" y1="74.6" x2="66.5" y2="51.3" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <line x1="80.0" y1="74.6" x2="66.5" y2="98.0" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <line x1="80.0" y1="74.6" x2="53.0" y2="74.6" opacity="1.0" stroke="rgb(0,0,0)" stroke-width="4.0"/> <text x="114.001528" y="82.639914" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="54.000382" y="48.000000" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="54.000382" y="117.279827" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> <text x="34.000000" y="82.639914" fill="rgb(191,191,191)" stroke-width="0" font-weight="bold" font-size="16" >H</text> </svg> </g> <text font-size="18.000000" fill ="black" font-family="sans-serif" x="10.000000" y="20.000000" >Carbon</text> </svg> fyicenter$ cat carbon.sdf | obabel -i sdf -o svg -xC -xt -xP400 -xd -d <?xml version="1.0"?> <svg version="1.1" id="topsvg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cml="http://www.xml-cml.org/schema" x="0" y="0" width="400px" height="400px" viewBox="0 0 100 100"> <title>Carbon - Open Babel Depiction</title> <rect x="0" y="0" width="100" height="100" fill="white"/> <g transform="translate(0,0)"> <svg width="100" height="100" x="0" y="0" viewBox="0 0 80 80" font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4" stroke-linecap="round"> <text x="36" y="48" fill="rgb(102,102,102)" stroke-width="0" font-weight="bold" font-size="16" >CH</text> <text x="60" y="51.68" fill="rgb(102,102,102)" stroke-width="0" font-weight="bold" font-size="13" >4</text> </svg> </g> </svg> fyicenter$ cat carbon.sdf | obabel -i sdf -o svg -xC -xt -xP400 -d -xd <?xml version="1.0"?> <svg version="1.1" id="topsvg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cml="http://www.xml-cml.org/schema" x="0" y="0" width="400px" height="400px" viewBox="0 0 100 100"> <title>Carbon - Open Babel Depiction</title> <rect x="0" y="0" width="100" height="100" fill="white"/> <g transform="translate(0,0)"> <svg width="100" height="100" x="0" y="0" viewBox="0 0 80 80" font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4" stroke-linecap="round"> <text x="36" y="48" fill="rgb(102,102,102)" stroke-width="0" font-weight="bold" font-size="16" >CH</text> <text x="60" y="51.68" fill="rgb(102,102,102)" stroke-width="0" font-weight="bold" font-size="13" >4</text> </svg> </g> </svg>
⇒ Substructure Search with Open Babel
⇐ "babel ... -o svg -xd -xP300" Bug - Option -d takes a parameter
2023-01-24, 152👍, 0💬
Popular Posts:
How to generate the fingerprint of a single molecule? I want to see the fingerprint value. If you wa...
How to get a list of File Formats Supported by Open Babel? You can use "babel -L formats" command to...
What is Isomer? An Isomer is molecule that has the same the same chemical formula as another molecul...
How to calulate the exact mass of molecule from a formula? To help you calculating the exact mass fo...
How to get a list of File Formats Supported by Open Babel? You can use "babel -L formats" command to...