cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Browse apps to extend the software in the new JMP Marketplace
Choose Language Hide Translation Bar
Caspernam
New Member

Limit the number of factors per run in a DOE design

Hi, 

 

I'm screening 16 categorical factors (16 different genes that I'm activating), but the total amount of DNA I can deliver is limited, so the more genes I try to activate the weaker the activation is. Anything over 8 genes per run will be hard to interpret because of this dilutive effect. Is there a way to limit the number of factors in any one run to 8 targets, but still get info main effects and some 2FI of all 16? 

 

Thanks!

Casp

4 REPLIES 4

Re: Limit the number of factors per run in a DOE design

You must use Custom Design for this experiment. In particular, you need to specify a factor constraint. I used generic factor names X1 through X16 and generic factor levels L! and L2. I assume L1 is an inactive gene and L2 is an activated gene.

JMP represents false as 0 and true as 1. I test to see if factors are set to L2 (activated). If so, the comparison returns 1. I sum the comparisons' results and disallow any run greater than 8.

Here are the comparisons used in the script for the disallowed constraints.

Sum(
	X1 == 2,
	X2 == 2,
	X3 == 2,
	X4 == 2,
	X5 == 2,
	X7 == 2,
	X8 == 2,
	X9 == 2,
	X10 == 2,
	X11 == 2,
	X12 == 2,
	X13 == 2,
	X14 == 2,
	X15 == 2,
	X16 == 2
) > 8

Here is the script to launch the Custom Design platform and make your design:


DOE(
	Custom Design,
	{Add Response( Maximize, "Y", ., ., . ),
	Add Factor( Categorical, {"L1", "L2"}, "X1", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X2", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X3", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X4", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X5", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X6", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X7", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X8", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X9", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X10", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X11", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X12", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X13", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X14", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X15", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X16", 0 ), Set Random Seed( 5869303 ),
	Number of Starts( 1637 ), Add Term( {1, 0} ), Add Term( {1, 1} ),
	Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ), Add Term( {5, 1} ),
	Add Term( {6, 1} ), Add Term( {7, 1} ), Add Term( {8, 1} ), Add Term( {9, 1} ),
	Add Term( {10, 1} ), Add Term( {11, 1} ), Add Term( {12, 1} ),
	Add Term( {13, 1} ), Add Term( {14, 1} ), Add Term( {15, 1} ),
	Add Term( {16, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
	Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
	Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ),
	Add Alias Term( {1, 1}, {7, 1} ), Add Alias Term( {1, 1}, {8, 1} ),
	Add Alias Term( {1, 1}, {9, 1} ), Add Alias Term( {1, 1}, {10, 1} ),
	Add Alias Term( {1, 1}, {11, 1} ), Add Alias Term( {1, 1}, {12, 1} ),
	Add Alias Term( {1, 1}, {13, 1} ), Add Alias Term( {1, 1}, {14, 1} ),
	Add Alias Term( {1, 1}, {15, 1} ), Add Alias Term( {1, 1}, {16, 1} ),
	Add Alias Term( {2, 1}, {3, 1} ), Add Alias Term( {2, 1}, {4, 1} ),
	Add Alias Term( {2, 1}, {5, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
	Add Alias Term( {2, 1}, {7, 1} ), Add Alias Term( {2, 1}, {8, 1} ),
	Add Alias Term( {2, 1}, {9, 1} ), Add Alias Term( {2, 1}, {10, 1} ),
	Add Alias Term( {2, 1}, {11, 1} ), Add Alias Term( {2, 1}, {12, 1} ),
	Add Alias Term( {2, 1}, {13, 1} ), Add Alias Term( {2, 1}, {14, 1} ),
	Add Alias Term( {2, 1}, {15, 1} ), Add Alias Term( {2, 1}, {16, 1} ),
	Add Alias Term( {3, 1}, {4, 1} ), Add Alias Term( {3, 1}, {5, 1} ),
	Add Alias Term( {3, 1}, {6, 1} ), Add Alias Term( {3, 1}, {7, 1} ),
	Add Alias Term( {3, 1}, {8, 1} ), Add Alias Term( {3, 1}, {9, 1} ),
	Add Alias Term( {3, 1}, {10, 1} ), Add Alias Term( {3, 1}, {11, 1} ),
	Add Alias Term( {3, 1}, {12, 1} ), Add Alias Term( {3, 1}, {13, 1} ),
	Add Alias Term( {3, 1}, {14, 1} ), Add Alias Term( {3, 1}, {15, 1} ),
	Add Alias Term( {3, 1}, {16, 1} ), Add Alias Term( {4, 1}, {5, 1} ),
	Add Alias Term( {4, 1}, {6, 1} ), Add Alias Term( {4, 1}, {7, 1} ),
	Add Alias Term( {4, 1}, {8, 1} ), Add Alias Term( {4, 1}, {9, 1} ),
	Add Alias Term( {4, 1}, {10, 1} ), Add Alias Term( {4, 1}, {11, 1} ),
	Add Alias Term( {4, 1}, {12, 1} ), Add Alias Term( {4, 1}, {13, 1} ),
	Add Alias Term( {4, 1}, {14, 1} ), Add Alias Term( {4, 1}, {15, 1} ),
	Add Alias Term( {4, 1}, {16, 1} ), Add Alias Term( {5, 1}, {6, 1} ),
	Add Alias Term( {5, 1}, {7, 1} ), Add Alias Term( {5, 1}, {8, 1} ),
	Add Alias Term( {5, 1}, {9, 1} ), Add Alias Term( {5, 1}, {10, 1} ),
	Add Alias Term( {5, 1}, {11, 1} ), Add Alias Term( {5, 1}, {12, 1} ),
	Add Alias Term( {5, 1}, {13, 1} ), Add Alias Term( {5, 1}, {14, 1} ),
	Add Alias Term( {5, 1}, {15, 1} ), Add Alias Term( {5, 1}, {16, 1} ),
	Add Alias Term( {6, 1}, {7, 1} ), Add Alias Term( {6, 1}, {8, 1} ),
	Add Alias Term( {6, 1}, {9, 1} ), Add Alias Term( {6, 1}, {10, 1} ),
	Add Alias Term( {6, 1}, {11, 1} ), Add Alias Term( {6, 1}, {12, 1} ),
	Add Alias Term( {6, 1}, {13, 1} ), Add Alias Term( {6, 1}, {14, 1} ),
	Add Alias Term( {6, 1}, {15, 1} ), Add Alias Term( {6, 1}, {16, 1} ),
	Add Alias Term( {7, 1}, {8, 1} ), Add Alias Term( {7, 1}, {9, 1} ),
	Add Alias Term( {7, 1}, {10, 1} ), Add Alias Term( {7, 1}, {11, 1} ),
	Add Alias Term( {7, 1}, {12, 1} ), Add Alias Term( {7, 1}, {13, 1} ),
	Add Alias Term( {7, 1}, {14, 1} ), Add Alias Term( {7, 1}, {15, 1} ),
	Add Alias Term( {7, 1}, {16, 1} ), Add Alias Term( {8, 1}, {9, 1} ),
	Add Alias Term( {8, 1}, {10, 1} ), Add Alias Term( {8, 1}, {11, 1} ),
	Add Alias Term( {8, 1}, {12, 1} ), Add Alias Term( {8, 1}, {13, 1} ),
	Add Alias Term( {8, 1}, {14, 1} ), Add Alias Term( {8, 1}, {15, 1} ),
	Add Alias Term( {8, 1}, {16, 1} ), Add Alias Term( {9, 1}, {10, 1} ),
	Add Alias Term( {9, 1}, {11, 1} ), Add Alias Term( {9, 1}, {12, 1} ),
	Add Alias Term( {9, 1}, {13, 1} ), Add Alias Term( {9, 1}, {14, 1} ),
	Add Alias Term( {9, 1}, {15, 1} ), Add Alias Term( {9, 1}, {16, 1} ),
	Add Alias Term( {10, 1}, {11, 1} ), Add Alias Term( {10, 1}, {12, 1} ),
	Add Alias Term( {10, 1}, {13, 1} ), Add Alias Term( {10, 1}, {14, 1} ),
	Add Alias Term( {10, 1}, {15, 1} ), Add Alias Term( {10, 1}, {16, 1} ),
	Add Alias Term( {11, 1}, {12, 1} ), Add Alias Term( {11, 1}, {13, 1} ),
	Add Alias Term( {11, 1}, {14, 1} ), Add Alias Term( {11, 1}, {15, 1} ),
	Add Alias Term( {11, 1}, {16, 1} ), Add Alias Term( {12, 1}, {13, 1} ),
	Add Alias Term( {12, 1}, {14, 1} ), Add Alias Term( {12, 1}, {15, 1} ),
	Add Alias Term( {12, 1}, {16, 1} ), Add Alias Term( {13, 1}, {14, 1} ),
	Add Alias Term( {13, 1}, {15, 1} ), Add Alias Term( {13, 1}, {16, 1} ),
	Add Alias Term( {14, 1}, {15, 1} ), Add Alias Term( {14, 1}, {16, 1} ),
	Add Alias Term( {15, 1}, {16, 1} ), Set Sample Size( 24 ),
	Disallowed Combinations(
		Sum(
			X1 == 2,
			X2 == 2,
			X3 == 2,
			X4 == 2,
			X5 == 2,
			X7 == 2,
			X8 == 2,
			X9 == 2,
			X10 == 2,
			X11 == 2,
			X12 == 2,
			X13 == 2,
			X14 == 2,
			X15 == 2,
			X16 == 2
		) > 8
	), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
);

I designed the experiment to estimate and test only the main effects for proof of principle. If this approach is satisfactory, you can change the model terms to suit your purpose.

 

 

Caspernam
New Member

Re: Limit the number of factors per run in a DOE design

Thank you for the reply, the above is super helpful. When I generate a design from the above I get runs of 7, 8, and 9 factors per run which I'm a little confused by.Any insight into why that's happening or how I can remedy it would be greatly appreciated.

Also, is there a way to lock it at 8 factors instead of <8? I tried changing the < to an = in the script for disallowed constraints but that invalidated the script... 

 

Thanks!

Re: Limit the number of factors per run in a DOE design

I tried to add another clause (the sum of active genes also had to be less than 8), but the result was worse! Here is the updated script:

DOE(
	Custom Design,
	{Add Response( Maximize, "Y", ., ., . ),
	Add Factor( Categorical, {"L1", "L2"}, "X1", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X2", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X3", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X4", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X5", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X6", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X7", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X8", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X9", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X10", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X11", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X12", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X13", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X14", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X15", 0 ),
	Add Factor( Categorical, {"L1", "L2"}, "X16", 0 ), Set Random Seed( 5869303 ),
	Number of Starts( 1637 ), Add Term( {1, 0} ), Add Term( {1, 1} ),
	Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ), Add Term( {5, 1} ),
	Add Term( {6, 1} ), Add Term( {7, 1} ), Add Term( {8, 1} ), Add Term( {9, 1} ),
	Add Term( {10, 1} ), Add Term( {11, 1} ), Add Term( {12, 1} ),
	Add Term( {13, 1} ), Add Term( {14, 1} ), Add Term( {15, 1} ),
	Add Term( {16, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
	Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
	Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ),
	Add Alias Term( {1, 1}, {7, 1} ), Add Alias Term( {1, 1}, {8, 1} ),
	Add Alias Term( {1, 1}, {9, 1} ), Add Alias Term( {1, 1}, {10, 1} ),
	Add Alias Term( {1, 1}, {11, 1} ), Add Alias Term( {1, 1}, {12, 1} ),
	Add Alias Term( {1, 1}, {13, 1} ), Add Alias Term( {1, 1}, {14, 1} ),
	Add Alias Term( {1, 1}, {15, 1} ), Add Alias Term( {1, 1}, {16, 1} ),
	Add Alias Term( {2, 1}, {3, 1} ), Add Alias Term( {2, 1}, {4, 1} ),
	Add Alias Term( {2, 1}, {5, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
	Add Alias Term( {2, 1}, {7, 1} ), Add Alias Term( {2, 1}, {8, 1} ),
	Add Alias Term( {2, 1}, {9, 1} ), Add Alias Term( {2, 1}, {10, 1} ),
	Add Alias Term( {2, 1}, {11, 1} ), Add Alias Term( {2, 1}, {12, 1} ),
	Add Alias Term( {2, 1}, {13, 1} ), Add Alias Term( {2, 1}, {14, 1} ),
	Add Alias Term( {2, 1}, {15, 1} ), Add Alias Term( {2, 1}, {16, 1} ),
	Add Alias Term( {3, 1}, {4, 1} ), Add Alias Term( {3, 1}, {5, 1} ),
	Add Alias Term( {3, 1}, {6, 1} ), Add Alias Term( {3, 1}, {7, 1} ),
	Add Alias Term( {3, 1}, {8, 1} ), Add Alias Term( {3, 1}, {9, 1} ),
	Add Alias Term( {3, 1}, {10, 1} ), Add Alias Term( {3, 1}, {11, 1} ),
	Add Alias Term( {3, 1}, {12, 1} ), Add Alias Term( {3, 1}, {13, 1} ),
	Add Alias Term( {3, 1}, {14, 1} ), Add Alias Term( {3, 1}, {15, 1} ),
	Add Alias Term( {3, 1}, {16, 1} ), Add Alias Term( {4, 1}, {5, 1} ),
	Add Alias Term( {4, 1}, {6, 1} ), Add Alias Term( {4, 1}, {7, 1} ),
	Add Alias Term( {4, 1}, {8, 1} ), Add Alias Term( {4, 1}, {9, 1} ),
	Add Alias Term( {4, 1}, {10, 1} ), Add Alias Term( {4, 1}, {11, 1} ),
	Add Alias Term( {4, 1}, {12, 1} ), Add Alias Term( {4, 1}, {13, 1} ),
	Add Alias Term( {4, 1}, {14, 1} ), Add Alias Term( {4, 1}, {15, 1} ),
	Add Alias Term( {4, 1}, {16, 1} ), Add Alias Term( {5, 1}, {6, 1} ),
	Add Alias Term( {5, 1}, {7, 1} ), Add Alias Term( {5, 1}, {8, 1} ),
	Add Alias Term( {5, 1}, {9, 1} ), Add Alias Term( {5, 1}, {10, 1} ),
	Add Alias Term( {5, 1}, {11, 1} ), Add Alias Term( {5, 1}, {12, 1} ),
	Add Alias Term( {5, 1}, {13, 1} ), Add Alias Term( {5, 1}, {14, 1} ),
	Add Alias Term( {5, 1}, {15, 1} ), Add Alias Term( {5, 1}, {16, 1} ),
	Add Alias Term( {6, 1}, {7, 1} ), Add Alias Term( {6, 1}, {8, 1} ),
	Add Alias Term( {6, 1}, {9, 1} ), Add Alias Term( {6, 1}, {10, 1} ),
	Add Alias Term( {6, 1}, {11, 1} ), Add Alias Term( {6, 1}, {12, 1} ),
	Add Alias Term( {6, 1}, {13, 1} ), Add Alias Term( {6, 1}, {14, 1} ),
	Add Alias Term( {6, 1}, {15, 1} ), Add Alias Term( {6, 1}, {16, 1} ),
	Add Alias Term( {7, 1}, {8, 1} ), Add Alias Term( {7, 1}, {9, 1} ),
	Add Alias Term( {7, 1}, {10, 1} ), Add Alias Term( {7, 1}, {11, 1} ),
	Add Alias Term( {7, 1}, {12, 1} ), Add Alias Term( {7, 1}, {13, 1} ),
	Add Alias Term( {7, 1}, {14, 1} ), Add Alias Term( {7, 1}, {15, 1} ),
	Add Alias Term( {7, 1}, {16, 1} ), Add Alias Term( {8, 1}, {9, 1} ),
	Add Alias Term( {8, 1}, {10, 1} ), Add Alias Term( {8, 1}, {11, 1} ),
	Add Alias Term( {8, 1}, {12, 1} ), Add Alias Term( {8, 1}, {13, 1} ),
	Add Alias Term( {8, 1}, {14, 1} ), Add Alias Term( {8, 1}, {15, 1} ),
	Add Alias Term( {8, 1}, {16, 1} ), Add Alias Term( {9, 1}, {10, 1} ),
	Add Alias Term( {9, 1}, {11, 1} ), Add Alias Term( {9, 1}, {12, 1} ),
	Add Alias Term( {9, 1}, {13, 1} ), Add Alias Term( {9, 1}, {14, 1} ),
	Add Alias Term( {9, 1}, {15, 1} ), Add Alias Term( {9, 1}, {16, 1} ),
	Add Alias Term( {10, 1}, {11, 1} ), Add Alias Term( {10, 1}, {12, 1} ),
	Add Alias Term( {10, 1}, {13, 1} ), Add Alias Term( {10, 1}, {14, 1} ),
	Add Alias Term( {10, 1}, {15, 1} ), Add Alias Term( {10, 1}, {16, 1} ),
	Add Alias Term( {11, 1}, {12, 1} ), Add Alias Term( {11, 1}, {13, 1} ),
	Add Alias Term( {11, 1}, {14, 1} ), Add Alias Term( {11, 1}, {15, 1} ),
	Add Alias Term( {11, 1}, {16, 1} ), Add Alias Term( {12, 1}, {13, 1} ),
	Add Alias Term( {12, 1}, {14, 1} ), Add Alias Term( {12, 1}, {15, 1} ),
	Add Alias Term( {12, 1}, {16, 1} ), Add Alias Term( {13, 1}, {14, 1} ),
	Add Alias Term( {13, 1}, {15, 1} ), Add Alias Term( {13, 1}, {16, 1} ),
	Add Alias Term( {14, 1}, {15, 1} ), Add Alias Term( {14, 1}, {16, 1} ),
	Add Alias Term( {15, 1}, {16, 1} ), Set Sample Size( 24 ),
	Disallowed Combinations(
		Sum(
			X1 == 2,
			X2 == 2,
			X3 == 2,
			X4 == 2,
			X5 == 2,
			X7 == 2,
			X8 == 2,
			X9 == 2,
			X10 == 2,
			X11 == 2,
			X12 == 2,
			X13 == 2,
			X14 == 2,
			X15 == 2,
			X16 == 2
		) > 8 &
		Sum(
			X1 == 2,
			X2 == 2,
			X3 == 2,
			X4 == 2,
			X5 == 2,
			X7 == 2,
			X8 == 2,
			X9 == 2,
			X10 == 2,
			X11 == 2,
			X12 == 2,
			X13 == 2,
			X14 == 2,
			X15 == 2,
			X16 == 2
		) < 8
	), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
);

I attached the data table with the new experiment. I added a column to count each run's activated genes.

I think you should contact JMP support (support@jmp.com) to determine the problem and whether there is a workaround.

 

 

Re: Limit the number of factors per run in a DOE design

I think the first script delivered a better design. There are no more than 8 activated genes in any run. Why do you want it to be exactly 8?

The custom design is optimal for estimating the specified model. It is not a combinatorial result like all possible combinations of 8 active genes. You do not necessarily need such combinations to estimate and test the terms in the model.