投稿

ラベル(化学)が付いた投稿を表示しています

溶媒のにおい

研究室にいた頃には毎日いろんな溶媒を嗅いでいたけれど、卒業してからはそんな機会もなくなって、記憶が薄れてきてしまいました 記憶がなくなる前に、どんな匂いだったかなっていうのを書き留めておこうというものです クロロホルム 甘くてもったりしたにおい。 蒸気が重い感じがして、鼻から入ると口の方へと落ちてくるような感覚がある。 アセトン 鼻の奥の方をつつくような爽やかな刺激臭。 大量に嗅ぐとうっ!となる エタノール 酒。消毒液。 メタノール においは弱く、ほのかに果実の風味がある。 あまり刺激はない。 ヘキサン 油って感じのにおい。 ガソリンから不快な臭みを消した感じ。 酢酸エチル 強烈な果実臭。爽やかな甘みを濃縮して不快にした油。 トルエン The・溶剤って感じの甘みとえぐみを併せ持った悪臭。 ジエチルエーテル どこか懐かしさを感じさせるような苦い香り。 嗅ぎすぎるとしっかり気持ち悪くなる。 ジクロロメタン クロロホルムとアセトンの要素を合わせた感じ。 すごい勢いで鼻を刺激してくる。 テトラクロロエタン ハロゲン系ではあるんだけど苦みの強い嫌な臭い。 飛ばないから付着するとなかなかとれない。 o -DCB (オルトジクロロベンゼン) 体に悪そうな甘ったるいにおい。 これも飛ばないから付着するとなかなか取れない。 CPME エーテルの苦みをもちつつ、果実臭のする比較的穏やかな臭い。 THF 揮発性の高いエーテル。油断すると鼻をつんざいてくる。 ジオキサン エーテル要素をかすかに感じるものの、マイルドで優しいにおい。 研究室で扱ってきた中では最も心地よいにおい。 体には悪い。 DMF (ジメチルホルムアミド) アミン臭(いわゆる魚の腐ったにおい)代表。 トリエチルアミン アミンの腐敗臭にアセトンの刺激臭を加えたにおい。 DMSO (ジメチルスルホキシド) 濃縮した磯の香りにえげつないえぐみをトッピング。 嗅ぐと鼻の奥まで下りてきて出ていかず、喉と鼻の間あたりにえぐみが残り続ける。 悪臭はDMSOそれ自体ではなく分解物のにおいらしい。 ピリジン 悪臭。 アミンの腐敗臭とアセトンの刺激臭とDMSOのえぐみを全部足した感じ。 研究室で扱ってきた中では最も嫌な臭い。 ほかにもいくつか使ったけれど覚えていない。 アセニトとかどんなにおいだったっけ。 水が無臭で良かったと、つくづく思わさ...

Blenderで分子模型の立体視

イメージ
Blenderには立体視用の画像を出力できる機能がついているらしい 立体的な特徴のある分子に使ったら面白いのでは?と思ってやってみたというメモです   手元にあったCPPのファイルを開いて、 出力プロパティの 立体視 にチェックを入れて、 画像をレンダリングして、 保存画面のオプションで好きな方式を選択するだけ (サイドバイサイドは2枚の画像を並べて寄り目で見るやつ) するとこんな感じで出力されるので、あとは寄り目で頑張ると立体に見えて楽しい この記事の内容は以上です。

Blenderで芳香環に面を張るやつ

イメージ
 こんなやつです。 手作業でやると思いのほかめんどくさかったので、少し楽にしようとしました。 方針としては、 ・手作業で原子を選択する ・選択されている原子の中心座標を頂点として面を生成する ・ついでにマテリアルも設定しておく という感じです。 以下スクリプトです。 import bpy name = "plane" color = (0,0.7,0.95,1) emit = 15 ma = bpy.data.materials.new(name) ma.use_nodes = True bsdf = ma.node_tree.nodes["Principled BSDF"] bsdf.inputs[0].default_value = color bsdf.inputs[4].default_value = 0.2 bsdf.inputs[7].default_value = 0.3 bsdf.inputs[18].default_value = emit ma.diffuse_color = color if(len(bpy.context.selected_objects))>2: verts=[] face=[] idx=0 for o in bpy.context.selected_objects: verts.append(o.location) face.append(idx) idx+=1 o.select_set(False) faces=[face] mesh = bpy.data.meshes.new(name) obj = bpy.data.objects.new(name,mesh) bpy.context.collection.objects.link(obj) mesh.from_pydata(verts,[],faces) mesh.update bpy.context.view_layer.objects.active = obj bpy.ops.object.mode_set(mode...

Blenderで読み込んだ分子モデルにマテリアルを自動設定したかった

イメージ
23.9.14追記 修正版作りました。 molファイルを編集することなく、そのまま読み込めるようにしてあります。 https://sanasnote.blogspot.com/2023/09/blendermol.html 以前こんな投稿をしました。 →  http://sanasnote.blogspot.com/2021/07/3d.html Avogadroでmolファイルを3Dモデルに変換してBlenderに読み込んで、なんやかんや着色したりパワポに貼ったりするという内容です。 マテリアルをひとつひとつ選択して設定しなきゃいけないので、分子量が大きかったり構造が混み入ってたりすると苦行になります。 というわけで、なんかいい感じに自動設定してくれるスクリプト作れないかな?と思ってやってみたのがこの記事です。 結論から言うと、最低限動くことは動く、という感じです。 具体的な方針としては、 1. molファイルを原子部分と結合部分の情報にそれぞれ分割して保存する 2. pythonでtxtファイルを読み込み、原子と結合それぞれの原子種リストを作る ※Blenderに読み込んだ時のオブジェクトの並びは、元のmolファイル中の原子の順番に対応しています 3. リストに従ってマテリアルをひとつずつ割り当てていく 以下スクリプトです。 (Stickモデル用です。CPKモデル用は ページ末尾 に貼っておきます。) #for stick-model import bpy import csv import re #-------------------------------------------- # molファイルから作成した原子の情報と結合の情報が入ったtxtファイルを指定する atom_file="C:/******************.txt" bond_file="C:/******************.txt" #---------------------------------------------------------- # delete all materials and material_slots # あらかじめマテリアルとマテリアル...

RDKitの導入に苦労した話

pythonで化学構造を扱うのにRDKitという便利なライブラリがあると聞いたので入れてみようと思ったのですが、導入に何度もつまずいたので備忘録としてつまずきポイントをメモしておきます。 雰囲気で使っているので頓珍漢なこと書いてると思いますがゆるして  つまずきポイント: 1.RDKitはpipで入れられない  2.Anacondaが元から入ってたpythonと競合  3.環境変数の参照先に""が入っていてエラー  4.仮想環境内のRDKitをSpyderが認識しない 以下少し詳細に書きます。 1.RDKitはpipで入れられない  condaを使うと導入が便利らしいので、何も考えずにAnacondaを入れることにしました。 2.Anacondaが元から入ってたpythonと競合  Anacondaをインストールしたものの、スタートメニューにアイコンが表示されませんでした。 pythonが元から入っている場合にインストールに失敗することがあるようなので、元から入っていたpythonをアンインストールしてAnacondaを再インストールしました。 その結果、正常にインストールできました。 しかし、Anaconda Prompt を起動すると参照先のpythonが使用できないというエラーが表示されました。 3.環境変数の参照先に""が入っていてエラー  環境変数を確認すると、pythonに関連する指定先に"" (※ダブルクォーテーション)が混入しており、正常に参照できていないことがわかりました。 こいつを消すとエラーも消えました。 それではRDKitをインストールします。 condaで仮想環境 my-rdkit-env を作ってそこにインストールします。 インストールが完了したら統合開発環境のSpyderを開いてサンプルコードを適当に実行してみます・・・ここでno moduleとエラーが出ます。 4.仮想環境内のRDKitをSpyderが認識しない Spyderはbase環境下で実行されているため、my-rdkit-env 内のRDKitを認識しません。 my-rdkit-env環境内に別途Spyderをインストールする必要があるようです。 anaconda prompt上でmy-rdkit-envをa...

パワポに直接挿入可能な3D分子モデルを作る

イメージ
こういうのを作ります。 この3Dモデルはパワポ内で任意に動かしたりアニメーション機能を利用することが可能です。(デフォルトで入っているティラノサウルスの3Dモデルが有名ですね) 大まかな流れとしては ---------------------------------------------- 1. molファイルを作成 2. Avogadroでwrlファイルを出力 3. Blenderでマテリアルを設定しfbxファイルを出力 4. パワポに挿入 ---------------------------------------------- となります。以下、具体的に流れを説明します。 1.molファイル作成 適当に作ってください。 今回はchemsketchでtolueneを作りました。 2. Avogadroでwrlファイルを出力 作成したmolファイルをAvogadroで開きます。 Stick や Ball & Stick など、お好みの描画方法を選択してください。 今回はStickを選択しました。 (また、必要であればこのとき3次元構造を最適化してください) File > Export > VRML を選択し、wrlファイルを出力してください。 このとき3Dモデルの大きさを  Scale 欄で調整可能です。 3. Blenderでマテリアルを設定しfbxファイルを出力 先ほど出力したwrlファイルをblenderにインポートします。 ファイル > インポート > X3D Extensible 3D(.x3d/.wrl) このとき、マテリアルは未設定なので灰色のモデルが表示されます。 (2022/5/15追記)以下のマテリアル設定の操作を簡略化するスクリプトを作ってみました。→ https://sanasnote.blogspot.com/2022/05/blender.html 適当なオブジェクトを選択し、マテリアルタブをクリックしてマテリアルを作成・設定します。 まずひとつのオブジェクトに対してマテリアルを作成・設定します。ここでは炭素原子です。 プリンシブルBSDF 以外を選ぶとパワポ上でマテリアルが反映されない場合があるので注意してください。 (わたしはここで行き詰まって数日を溶かしました) 次に、同一...

CPPのGIFアニメを作りました

イメージ
 CPPを回しました。 構造式バージョン [8]CPP [12]CPP 分子模型バージョン こちらはGIFにすると重いのでmp4にしました。 簡単な制作の流れと使用ソフトなど --構造式バージョン 1.ベンゼン環の構造式を作成 2.Aviutlで構造式を円形配置してアニメーション 3.カメラ制御で視点調整 4.GIF出力 ** 構造式作成:Chemdraw 構造式の円形配置, アニメーション, GIF出力, その他調整:Aviutl --分子模型バージョン 1.ベンゼン環の構造式を作成 2.ベンゼン環の3Dモデルを出力, Blenderに読み込み 3.ベンゼン環を円形に配置しマテリアルの設定 4.カメラを円形に回転させるアニメーションを作る 5.アニメーションをAVI出力しAviutlに読み込み 6.明度などを調整してmp4出力 ** ベンゼン環の構造式作成:Chemdraw ベンゼン環の3Dモデル出力:Winmostar CPP構造作成, アニメーション:Blender 動画調整, mp4出力:Aviutl 分子模型を回すのはMercuryが一番手軽なのだけれど、俯瞰視点で円形に回すみたいなことが多分できないのでやってみました 使いたい方はご自由に(?) おまけ [12]CPPのカテナン(実在するらしい!) 関連記事 CPPの回し方【AviUtl】 パワポに直接挿入可能な3D分子モデルを作る