根據提供的值計算並添加劑量範圍我正在建立一個腳本來導入和分析生物測定中生成的原始樣本數據。
為此,需要識別參考數據和樣本數據並設定相應的劑量範圍。
在我的腳本中,我添加了一個「樣本資訊」彈出窗口,操作員可以在其中識別樣本位置(第 x + x 行)並輸入這些樣本所需的劑量範圍。這就是我奮鬥的地方!

樣本名稱已正確添加到數據表中,但如何根據其中輸入的值獲取劑量點?
該腳本應該能夠根據起始濃度和稀釋因子計算每個劑量點。
我希望它看起來像什麼(請參閱“劑量”列,在此示例中手動輸入):

有什麼建議嗎?
我正在 JMP 18 中工作,到目前為止我的範例資訊彈出腳本:
nw = New Window( "Sample info", << Modal,
H List Box(
Panel Box( "Enter Sample names",
V List Box(
Text Box( "Row A+E" ),
AE = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row B+F" ),
BF = val2 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row C+G" ),
CG = val3 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row D+H" ),
DH = val4 = Text Edit Box( "", << Set Width( 200 ) );
)
),
Spacer Box( Size( 10, 10 ) ),
V List Box(
Panel Box("Calculate dosepoints",
V List Box(
Text Box( "Start Conc. (ng/mL)" ),
Conc = Number Edit Box( ),
Text Box( "n Dosepoints" ),
nDP = Number Edit Box( 12 ),
Text Box( "Factor" ),
xF = Number Edit Box( 0.2 ),
)
),
Spacer Box( Size( , 8 ) ),
H List Box(
Spacer Box( Size( 77, 1 ) ),
Button Box("Ok",
val1 = AE << Get text ();
val2 = BF << Get text ();
val3 = CG << Get text ();
val4 = DH << Get text ();
val5 = Conc << Get ();
val6 = nDP << Get ();
val7 = xF << Get ();
Current Data Table() << New Column( "Sample", Character, "Nominal",
Formula(
Match( :Row,
"A", val1,
"E", val1,
"B", val2,
"F", val2,
"C", val3,
"G", val3,
"D", val4,
"H", val4
)
)
);
Current Data Table() << New Column( "Dose", Character, "Nominal",
//Formula( ????
// )
),
)
)
)
)
);我添加了一個範例資料表,上面的腳本應該在其中運行。
自動化和腳本編寫數據探索和視覺化回覆:根據提供的值計算並添加劑量範圍也許是這樣的
Eval(EvalExpr(
dt << New Column("R", Numeric, Continuous, Formula(
Expr(start_conc)/ Expr(factor) ^ (Col Number(:Sample, :Sample) - Col Cumulative Sum(1, :Sample))
));
));
回覆:根據提供的值計算並添加劑量範圍幾乎!
我稍微修改了你的腳本,並能夠計算出其中 1 個重複的正確劑量範圍! (見附件)。另一個重複應該具有相同的值(即 20.000 - 0.0004 ),但會繼續除重複 2 的最後結果。
因此,對於位於A 行(重複1)和E(重複2)中的樣品“RS”,E 行值的範圍是所需的20.000 到0.0004 範圍,但對於A 行,範圍是0.0008 - 1.67e-12 。
nw = New Window( "Sample info", << Modal,
H List Box(
Panel Box( "Enter Sample names",
V List Box(
Text Box( "Row A+E" ),
AE = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row B+F" ),
BF = val2 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row C+G" ),
CG = val3 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row D+H" ),
DH = val4 = Text Edit Box( "", << Set Width( 200 ) );
)
),
Spacer Box( Size( 10, 10 ) ),
V List Box(
Panel Box("Calculate dosepoints",
V List Box(
Text Box( "Start Conc. (ng/mL)" ),
Conc = Number Edit Box( ),
Text Box( "n Dosepoints" ),
nDP = Number Edit Box( 12 ),
Text Box( "Factor" ),
xF = Number Edit Box( 0.2 ),
)
),
Spacer Box( Size( , 8 ) ),
H List Box(
Spacer Box( Size( 77, 1 ) ),
Button Box("Ok",
val1 = AE << Get text ();
val2 = BF << Get text ();
val3 = CG << Get text ();
val4 = DH << Get text ();
val5 = Conc << Get ();
val6 = nDP << Get ();
val7 = xF << Get ();
Current Data Table() << New Column( "Sample", Character, "Nominal",
Formula(
Match( :Row,
"A", val1,
"E", val1,
"B", val2,
"F", val2,
"C", val3,
"G", val3,
"D", val4,
"H", val4
)
)
);
Eval(
EvalExpr(
Current Data Table() << New Column( "R", Numeric, Continuous,
Formula(
Expr(val5) / Expr(val7) ^ ( Col Number( :Sample, :Sample ) - Col Cumulative Sum( 1, :Sample ))
)
);
)
);
)
)
)
)
);
回覆:根據提供的值計算並添加劑量範圍您必須在 Col Number 和 Col Cumulative Sum 中新增額外的分組(例如,行可能有效)
20000 / 5 ^ (Col Number(:Sample, :Sample, :Row) - Col Cumulative Sum(1, :Sample, :Row))

回覆:根據提供的值計算並添加劑量範圍是的,這很完美!謝謝你!