จาก 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].

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

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

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

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

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

อ่าน input file โดยใช้ Mathematica

จากตัวอย่างเกี่ยวกับการหาคำแรกหรือชื่อตัวแปรจาก input file http://www.sakngoi.com/?p=69 เราสามารถเขียนโดยใช้ Mathematica ได้เช่น

ExtractVal[txtin_List, keyword_String] := Module[{pos, val},
(* extract the value of the keyword from the input file *)
(* txtin = Import[inputfile,”Table”]; *)
pos = Select[Position[ToLowerCase /@ txtin, keyword], #[[2]] == 1 &];
If[Length@pos == 1, val = txtin[[pos[[1, 1]], 2]];];
val
];

โดยที่ keyword ใน function ExtractVal นั้นก็เป็นชื่อตัวแปรที่เราต้องการนำไปใช้

ตัวอย่าง function ReadPar นี้จะให้ค่าที่อ่านได้จาก input file โดยในที่นี้สมมุติให้ ชื่อตัวแปรที่ต้องการค่าสำหรับ function DistributeN มีดังนี้คือ “initn”, “lifecycle”, “mu”, และ “sigma”

ReadPar[inputfile_String] := Module[{txtin, outls, distributenparms},
txtin = Import[inputfile, “Table”];
outls = {};

(* for DistributeN *)
distributenparms = {“initn”, “lifecycle”, “mu”, “sigma”};
outls = ToExpression/@(ExtractVal[txtin, #] & /@ distributenparms);

If[Length@outls!=Length@distributenparms,
Print[“Please check your input file. Some values are missing.”];
];

outls
];

ตัวอย่างของ input file (input.in)

initN    2.30*10^11
Mu       10
LifeCycle    48
Sigma    5

การใช้ก็เพียงพิมพ์ ReadPar[“input.in”] โดยคำตอบที่ได้จะเป็น

{2.3*10^11, 48, 10, 5}

Debian Lenny

เพราะความอยากรู้อยากเห็นนี่แหละเป็นตัวขับเคลื่อนให้มีการเรียนรู้สิ่งใหม่ๆ  นี่ก็เป็นอีกครั้งหนึ่งที่ยอม ลง Linux ใหม่โดยเปลี่ยนจาก Fedora ที่ใช้มาถึงเกือบสามปีแล้วไปเป็น Debian ตัว Debian รุ่นที่ลงคือ Lenny amd64 ก็ต้องบอกเลยว่าเดี๋ยวนี้ Linux ติดตั้งง่ายมาก

จริงๆแล้วรุ่นล่าสุด คือ Squeeze ซึ่งเปิดตัวเป็นทางการเมื่อ 6 ชม. (6 ก.พ. 2554) ที่ผ่านมานี้เอง ^_^’

การหาคำแรกในบรรทัด

ในหลายโปรแกรมจะมีการอ่านค่าพารามิเตอร์จาก text file โดยที่จะมีชื่อของพารามิเตอร์หรือตัวแปรอยู่ใน column แรกและค่าที่เราจะส่งผ่านเข้าในโปรแกรมจะอยู่ใน column ถัดไปโดยมี space ระหว่างตัวแปรและค่านี้ เช่น

InitialParasites         2.3*10^10

MeanAge           10

โปรแกรมเหล่านี้จะอ่านค่า input จาก text file ทีละบรรทัดโดยจะมีการหาว่าตัวแปรที่โปรแกรมต้องการแต่ละตัวอยู่ในบรรทัดใด จากนั้นก็จะส่งผ่านค่าไปให้ตัวพารามิเตอร์ตัวนั้นในโปรแกรม

นี่เป็นตัวอย่างภาษา C ที่ใช้ในการหาคำแรก (พารามิเตอร์) จากบรรทัดที่อ่านเข้ามา (source) ตัวอย่างนี้มีการใช้ isspace ซึ่งเป็น function ที่ใช้ในการหา white space หรือที่ว่างระหว่างคำ เช่น ‘ ‘ , ‘\t’, ‘\n’, ‘\v’, ‘\f’, ‘\r’  (ต้องมีการโหลด ctype.h หรือ cctype ก่อนครับ)

//find the first word from a line
void find_first_word(char *source, char *word)
{
int i=0;    //  Position within source
int j=0;    //  Position within word

/*  Skip leading white space                    */
while((source[i] != ‘\0’) && isspace(source[i]))
i++;

/*  Copy the word                        */
while((source[i] != ‘\0′) && !isspace(source[i]))
{
word[j]=source[i];
i++;
j++;
}

word[j]=’\0’;

return;
}