Categories
Molecular Dynamics

มาลองทำ Molecular Dynamics Simulation ของโปรตีนกันครับ 2

ต่อจากตอนที่แล้ว (http://www.sakngoi.com/?p=189)ครับ

Molecular dynamics (MD) ก็เป็นเทคนิคที่ฮิตฮอตสำคัญอันหนึ่งที่นักวิทยาศาสตร์ใช้ในการศึกษาเกี่ยวกับการเคลื่อนไหวหรือสั่นไหวของโมเลกุลต่างๆ โดยเค้าจะมองว่าพันธะที่คอยเชื่อมต่ออะตอมเข้าด้วยกันเป็นโมเลกุลนี้เป็นเหมือนสปริงที่เชื่อมลูกบอลเข้าไว้ด้วยกัน  ซึ่งพลังงานศักย์ทั้งหมดของระบบก็จะมาจากผลรวมทั้งหมดของ interaction ระหว่างลูกบอลที่เชื่อมกันผ่านสปริง(bond) และระหว่างสปริงด้วยกัน(non-bonded) ถ้าใครที่เรียนมาก็คงจะจำได้ว่าแรงของปริงนี้เป็นแรงอนุรักษ์ซึ่งเราจะเขียนได้ว่าแรงทั้งหมดที่กระทำกับลูกบอล(อะตอม) i นี้เขียนได้ว่า
F_i=-\nabla E

โดย E ก็คือพลังงานศักย์ ซึ่งเราเราสามารถเขียนได้ว่า E_{total}=E_{bond}+E_{non-bonded} โดยเทอมที่ไม่เป็นพันธะสามารถเขียนได้ว่าเป็นผลรวมศักย์จากแรงวันเดอร์วาลส์กับแรงจากประจุไฟฟ้า E_{non-bond}=E_{vdW}+E_{elec} โดย E_{elec}=\sum_{i=1}^{N} \sum_{j=i+1}^{N}\frac{q_iq_j}{4\pi\varepsilon_0 r_{ij}} และ E_{vdW}= \sum_{i=1}^{N} \sum_{j=i+1}^{N}4\varepsilon\left(\frac{\sigma_{ij}^{12}}{r_{ij}^{12}}-\frac{\sigma_{ij}^{6}}{r_{ij}^{6}}\right)

ส่วนพลังงานศักย์ของแรงจากพันธะก็สามารถเขียนได้ว่าเป็นรวมจากรูปแบบของพันธะที่เป็นไปได้ทั้งหมด (ดูรูป เดี๋ยวมาใส่ให้ครับ)

E_{bond}=E_{stretch}+E_{angle}+E_{out-of-plane}+E_{str-str}+...
หรือ
E_{bond}=\frac{1}{2}\sum_\text{angles}k_a\left(\theta-\theta_0\right)^2+\frac{1}{2}\sum_\text{bonds}k_b\left(l-l_0\right)^2+

\sum_\text{bonds}k_d\left(1 + \cos\left(n\phi-\phi_0\right)\right)+\sum_{\text{improper}}k_i\left(\omega-\omega_0\right)^2
สมการที่เขียนมานี่ก็เป็นเพียงตัวอย่างเท่านั้นครับซึ่งมันจะแตกต่างกันไป ขึ้นกับว่าเราเป็นสาวกของสำนักไหน 🙂 แต่ล่ะสำนักก็จะมีรูปแบบของฟังก์ชั่นและค่า constants ต่างๆที่ใช้แตกต่างกัน (เราเรียก พวกฟังก์ชั่นนี้ว่า force field)
force field ที่เป็นที่นิยมกันก็ได้แก่

AMBER (Assisted Model Building with Energy Refinement, http://ambermd.org/)

OPLS, OPLS-AA (Optimized Potentials for Liquid Simulations,http://zarbi.chem.yale.edu/)

CHARMM (Chemistry at HARvard Macromolecular Mechanic, http://mackerell.umaryland.edu/MacKerell_Lab.html)

GROMOS (GROningen Molecular Simulation, http://www.gromos.net/)

โดยปกติเค้าจะไม่เอาแต่ล่ะ force field มาใช้ปนกันครับ

มาต่อที่เรื่องของสมการนิวตันที่เราได้ครับ F_i=m_i\frac{d^2r_i}{dt^2}=-\nabla E  ซึ่งเป็นสมการที่แสดงความสัมพันธ์ของพลังงานศักย์กับระยะทางหรือตำแหน่งของอะตอมที่เราสนใจ เราสามารถแก้สมการนี้โดยอาศัยวิธีที่เรียกว่า Verlet หรือ Leap-fr0g ใครที่เรียนเรื่อง numerical analysis มาคงเข้าใจนะครับ เพราะมันก็เป็นวิธีการอินทีเกรตทำธรรมดา แตกกันก็เพียงว่าจะเอากี่เทอม เริ่มที่ตรงไหนก่อนเท่านั้นเอง

ใครที่สนใจเรื่องการเขียนโปรแกรมเกี่ยวกับ MD นี้ลองดูที่นี่ครับ http://www.sakngoi.com/?p=64

ต่อตอนที่ 3

Categories
Molecular Dynamics

มาลองทำ Molecular Dynamics Simulation ของโปรตีนกันครับ 1

มาลองทำ Molecular Dynamics Simulation ของโปรตีนกันครับ

โปรแกรมที่ผมใช้ในการคำนวณคือ NAMD ส่วนที่เอาไว้ใช้ดูโครงสร้างสวยๆของโปรตีนคือ VMD

ทั้งสองโปรแกรมนี้ฟรีครับ

โปรตีนที่ผมพูดถึงนี้ก็คือ HIV 1-RT (reverse transcriptase) ครับ เราจะมาลองดูครับว่าเจ้าสาย DNA หรือโครงสร้างของโปรตีนแถวๆ Active site ของมันจะมีการเปลี่ยนแปลงไปยังไงบ้างถ้าเราใส่ตัว Inhibitor หรือยาอย่าง adefovir หรือ tenofovir เข้าไป โครงสร้างของโปรตีนที่ผมใช้คือ 1T05 ซึ่งสามารถdownload ได้จากเวบ www.pdb.org

รูปด้านล่างนี้แสดงลำดับของนิวคลีโอไทด์กับตำแหน่งของกรดอะมิโนจากโปรตีนที่ผมว่าจะเอาไว้ดูว่ามันเจ้าสายDNA กับ HIV-RT มันมีอะไรกันหรือเปล่า จริงๆแล้วมันก็คือสะพานเกลือครับ 🙂 เรียกตรงๆเลย ผมสนใจว่าเจ้าฟอสเฟตจากสาย DNA กับพวกขั้วบวกจากกรดอะมิโนอย่างไลซีนกับอาร์จินินมันจะแนบแน่นขนาดไหนตลอดเวลาหรือเปล่า ซึ่งผมก็หาอยู่ตั้งนานก็เจอตัวที่ใกล้ที่กันมากที่สุดก็ตามรูปเลยครับ

ส่วนเจ้าสาย DNA เราก็จะดูว่า furanose ring มันมีการผับตัวหรือบิดยังไง (sugar puckering) ในตำแหน่งต่างๆ

แต่ก่อนจะไปดูว่าเราจะทำ Molecular dynamics ได้อย่างไรเราก็ควรจะเข้าใจก่อนสักนิดหนึ่งว่า Molecular dynamics คืออะไรซึ่งเดี๋ยวผมจะเล่าให้ฟังคร่าวๆนะครับส่วนใครที่สนรายละเอียดทางด้านทฤษฎีของ Molecular dynamics ผมแนะนำให้อ่านหนังสือตามนี้เลยครับ

The Art of Molecular Dynamics Simulation by D. C. Rapaport

Understanding Molecular Simulation, Second Edition: From Algorithms to Applications (Computational Science) by Daan Frenkel and Berend Smit

Molecular Modeling and Simulation by Tamar Schlick

Molecular Modelling: Principles and Applications (2nd Edition) by Andrew R. Leach

Computer Simulation of Liquids by M. P. Allen and D. J. Tildesley

ทำไมถึงต้องเป็นห้าเล่มนี้ ง่ายๆเลยครับเพราะผมมีแค่ห้าเล่มนี้เอง 🙂

ต่อตอน 2

Categories
Mathematica

switching between notebooks in Mathematica

ถ้าจะสวิชระหว่าง notebooks ใน Mathematica กด Ctrl+F6

shortcut อื่นๆดูได้ที่
http://reference.wolfram.com/mathematica/tutorial/KeyboardShortcutListing.html

Categories
Mathematica

การใส่ไฟล์ CDF ใน HTML

เครื่องที่จะเปิดดูไฟล์ต้องลง CDF player ก่อนนะครับ

ถ้าจะ embed ไฟล์ cdf ลงใน html สามารถทำได้ตามนี้ครับ

<embed src="ไฟล์.cdf" width="588" height="380">

หรือ

<object classid="clsid:612AB921-E294-41AA-8E98-87E7E057EF33"
width="500" height="300"
type="application/vnd.wolfram.cdf.text">
<param name="src" value="ไฟล์.cdf">
<embed width="500" height="300" src="ไฟล์.cdf"
type="application/vnd.wolfram.cdf.text">
</object>

หรือจะใช้ script

<script type="text/javascript" src="http://www.wolfram.com
/cdf-player/plugin/v2.1/cdfplugin.js"></script>
<script type="text/javascript">
	var cdf = new cdfplugin();
	cdf.embed('/path/to/ไฟล์.cdf', width, height);
</script>

ที่มา

http://wolfram.com/cdf/adopting-cdf/deploying-cdf/web-delivery.html

 

####

เสียดายที่ CDF ใช้ไม่ได้กับ browser ตัวใหม่ๆแล้ว ทาง Wolfram เองก็แนะนำให้ใช้กับ Wolframcloud แทน ดูเพิ่มเติมได้ที่นี่ครับ http://www.wolfram.com/cdf/adopting-cdf/deploying-cdf/web-delivery-cloud.html

Categories
IT Mathematica Uncategorized

MathLink แบบง่ายๆ

เดี๋ยวมาเล่าให้ฟังครับ เขียนหัวข้อไว้ก่อน 😛

MathLink

Categories
IT

External Hard Disk กับ Linux

ผมซื้อ External Hard Disk(HD) ตัวหนึ่งยี่ห้อ Western Digital (WD) ขนาด 1 TB มาเอาไว้ใช้สำรองข้อมูลจากเครื่อง laptop ของผมซึ่งเป็นระบบปฏิบัติการ Linux Debian (Lenny) ผมมีปัญหาอยู่ว่าพอต่อ HD ผ่าน USB port กับ laptop แล้วมันมองเห็นข้อมูลใน HD แต่ไม่สามารถเขียนลงไปได้  ซึ่งผมก็ได้ลองใช้คำสั่ง

fdisk -l

เพื่อดูว่า HD ใช้ filesystem แบบไหนก็พบว่าเป็น NTFS  แล้วใช้ คำสั่ง

mount -t ntfs /dev/sdb1 /media/XHD -o rw

ก็พบว่ายังไม่สามารถทำให้สามารถเขียนข้อมูลลงในHDได้  ก็เลยหาข้อมูลดูพบว่า Debian ตัวที่ผมใช้อยู่นี้ยังไม่ได้ลงpackage ที่จะช่วยให้สามารถเขียนข้อมูลบนfilesystem ที่เป็น ntfs ไว้ ซึ่ง package ที่ว่านี้ก็คือ ntfs-3g ผมจึงได้ทำการติดตั้ง package นี้ผ่าน Synaptic package manager ซึ่งหลังจากติดตั้งเสร็จผมก็ทำการ mount HD ด้วยคำสั่ง

mount -t ntfs-3g  /dev/sdb1 /media/XHD -o rw

ซึ่งก็สำเร็จครับ สามารถเขียน ลบ อ่าน ข้อมูลบน HD ตัวนี้ได้ตามที่ตั้งใจ

 

Categories
Mathematica

การใส่สีพื้นหลังของกราฟจากคำสั่ง Plot

การใส่สีพื้นหลังของกราฟจากคำสั่ง Plot มีหลายวิธีครับ ด้านล่างนี้เป็นตัวอย่างครับ

Plot[Sin[x], {x, 0, 4 \[Pi]}, PlotStyle -> Red, Background -> Gray]

 

Graphics[Inset[
Plot[Sin[x], {x, 0, 4 \[Pi]}, PlotStyle -> White,
Frame -> {True, True, False, False},
FrameStyle -> Directive[White, 12]]], Background -> Gray]

 

bg = Graphics[
Polygon[{{0, 0}, {1, 0}, {1, 1}, {0, 1}},
VertexColors -> {Black, Black, White, White}],
AspectRatio -> Full];
Plot[Sin[x], {x, 0, 4 \[Pi]}, PlotStyle -> Red,
Prolog -> Inset[bg, Scaled[{0, 0}], Scaled[{0, 0}], Scaled[{1, 1}]]]

Categories
Mathematica

เขียน Mathematica package แบบง่ายๆ

มาลองเขียน Mathematica package แบบง่ายๆกันครับ

Mathematica package คืออะไร Mathematica package ก็คือชุดคำสั่งหรือโปรแกรมที่ถูกเขียนขึ้นเพื่อใช้ในการคำนวณเฉพาะด้าน ซึ่งจะมีสกุล .m

โดยถ้าเปิดไฟล์ .m ด้วย text editor อย่างเช่น notepad หรือ Mathematica เองเราจะเห็น code ข้างในมีคำสั่งหลักๆดังนี้ เช่น

BeginPackage[ “ชื่อpackage`”]
คำสั่ง1::usage = “คำสั่ง1[ x] คำอธิบายการใช้คำสั่ง1”
Begin[ “Private`”]
คำสั่ง1[ x_] :=  ….
End[]
EndPackage[]

การเรียกใช้งาน package ใน Mathematica เพียงใช้คำสั่ง Get หรือเครื่องหมาย << เช่น ถ้าpackage เราชื่อ MyPackage ก็เพียงพิมพ์
Get[MyPackage`]
หรือ
<<MyPackage`

ตัวอย่าง Package ชื่อ MyPackage ซึ่งมีคำสั่งอยู่ สองคำสั่งคือ fun1[x ] สำหรับหาค่า x^3 กับ fun2[x,y] สำหรับหาค่า sin(x)*cos(y)

BeginPackage[ “MyPackage`”]

fun1::usage = “fun1[ x] calculates x^3 ”
fun2::usage = “fun2[ x,y] calculates sin(x)*cos(y)”

Begin[ “Private`”]

fun1[ x_] := x^3

fun2[x_,y_]:=Sin[x ] * Cos[y]

End[]
EndPackage[]

ในการทดลองเขียน package ก็เพียงเปิด Mathematica แล้วพิมพ์ Code ของ package
ลงไปใน notebook แล้ว save เป็นแบบ Mathematica package ดูขั้นตอนตามรูปครับ

ในการเรียกใช้งาน package ก่อนอื่นเราต้องทำการบอก Mathematica ก่อนว่า package (MyPackage.m) ของเราอยู่ที่ไหน
ในตัวอย่างนี้สมมุติว่า MyPackage.m อยู่ที่ C:/TEMP ซึ่งเราสามารถบอก Mathematica
โดยใช้คำสั่ง AppendTo เพื่อเพิ่ม “C:/TEMP” เข้าไปในตัวแปร $Path
ซึ่งเป็นตัวแปรที่เก็บ Path หลักๆที่ Mathematica จะใช้ในการค้นหา Package ต่างๆ
หรือจะใช้ Needs[“MyPackage`”,”C:/TEMP/MyPacjage.m”] ในการเรียกใช้งานก็ได้ครับ

Categories
News Uncategorized

จาก f1000.com

http://f1000.com/8615961

by Christopher Plowe

Intrahost modeling of artemisinin resistance in Plasmodium falciparum.

S Saralamba, W Pan-Ngum,…, AM Dondorp, LJ White Proc Natl Acad Sci U S A 2011 Jan 4 108 1:397-402 PMID 21173254 DOI 10.1073/pnas.1006113108

Evaluation details:

Sections:

Genomics,Immunity to Infections,Cellular Microbiology & Pathogenesis,Parasitology,Pharmacogenomics,Pharmacokinetics & Drug Delivery,Antimicrobial Agents

Comments:

Recent reports from clinical trials conducted along the Thai-Cambodian border have provided evidence of prolonged parasite clearance times following treatment with artemisinin derivatives {1, 2}. In this study, the authors have used detailed parasite clearance and pharmacokinetic data, from clinical trials of artesunate conducted in western Cambodia and northwestern Thailand {2}, to develop and validate a mathematical model describing the stage-specific effects of artemisinins. The model predicts that the delayed parasite clearance observed in western Cambodia is most likely due to reduced susceptibility of ring-stage parasites to the drug and predicts that more frequent dosing would accelerate the clearance of artemisinin-resistant parasites. This study contributes to a better understanding of the artemisinin resistance phenotype, which will aid in conducting genome-wide association studies to identify regions of the parasite genome that may be associated with artemisinin resistance, as well as prioritization of candidate genes and polymorphisms for validation, and may also be useful for developing in vitro drug susceptibility assays that correlate better with slow parasite clearance. Widespread resistance to former first-line antimalarial drugs has led most malaria-endemic countries to change to artemisinin-based combination therapies (ACTs) as the first-line antimalarial treatment. However, clinical evidence of emerging resistance to artemisinins, in the form of significantly delayed parasite clearance times following treatment with artemisinin derivatives, has recently been reported in western Cambodia {1,2}. In this study, the authors hypothesize that the delayed parasite clearance observed in western Cambodia is due to a reduced susceptibility of the parasite ring stages to artemisinins. To test the hypothesis, they developed a mathematical model describing the parasite population dynamics by life stage and time and incorporating individual patient pharmacokinetic and pharmacodynamic data derived from participants in clinical trials of artesunate in western Cambodia (where parasite clearance times are dramatically prolonged) and northwestern Thailand (where parasite clearance times are much shorter), and used this model to infer stage-specific drug effects on parasite killing. The model benefited from using individual patient data to quantify and account for known sources of variation affecting parasite clearance, and did not assume any parasite stage-specific dose effect. The best model fits were observed for the Cambodian data when ring-stage drug susceptibility was reduced, supporting the hypothesis that the delayed parasite clearance observed in this area is due to reduced killing of the parasite ring stages. The authors also argue that reduced susceptibility of the rings stages is more consistent with the data and model output than one alternative mechanism, dormancy. As investigators search for a molecular marker of artemisinin resistance, higher priority may be warranted for candidate genes differentially expressed during the ring stages.

References:

{1} Noedl et al. N Engl J Med 2008, 359:2619-20 [PMID:19064625].

{2} Dondorp et al. N Engl J Med 2009, 361:455-67 [PMID:19641202].

Categories
Mathematica

เกี่ยวกับ AppendTo Sow Reap

ดูเหมือนว่าการใช้ AppendTo ในการเก็บค่าของตัวแปรที่สนใจจะทำให้การคำนวณช้าลงเมื่อ list ของตัวแปรมีขนาดใหญ่ขึ้นเรื่อย ๆ

แนะนำว่าควรจะใช้ Sow และ Reap ช่วยจะดีกว่า ซึ่งก็ช่วยได้ เร็วขึ้นมาจริง (รู้สึกได้)

ถ้าต้องการจะใช้ Sow แบบ Parallel ก็ทำแบบนี้ได้ครับ

SetSharedFunction[ParallelSow]
ParallelSow[expr_]:=Sow[expr]