おいも貴婦人ブログ

生物系博士課程満期退学をしたAIエンジニアのブログ。

Python

続*4:2次元イジングモデル

2次元イジングモデルでの各ステップでのアップデート方法に致命的な部分がありました...。 今までの2次元イジングモデルのアップデート方法(1) 2次元上のスピンをランダムに一つ選び、スピンを反転させる。 前状態とのエネルギー差を計算する。 メトロポ…

続*3:2次元イジングモデル

2015/11/13修正 def calcDeltaEの部分 return -2*dE def MCのエネルギー差の足し算部分 E+=dE 修正済みのコードは文中。 本文 今までのプログラムは、エネルギーを計算する際に全ての要素に対してエネルギーの再計算を行っていました。しかしイジングの場合…

2次元イジングモデル

ホップフィールドネットワークのプログラムを書いたので、2次元イジングモデルのプログラムも書いてみました。イジングモデルは磁性体を表したモデルです。磁性体は磁石だと考えてもらって結構だと思います。磁石は、熱を与えるとその磁性を失います(つまり…

続:ホップフィールド(Hopfield Network)

大昔にHopfield Networks(HN:この略し方に一般性はありません。)についてのPythonプログラムを書いたが、あまりにも酷かったので書きなおしてみました。HNは連想記憶モデル、言い換えると、教師あり型のパターン認識方法の一種だと考えられます。教師あり型…

Pythonのmultiprocessingを使って、行列の積を計算しよう。

multiprocessingの使い方を学ぶために、行列の積を計算しました。結果は、絶望的に遅いです。そもそもプログラムに問題があるかも知れません。60x60の行列の積でも数秒かかってしまいます。 以下、コードを部分的に説明していきます。 必要なモジュールのイ…

gmxとMDAnalysisのrmsfの計算結果が合いません...。

この間、紹介したMDanalysisを使って、RMSFを求めてみたところ、やけに大きな値が出てたのでずっと疑問に思っていました。念のために gmx rmsf -f trajectory.file -s toplogy.file で計算した結果と比べてみると明らかに異なってました(10倍くらい...。)(…

Gromacsの解析にMDAnalysisを使ってみよう。

gromacsの計算結果から、MDAnalysisを使ってRMSFを求めてみる。非常に簡単!!! #!/usr/bin/env python import MDAnalysis from MDAnalysis.analysis.rms import RMSF topology='md_0_1.gro' ## PSF,CRD,PDB,GRO trajectory='md_0_1.trr' ## DCD,XTC/TRR unive…

フィボナッチ数列をマルチプロセッシングで計算する。

前回は、threadingモジュールを使ってフィボナッチ数列を計算しました。今回は、multiprocessingを使いたいと思います。 #!/usr/bin/env python3 import sys, time, random, re, requests import concurrent.futures from multiprocessing import Process, c…

Python3でmultiprocessingを使ってみる。

pythonの並列プログラミングを修得するために、今回はmultiprocessingを使いたい思います。コードは至って簡単。関数1で乱数生成し他のプロセスにデータ送り、そのデータを他のプロセスで生成された関数2が表示します。17.2. multiprocessing — プロセスベ…

Pythonのプログラムをメモリ管理する。

Pythonってメモリ使いすぎる...。てことで、標準モジュールのresourceを使って、使用メモリのサイズを制限しましょう。 #!/usr/bin/env python # coding:utf-8 import resource rsrc = resource.RLIMIT_AS soft, hard = resource.getrlimit(rsrc) ## Memory …

numpyのarrayからwhereを使って、指定した2つ以上の条件の要素を取り出す方法。

まずは、nnumpyp.whereの紹介。 mat =\ [[ 0 1 2 3 4 5 6 7 8 9] [10 11 12 13 14 15 16 17 18 19] [20 21 22 23 24 25 26 27 28 29] [30 31 32 33 34 35 36 37 38 39] [40 41 42 43 44 45 46 47 48 49] [50 51 52 53 54 55 56 57 58 59] [60 61 62 63 64 65…

numpy.arrayによる2次元配列から任意の列を抽出する方法

2次元配列を扱っていると、ある列だけ取り出したいことはよくあることです。そんなときに、np.arrayを使いましょう。 対象と成る配列は以下のようになります。 mat =\ [[ 0 1 2 3 4 5 6 7 8 9] [10 11 12 13 14 15 16 17 18 19] [20 21 22 23 24 25 26 27 2…

Python中級者向けで気になる本の紹介。

自分のPythonの知識が初級から中級の間にあると思うので、気になる本を紹介したいと思います。(もちろん、私は読みません。お金がありません。こういう本があるということを知っていることが重要だと思います。)とりあえず、自分が考える初級、中級、上級と…

第9回:Pythonでネットワークプログラミング(ICMPの解読)

第8回:Pythonでネットワークプログラミング(UDPホストの特定)

第7回:Pythonでネットワークプログラミング(sshトンネリング)

第6回:Pythonでネットワークプログラミング(Pramikoを使ってssh)

第5回:Pythonでネットワークプログラミング(TCPプロキシ)

pythonによるプロキシのプログラムです。ほぼ写経ですので、詳しく知りたい方は、参考文献をご参考ください。このプログラムは、プロキシの役割を通りにホスト←→プログラム←→クライアントを実現します。 #!/usr/bin/env python import sys import socket imp…

第4回:Pythonでネットワークプログラミング(Netcat的なものを実装)

そもそも、Netcaってなんなの?ということで、Wikipediaへ。どうやら、TCPやUDPのパケットを読み書きできるコマンドラインツールらしい...。とりあえず、本で紹介されているので実装してみましょう。紹介したプログラムは、ファイルのアップロード、コマンド…

第3回:Pythonでネットワークプログラミング(TCPサーバーを立てる)

TCPを使った通信では、クライアントはコネクションの確立を行うことが重要でした。socketの作成は慣れです。これは、C言語と非常に似ています。Pythonでネットワークプログラミングを勉強しておけば、C言語で勉強するときにも役に立つはずです。そもそも、ネ…

第2回:Pythonでネットワークプログラミング(クライアントとして、サーバーにUDPデータを送信する)

タイトル通り早速やってみましょう。今回は、udpのパケットを作成して送信します。以下のプログラムを実行しても、サーバーを作成していないため、止まってしまいます。 クライアントとして、サーバーにUDPデータを送信する #! /usr/bin/env python # coding…

第1回:Pythonでネットワークプログラミング(クライアントとして、サーバーにTCP接続をする)

最近、Pythonにはまっています。ネットワークの勉強がてら、Pythonでネットワークプログラミングをしてみたいと思います。今日がシルバーウィークの最終日ですので、出来限り更新したいと思います。記事が中途半端になっていたら、そこで力尽きたと思ってく…

Pythonでアルファベットの文字列を習得する方法

タイトル通りです。いちいち自分で書くのが面倒なときに便利。 #!/usr/bin/env python import string print string.uppercase print string.lowercase 出力 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz

urllib2を使ってサイトの情報をゲットしよう。

サーバーを立てると、サイト中に他のサイトの情報を載せたい場合があります。例えば、まとめサイトの運営とかも他のサイトの変化をキャッチして、それをまとめているのかもしれません。そのようなとき、Djangoサーバーでは、有効なライブラリーはurllib2です…

ProDyを使ってみよう.vol4!!!(B-factor)

前回に引き続き、ProDyの記事。計算機で算出されるRMSFとPDBのB-factorはよく比較されます。結晶構造のB-factorが必ずしも正しいと言うわけではないですが...。新しいポテンシャルを開発した時などは結晶構造の揺らぎを再現出来ているかなど、一応チェックが…

Pythonの基本!?#3(書式を指定して読み込む。)

以下、大嘘!調査中! PDBのファイルは書式が指定されています。そんなとき、splitや文字列の何文字目から何文字目までを配列の引数として指定するのは面倒です。てことで書式を指定して、読み込みましょう。(pdbを読み込むならProDyを使いましょう。PDBを読…

Pythonでテストっ!!!

個人で、プログラミングをしている人って、テストがいい加減だったりします。(私のことです。) しっかり管理しましょう。おすすめのブログを発見したので、ご紹介。(グーグル先生に「テスト Python」で聞けば、一番最初に表示されます。) Python nose で…

Python中級者??

最近、以下の本に知りたいと思っていることが多々載っていることに気付いた。中級者向けのpython本なので、やっと晴れて中級者になったのかな?普段からPythonを使い、文末のキーワードについて考えたことがある人にオススメの本です。二冊紹介しますが、記…

PythonでAnaconda!!

どうやら、Pythonには数値計算パッケージを集めたAnacondaなるものがあるらしい。Continuum Analyticscontinuum.io

ProDyを使ってみよう.vol2!!!(重ね合わせ)

ProDyを使って2つのpdbファイルを重ね合わせをして、結果のpdbファイルを書き出してみましょう。 1Z14.pdbにmodel1Z14.pdbを重ね合わせたいとと思います。1Z14.pdbは、N末端から38残基までの結晶構造がありません。model1Z14.pdbは、そのN末端をModellerを使…