05 06 2013 chemoinformatics Python Tweet
python-pptxがテーブル対応していたので早速使ってみた。これはヤヴァイ、スクリプトで自動化したら快適になりそうな予感がする。
が、いまのとこ6行以上を指定するとファイルが出力できない模様。
from pptx import Presentation from pptx.util import Inches from pychembldb import * prs = Presentation() title_only_slidelayout = prs.slidelayouts[5] slide = prs.slides.add_slide(title_only_slidelayout) shapes = slide.shapes shapes.title.text = "10.1016/S0960-894X(01)80693-4" rows = 6 cols = 6 left = Inches(0.5) top = Inches(1.5) width = Inches(8.0) height = Inches(0.8) tbl = shapes.add_table(rows, cols, left, top, width, height) tbl.columns[0].width = Inches(2.0) tbl.cell(0, 0).text = 'inchi_key' tbl.cell(0, 1).text = 'activity' tbl.cell(0, 2).text = 'HBD' tbl.cell(0, 3).text = 'HBA' tbl.cell(0, 4).text = 'PSA' tbl.cell(0, 5).text = 'MWT' for journal in chembldb.query(Doc).filter_by(doi="10.1016/S0960-894X(01)80693-4"): for assay in journal.assays[:1]: for i, activity in enumerate(assay.activities[:5], 1): tbl.cell(i, 0).text = activity.compound.molecule.structure.standard_inchi_key tbl.cell(i, 1).text = str(activity.published_value) tbl.cell(i, 2).text = str(activity.compound.molecule.property.hbd) tbl.cell(i, 3).text = str(activity.compound.molecule.property.hba) tbl.cell(i, 4).text = str(activity.compound.molecule.property.psa) tbl.cell(i, 5).text = str(activity.compound.molecule.property.mw_freebase) prs.save('test.pptx')
追記 130605
というわけでSHizuoka.py #2も楽しいよと、ちょいと宣伝しておきます。