Python

ページ名:Python

インストール

Python公式等からダウンロードできます.
(追記:こちらのほうがわかりやすいです.)
このとき、使っているOSの種類に注意しましょう.
バージョンは最新のものでいいと思います.
ダウンロードしたら指示に従ってインストールするだけです.


NumPy

数値計算用のライブラリ『NumPy』です.
Pythonをインストールした上で、

 pip install numpy

を実行すればインストールできます。
参考:NumPy、pandas、Matplotlib をpipでインストールする方法


RDKit

pipだけでは無理のようなのでAnacondaかMinicondaを入れる必要があります.
RDKit公式
RDKitドキュメンテーション非公式日本語版サイト
RDKit環境構築を行いjupyter-notebookでベンゼンを表示させる


その他ライブラリ

必要な時にpipでインストールします。下のサイトで検索できます。
The Python Package Index (PyPI)


実行方法

Pythonファイルは ___.py という形式でつくります。
そこに好きなエディタでPythonコードを書いたら、
コマンドライン上で実行したいファイルが存在するディレクトリに移動してから、

 python ___.py

と打てばプログラムが実行されます。


学習用リンク

Python公式
Python Japan
Python入門
Pythonの基礎
変数
演算子
変数とデータ型
list, tuple, dictionary, set型
if, for, while文
配列のループ


プログラム例

gjfファイルからpdbファイルに座標情報を写すときのプログラム例

 # 座標取り出すためにgjfファイル読み込み
 f_gjf_R = open('./___.gjf')
 f_gjf_R_lines = f_gjf_R.readlines()
 f_gjf_R.close()
 
 # 変数準備
 Thr40_cart_list = []
 Ser105Gln106_cart_list = []
 Asp187_cart_list = []
 Hid224_cart_list = []
 RPP_cart_list = []
 
 # ループ
 for i in range(116):
     # 1行ずつ処理
     line = f_gjf_R_lines[i+6]
     # 1行を空白で区切ってlistに分解
     line_list = line.split()
     # xyz座標取り出し, 小数第4位を四捨五入
     x = str('{:.3f}'.format(float(line_list[1])))
     y = str('{:.3f}'.format(float(line_list[2])))
     z = str('{:.3f}'.format(float(line_list[3])))
     # 条件分岐
     if i < 14:
         # コメントアウトされているprint関数は本番実行前にコメントインして正常に動くか試す
         # print(f'Thr40_cart: [{x},{y},{z}]')
         Thr40_cart_list.append([x, y, z])
     elif i < 47:
         # print(f'Ser105Gln106_cart: [{x},{y},{z}]')
         Ser105Gln106_cart_list.append([x, y, z])
     elif i < 59:
         # print(f'Asp187_cart: [{x},{y},{z}]')
         Asp187_cart_list.append([x, y, z])
     elif i < 76:
         # print(f'Hid224_cart: [{x},{y},{z}]')
         Hid224_cart_list.append([x, y, z])
     else:
         # print(f'RPP_cart: [{x},{y},{z}]')
         RPP_cart_list.append([x, y, z])
 
 # print(len(Thr40_cart_list))
 # print(len(Ser105Gln106_cart_list))
 # print(len(Asp187_cart_list))
 # print(len(Hid224_cart_list))
 # print(len(RPP_cart_list))
 
 # 座標書き換えの準備のためpdbファイル読み込み
 f_pdb = open('./___.pdb')
 f_pdb_lines = f_pdb.readlines()
 f_pdb.close()
 
 for i in range(116):
     if i < 14:
         line = f_pdb_lines[i+541]
         line_list = line.split()
         new_line = line.replace(line_list[5], Thr40_cart_list[i][0])
         new_line = new_line.replace(line_list[6], Thr40_cart_list[i][1])
         new_line = new_line.replace(line_list[7], Thr40_cart_list[i][2])
         f_pdb_lines[i+541] = new_line
         # print(f'Thr40: {f_pdb_lines[i+541]}')
     elif i < 47:
         line = f_pdb_lines[i-14+1519]
         line_list = line.split()
         new_line = line.replace(line_list[5], Ser105Gln106_cart_list[i-14][0])
         new_line = new_line.replace(line_list[6], Ser105Gln106_cart_list[i-14][1])
         new_line = new_line.replace(line_list[7], Ser105Gln106_cart_list[i-14][2])
         f_pdb_lines[i-14+1519] = new_line
         # print(f'Ser105Gln106: {f_pdb_lines[i-14+1519]}')
     elif i < 59:
         line = f_pdb_lines[i-47+2734]
         line_list = line.split()
         new_line = line.replace(line_list[5], Asp187_cart_list[i-47][0])
         new_line = new_line.replace(line_list[6], Asp187_cart_list[i-47][1])
         new_line = new_line.replace(line_list[7], Asp187_cart_list[i-47][2])
         f_pdb_lines[i-47+2734] = new_line
         # print(f'Asp187: {f_pdb_lines[i-47+2734]}')
     elif i < 76:
         line = f_pdb_lines[i-59+3283]
         line_list = line.split()
         new_line = line.replace(line_list[5], Hid224_cart_list[i-59][0])
         new_line = new_line.replace(line_list[6], Hid224_cart_list[i-59][1])
         new_line = new_line.replace(line_list[7], Hid224_cart_list[i-59][2])
         f_pdb_lines[i-59+3283] = new_line
         # print(f'Hid224: {f_pdb_lines[i-59+3283]}')
     else:
         line = f_pdb_lines[i-76+4634]
         line_list = line.split()
         new_line = line.replace(line_list[5], RPP_cart_list[i-76][0])
         new_line = new_line.replace(line_list[6], RPP_cart_list[i-76][1])
         new_line = new_line.replace(line_list[7], RPP_cart_list[i-76][2])
         f_pdb_lines[i-76+4634] = new_line
         # print(f'RPP: {f_pdb_lines[i-76+4634]}')
 
 # pdbファイル上書き
 # 正常に動作するか確認するために最初はコメントアウト(代わりにprintをコメントイン)
 # f_new_pdb = open('./___.pdb', 'w')
 # f_new_pdb.writelines(f_pdb_lines)
 # f_new_pdb.close()







































.

シェアボタン: このページをSNSに投稿するのに便利です。


最近更新されたページ

左メニュー

主要ページ トップページ Linuxコマンド Amber Gaussian Fortran LaTeX Python CShellScript Atom ジョブ管理 ショートカットキー リンク集 英単...

トップページ

このWikiについて佐藤研の学生(主にB4)向けwikiです.研究の補助に使ってください.間違っている箇所や不足している箇所があれば指摘して頂けると助かります.&nbsp;注意事項メンバー登録をすれば...

Linuxコマンド

よく使うものだけ書きます.cd ..一つ上のディレクトリに移動.cd /ルートディレクトリに移動.cd ~ホームディレクトリに移動.ルートは共通の最上階層, ホームは個人の最上階層みたいなイメージです...

英単語

論文等で頻出の重要単語・連語を列挙しています.名詞 (noun) 単語・連語 略称 意味 functional 汎関数 density functional theory DFT 密度汎関数理論 ti...

論文検索

プラグインのインストール ブラウザに専用プラグインをインストールすることで,大学が購読している電子ジャーナル・データベースにアクセスできるようになります:電子リソースへのアクセスについてジャーナルAC...

ショートカットキー

※使用するアプリケーションによって若干異なる場合があります.Windowsウィンドウ・タブ操作アプリ切り替えAlt + Tabウィンドウ最大化Alt + Space + Xウィンドウを元のサイズに戻す...

ジョブ管理

hermesA化研と同じSlurmQuick Start User GuideFOCUS - ジョブの実行方法(SLURMコマンド編)FOCUS - ジョブ投入スクリプトの作成分子研計算機利用の手引き...

Fortran

77と90/95FortranはFORTRAN 77(旧式, 以下f77)とFortran 90/95(新式, 以下f90)に大別される.もっと新しいバージョンや古いバージョンも存在するが,定着はして...

Atom

Atom(エディタ)の機能メモです.ショートカット(Win)行削除Ctrl+Shift+K行コピー&ペーストCtrl+Shift+D行ごと移動Ctrl+矢印キーファイル検索Ctrl+Pページ内検索Ct...

Ubuntu

Windows10にUbuntuを入れた時のメモ.インストール後の設定sudo vi /etc/ssh/sshd_configでPasswordAuthentication noを#PasswordA...

補助ツール

エディタ コードを書くツール.LaTeXやFortran等を書くときに使う.AtomSublime TextVisual Studio CodeAtomのパッケージlatexlatexerlangua...

Gaussian

キーワードOpt構造最適化SPシングルポイント(一点)エネルギー計算SCFDIIS, Fermi, QC など.https://www.hpc.co.jp/chem/software/gaussian...

リンク集

GAMESSGAMESSの概要GAMESS(US)GAMESS(UK)データベースBasis Set ExchangeBSEの使い方Protein Data BankPDBj(日本蛋白質構造データバン...

Amber

メモ程度の内容です.詳細は下のリンクを参照してください.マニュアルAmber19.pdfコマンドLEaP (13章) tleap -f ___.tleap水素つける、topとcrdができる.antec...

CShellScript

同じような作業はCShellScriptを書いて一度に実行すると効率化できます.注意:Windows OS上では実行できません.スクリプトの例#!/bin/cshset i = 1while($i ...

LaTeX

インストール(Atom)AtomエディタにLaTeXの日本語環境を構築することによる文書作成の効率化参考TeX Wiki - LaTeX入門LaTeXコマンド集LaTeX - コマンド一覧amsmat...

Python

インストールPython公式等からダウンロードできます.(追記:こちらのほうがわかりやすいです.)このとき、使っているOSの種類に注意しましょう.バージョンは最新のものでいいと思います.ダウンロードし...

雑談質問相談掲示板

はじめにここは、雑談・質問・相談など何でも話題にする掲示板です。掲示板についてお知らせ特にありません。禁止事項 掲示板の趣旨と関係ない書き込み 誹謗・中傷含む書き込み 他サイトやアプリの宣伝 招待UR...