Hello,
I'm trying to put together a script which would determine whether a data (XYZ %) collected for a specific subject (unique_subject_id) is significantly different from a reference population (such as vehicle in 'test_article_type' column). In addition, for a given subject there can be several data collected across multiple locations (variables).
Running the one-sample t-test seems simple enough but I'm struggling to find a way to carry along the 'unique_subject_id and variables' info along when running the 'test mean' option in distribution platform making use of the 'XYZ %' value for each 'unique_subject_id_variables' using a for loop.
I can't think of a way to way to carry over the 'unique_subject_id_variables' label into the distribution platform to enable bring the Pvalue generated back into the parent table without a risk of mix up.
Any suggestions would be greatly appreciated.
Best,
Sebastien
// The distribution for the "XYZ % (Norm to Ctrl Gene/Ctrl Grp)" is assessed for each variables separately for the 'vehicle' samples only ('test_article_type')
//This is used as the starting point to assess whether each "XYZ % (Norm to Ctrl Gene/Ctrl Grp)" values for every unique_subject_id is similar or not to the a reference population (ie 'vehicle') for their respective variables.
// the unique_subject_id_variables is not carried over in the pvalue report table so there is a risk of mix up when merging the Pvalue back to the main table
Names Default To Here( 1 );
Clear Log();
try(data Table( "one sample t-test validation Anonymized")<<close window);
datat = Expr(
dt = New Table( "one sample t-test validation Anonymized",
Add Rows( 99 ),
New Column( "unique_subject_id_variables",
Character,
"Nominal",
Set Values(
{"usid__0 # specimen__0 # specimen__0",
"usid__1 # specimen__0 # specimen__0",
"usid__2 # specimen__0 # specimen__0",
"usid__3 # specimen__0 # specimen__0",
"usid__4 # specimen__0 # specimen__0",
"usid__5 # specimen__0 # specimen__0",
"usid__6 # specimen__0 # specimen__0",
"usid__7 # specimen__0 # specimen__0",
"usid__8 # specimen__0 # specimen__0",
"usid__9 # specimen__0 # specimen__0",
"usid__10 # specimen__0 # specimen__0",
"usid__11 # specimen__0 # specimen__0",
"usid__12 # specimen__0 # specimen__0",
"usid__13 # specimen__0 # specimen__0",
"usid__14 # specimen__0 # specimen__0",
"usid__15 # specimen__0 # specimen__0",
"usid__16 # specimen__0 # specimen__0",
"usid__17 # specimen__0 # specimen__0",
"usid__18 # specimen__0 # specimen__0",
"usid__19 # specimen__0 # specimen__0",
"usid__20 # specimen__0 # specimen__0",
"usid__21 # specimen__0 # specimen__0",
"usid__22 # specimen__0 # specimen__0",
"usid__23 # specimen__0 # specimen__0",
"usid__24 # specimen__0 # specimen__0",
"usid__25 # specimen__0 # specimen__0",
"usid__26 # specimen__0 # specimen__0",
"usid__27 # specimen__0 # specimen__0",
"usid__28 # specimen__0 # specimen__0",
"usid__29 # specimen__0 # specimen__0",
"usid__30 # specimen__0 # specimen__0",
"usid__31 # specimen__0 # specimen__0",
"usid__32 # specimen__0 # specimen__0",
"usid__33 # specimen__0 # specimen__0",
"usid__34 # specimen__0 # specimen__0",
"usid__35 # specimen__0 # specimen__0",
"usid__36 # specimen__0 # specimen__0",
"usid__37 # specimen__0 # specimen__0",
"usid__38 # specimen__0 # specimen__0",
"usid__39 # specimen__0 # specimen__0",
"usid__40 # specimen__0 # specimen__0",
"usid__41 # specimen__0 # specimen__0",
"usid__42 # specimen__0 # specimen__0",
"usid__43 # specimen__0 # specimen__0",
"usid__44 # specimen__0 # specimen__0",
"usid__258 # specimen__1 # specimen__1",
"usid__259 # specimen__1 # specimen__1",
"usid__260 # specimen__1 # specimen__1",
"usid__261 # specimen__1 # specimen__1",
"usid__262 # specimen__1 # specimen__1",
"usid__263 # specimen__1 # specimen__1",
"usid__264 # specimen__1 # specimen__1",
"usid__265 # specimen__1 # specimen__1",
"usid__266 # specimen__1 # specimen__1",
"usid__267 # specimen__1 # specimen__1",
"usid__268 # specimen__1 # specimen__1",
"usid__269 # specimen__1 # specimen__1",
"usid__3 # specimen__1 # specimen__1",
"usid__4 # specimen__1 # specimen__1",
"usid__5 # specimen__1 # specimen__1",
"usid__6 # specimen__1 # specimen__1",
"usid__7 # specimen__1 # specimen__1",
"usid__8 # specimen__1 # specimen__1",
"usid__9 # specimen__1 # specimen__1",
"usid__10 # specimen__1 # specimen__1",
"usid__11 # specimen__1 # specimen__1",
"usid__12 # specimen__1 # specimen__1",
"usid__13 # specimen__1 # specimen__1",
"usid__14 # specimen__1 # specimen__1",
"usid__15 # specimen__1 # specimen__1",
"usid__16 # specimen__1 # specimen__1",
"usid__17 # specimen__1 # specimen__1",
"usid__18 # specimen__1 # specimen__1",
"usid__19 # specimen__1 # specimen__1",
"usid__20 # specimen__1 # specimen__1",
"usid__21 # specimen__1 # specimen__1",
"usid__22 # specimen__1 # specimen__1",
"usid__23 # specimen__1 # specimen__1",
"usid__24 # specimen__1 # specimen__1",
"usid__25 # specimen__1 # specimen__1",
"usid__26 # specimen__1 # specimen__1",
"usid__27 # specimen__1 # specimen__1",
"usid__28 # specimen__1 # specimen__1",
"usid__29 # specimen__1 # specimen__1",
"usid__30 # specimen__1 # specimen__1",
"usid__31 # specimen__1 # specimen__1",
"usid__32 # specimen__1 # specimen__1",
"usid__33 # specimen__1 # specimen__1",
"usid__34 # specimen__1 # specimen__1",
"usid__35 # specimen__1 # specimen__1",
"usid__36 # specimen__1 # specimen__1",
"usid__270 # specimen__1 # specimen__1",
"usid__271 # specimen__1 # specimen__1",
"usid__272 # specimen__1 # specimen__1",
"usid__273 # specimen__1 # specimen__1",
"usid__274 # specimen__1 # specimen__1",
"usid__275 # specimen__1 # specimen__1",
"usid__276 # specimen__1 # specimen__1",
"usid__277 # specimen__1 # specimen__1"}
)
),
New Column( "test_article_type",
Character,
"Nominal",
Set Values(
{"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "treated", "treated", "treated", "treated", "treated",
"treated", "treated", "treated", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle", "Vehicle",
"Vehicle", "treated", "treated", "treated", "treated", "treated",
"treated", "treated", "treated"}
),
Set Display Width( 84 )
),
New Column( "XYZ % (Norm to Ctrl Gene/Ctrl Grp)",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[70.7292995678, 112.4066409259, 127.1337716199, 119.0699036192,
84.0440858481, 76.2767788646, 73.9994431936, 118.1242883899,
140.0821898576, 92.8557004913, 95.5476097358, 103.476200569,
88.2959291901, 185.1066685393, 65.7424109439, 135.3438048642,
78.115536104, 84.5061491834, 59.413300606, 229.4460446099, 62.324210298,
82.7933596713, 40.374742667, 83.7793132302, 101.2823295236,
102.7750249797, 93.9660140876, 90.6790938288, 112.5798671039,
71.3464625677, 76.6144360558, 106.8105439797, 145.2285573968,
113.4552779083, 97.8761647105, 104.8833795748, 83.7851778064,
363.6479040246, 593.2177872797, 338.9776023605, 12251.5964828961,
10659.9921741746, 155.7496267721, 110.7609307723, 123.0528086807,
75.9651078862, 78.901097561, 91.1923257334, 139.8951266527, 84.517414287,
106.0545732797, 122.3835782845, 101.0907763155, 80.2178066419,
160.8931596226, 57.1298821594, 101.7591515761, 160.8371153439,
62.615749322, 101.6925131702, 105.6293432014, 81.1762408673,
143.0169269825, 76.5726799394, 68.4594311734, 121.3364674899,
113.8101787988, 82.7807527782, 102.9429057597, 100.7617085055,
111.848488432, 101.8907035248, 64.6287947112, 48.7063540519,
81.7671252762, 234.1922187547, 137.2780035346, 49.0544100373,
49.0018883453, 78.9409931796, 155.3972324857, 82.2956266873,
83.3661476474, 136.414023531, 88.6126088132, 104.2533449279,
70.7200227279, 68.2493707963, 217.0852683415, 62.5031417282,
52.1622191339, 104.1725664068, 80.3377719304, 126.2450341945,
109.1091897028, 94.4412324502, 87.01762478, 246.5252120171,
75.3144473622]
),
Set Display Width( 233 )
),
New Column( "One sample ttest reference",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[70.7292995678, 112.4066409259, 127.1337716199, 119.0699036192,
84.0440858481, 76.2767788646, 73.9994431936, 118.1242883899,
140.0821898576, 92.8557004913, 95.5476097358, 103.476200569,
88.2959291901, 185.1066685393, 65.7424109439, 135.3438048642,
78.115536104, 84.5061491834, 59.413300606, 229.4460446099, 62.324210298,
82.7933596713, 40.374742667, 83.7793132302, 101.2823295236,
102.7750249797, 93.9660140876, 90.6790938288, 112.5798671039,
71.3464625677, 76.6144360558, 106.8105439797, 145.2285573968,
113.4552779083, 97.8761647105, 104.8833795748, 83.7851778064, ., ., ., .,
., ., ., ., 75.9651078862, 78.901097561, 91.1923257334, 139.8951266527,
84.517414287, 106.0545732797, 122.3835782845, 101.0907763155,
80.2178066419, 160.8931596226, 57.1298821594, 101.7591515761,
160.8371153439, 62.615749322, 101.6925131702, 105.6293432014,
81.1762408673, 143.0169269825, 76.5726799394, 68.4594311734,
121.3364674899, 113.8101787988, 82.7807527782, 102.9429057597,
100.7617085055, 111.848488432, 101.8907035248, 64.6287947112,
48.7063540519, 81.7671252762, 234.1922187547, 137.2780035346,
49.0544100373, 49.0018883453, 78.9409931796, 155.3972324857,
82.2956266873, 83.3661476474, 136.414023531, 88.6126088132,
104.2533449279, 70.7200227279, 68.2493707963, 217.0852683415,
62.5031417282, 52.1622191339, ., ., ., ., ., ., ., .]
)
),
Set Row States(
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
)
)
);
datat;
dt = data Table( "one sample t-test validation Anonymized");
variable = {"XYZ % (Norm to Ctrl Gene/Ctrl Grp)"};
dtnr = N Rows( dt );
platform = dt << Distribution(
Continuous Distribution(
invisible,
Column( "One sample ttest reference" ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Histograms only,
Vertical( 0 ),
Outlier Box Plot( 0 ),
By( :variables )// does not appear to be used by the platform
)
);
// each unique_subject_id_variables has a unique data value "XYZ % (Norm to Ctrl Gene/Ctrl Grp)" associated to it
// loop to calculate the significance for each unique_subject_id using the data "XYZ % (Norm to Ctrl Gene/Ctrl Grp)"
For( i = 1, i <= dtnr, i++,
platform << test mean( Column(variable[1] )[i] )
);
// currently the resulting the testing of the mean for each unique_subject_id_variables is not referenced in the platform so when making a combined data table from the pValues, it is tricky to update the original table and being confident that proper data is merged where it should. It is further complicated when factoring in the 'by' option with 'variables'
Wait( 0 );
Report( platform )[Outline Box( "Distributions" )][Outline Box( "One sample ttest reference" )][Outline Box( "Test Mean" )][Table Box( 2 )] <<
Make Combined Data Table;
ttest = Current Data Table();
ttest << set name( "one sample test report" );
ttest << delete columns( :t Test, :Y );
:column 3 << set name( "tTest Pvalue" ) << set format( Format( "Best" ) );
ttest << select where( :Column 1 == "Test Statistic" ) << delete rows;
// split the table prior to merging back to the parent table
ttestsplit = ttest << Split( Split By( :Column 1 ), Split( :tTest Pvalue ), Output Table( "one sample test report split" ) );
ttest << close window;
dt << Update( With( ttestsplit ) );// I don't have confidence that the merge is accurate since there is no reference of the 'unique_subject_id_variables'