Number of replications Subject number Dosing options

46 E. Russek-Cohen et al. the opportunity to superimpose measurement error to each observation. Within the regulatory arena, specific recommen- dations have been forwarded with regard to as- say performance [38] . For example, the guidance specifies that the error and the CV should not ex- ceed 15, except at the lower limit of quantifica- tion, where error and CV should not exceed 20. Based upon these recommendations, the program includes an option to define confidence limits about the ratio of the true versus observed values. The coding for this is as follows:

1. measerr = 0: this implies that no measurement

error will be added to the simulated drug con- centrations.

2. measerr = 1: this implies that a multiplicative

measurement error is added to each simulated drug concentration. To have a 99 chance of obtaining ‘‘measured’’ values that fall between 80 and 125 of the true concentration, the coding would be as follows: 99 chance of being within 80 and 125 of the true concentration; ptail = 1 − 1 − .992; zvalue = probitptail; logtop = log1.25; note ln.8 = −logtop. To specify greater error e.g., 80 chance of falling within the limits of 70 and 143, the coding would be modified as follows: 80 chance of being within 70 and 143 of the true concentration; ptail = 1 − 1 − .802; zvalue = probitptail; logtop = log1.43; note ln.7 = −logtop. Alternatively, the user can modify this portion of the program to describe any type of error model deemed appropriate. For example, one can employ the more complex error models e.g., quadratic equations such as those described by Jelliffe et al. for the gentamycin emit assay [39] . The char- acteristics of the error pattern become particularly important when simulating the use of sparse blood samples, as may occur when studying fish or other small animal species. In these cases, where one or two samples represent the total information ob- tained on a particular subject, ignoring the pres- ence of a nonlinear error pattern such as that asso- ciated with the emit assay can result in the genera- tion of drug concentrations that incorrectly suggest the presence of multimodal distributions [40] .

3.7. Setting the lower limit of quantification

Validated analytical methods specify an LOQ be- low which the quantification of drug concentrations is deemed unreliable. Generally, CVM recommends that for single dose pharmacokinetic investigations, the AUC estimate should not extend beyond the last blood sampling time associated with drug concen- trations at or above the LOQ AUC 0—last . Therefore, this program is designed to allow the user to spec- ify an LOQ coded as ‘‘loquant’’ that serves as the boundary at which AUC estimates are truncated i.e., for generating AUC 0—last . The use of this trun- cation can be valuable for determining the fre- quency and duration of blood samples, allowing the investigator to explore the percentage of the popu- lation that will have quantifiable concentrations out to the specified sampling time. Alternatively, the program allows for drug concentrations to be fac- tored into the AUC estimate as some specified value when the simulated concentrations drop below the LOQ. This option is coded as ‘‘lowlim’’. If selected, all concentrations falling below the ‘‘lowlim’’ are read as the concentration termed ‘‘lowlimv’’. For example, if the user wishes all concentrations that fall below the limit of 5 ␮gmL to be factored into the AUC estimate as 1 ␮gmL, the coding would be as follows: lowlim = 5; lowlimv= 1; The latter function should not be used when sim- ulating bolus administrations due to the error that can be introduced into the AUC estimates i.e., profiles may be artificially extended well beyond the time when concentrations truly approach zero. However, this function may be valuable when sim- ulating conditions resulting in multiple peaks and troughs e.g., when using the random input func- tion. By allowing for multiple simulations using the same seeds and parameter estimates, the investiga- tor can determine ways to optimize blood sampling times and to minimize the bias associated with esti- mating AUC values when some samples drop below the LOQ.

3.8. Number of replications

No less than three replications can be specified for each set of iterations. The maximum number of replicates is determined by the period of the random number generator 2 31 and the number of subjects included in each treatment group. SAS can easily handle over 1,000,000 replications with A SASIML program for simulating pharmacokinetic data 47 n = 1000 or more per treatment, although computa- tion time may be prohibitive.

3.9. Subject number

The number of subjects in the test and reference group can be varied independently. The subject numbers must be specified in the beginning of the program.

3.10. Dosing options

The user can specify the administration of either single or multiple doses, and each dose can be dis- pensed as either a bolus or as multiple random in- puts. The latter function allows for the simulation of drug administration in feed and water, or the input characteristics of some growth promoting im- plants. The type of dosing method must be defined. If a fixed schedule of dose inputs is to be simulated, the code is ‘‘dosetype = 1’’. If a random sched- ule of dose inputs is to be simulated, the code is ‘‘dosetype = 2’’. Most importantly, while the selec- tion of a fixed or random dosing schedule covers both treatments, the actual schedule of input can differ between treatment groups, even when using a fixed dosing option. 1. Fixed dosing schedule, single bolus: The num- ber of doses ndose, time of dosing dosetim and amount of each bolus dose amtdose must be defined for both treatment groups. The num- ber following the term e.g., dosetim1 versus dosetim2 indicates the treatment for which this dose condition applies. If the profiles be- ing simulated are single bolus administrations, ‘‘dosetim’’ must include the time of the first administration called time zero and some time well beyond the last sample. So, for example, if treatment 1 is to be administered as a single 100 mg bolus dose at time zero, the coding will read as follow: ndose1 = 1; dosetim1 = {0, 1000}; amtdose1 = {100, 0}; lasttime = 24; The term lasttime pertains to the random dos- ing rather than fixed dosing schedules. There- fore, for fixed dosing schedules, lasttime can be specified as any time after the last dose. For a description of the algorithm using this term, re- fer to Section 4 on random inputs. Note that the coding includes some dose 0 and timepoint 1000 after the last sampling time. This is needed to terminate the simulation. 2. Fixed dose, repeat administrations: For multi- ple administrations e.g., once daily for 3 days, the coding for treatment 1 would be: ndose1 = 3; dosetim1 = {0, 24, 48, 1000}; amtdose1 = {100, 100, 100, 0}; lasttime = 72; 3. Fixed dosing schedule simulating sporadic in- put : An example of when this may be employed is when there is prior information regarding the diurnal feeding characteristics of a particular species. The fixed schedule option can be mod- ified to reflect this feeding behavior by varying the times and amount of drug input throughout the day. For example, let’s say that we want to simulate the profiles resulting from the ad- ministration of medicated feed to barrows. In this scenario, we will assume that the total daily dose is 910 mg. Based upon information on swine feeding behavior, we will assume that 75 of this intake occurs between 07:00 a.m. and 07:00 p.m. [41,42] , that the dose is equally distributed between seven bolus inputs 130 mg per dose, and that five of the seven inputs occur between 07:00 a.m. and 07:00 p.m. We will further as- sume that the medicated feed is administered daily for three consecutive days. In this case considering treatment 1, dosetim1 would be written as follows: ndose1 = 21; dosetim1 = {0, 2, 4, 6, 8, 13, 18, 24, 26, 28, 30, 32, 37, 42, 48, 50, 52, 54, 56, 61, 66, 1000}; amtdose1 = {130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0}; lasttime = 72. The program also allows for the assignment of fewer but unequal doses. For example, the user could assign four fixed doses per day with amounts varying with each dose [e.g., 07:00 a.m. hour 0 = 400 mg, 12:00 p.m. hour 5 = 300 mg, 04:00 p.m. hour 9 = 150 mg, and 09:00 p.m. hour 14 = 60 mg]. Repeating this pat- tern across three sequential days, the com- mand codes treatment 2 would be written as follows: ndose2 = 12; dosetim2 = {0, 5, 9, 14, 24, 29, 33, 38, 48, 53, 57, 62, 1000}; amtdose1 = {400, 300, 150, 60, 400, 300, 150, 60, 400, 300, 150, 60, 0}; lasttime = 72. Since ndose, dosetim, and amtdose are defined for each treatment, profiles associated with very different input characteristics e.g., comparing 48 E. Russek-Cohen et al. drug administered in food versus drinking water can be compared. 4. Random dosing schedule: The random aspect of this input function is that the user can specify a given number of ‘‘doses’’ or ‘‘hits’’ during a specified time interval, and each ‘‘hit’’ can be random both in terms of its time of occurrence and the amount administered. This can be useful for simulating release from growth promoting implants, or drug delivery in feed and water. For example, let us assume that the total dose totdose is 100.0 mg and that this dose is ad- ministered once daily for three consecutive days or 33.3 mg per day nfractn = 3 dosing intervals, dfrac = totdosenfractn = 1003 = 33.3 mg, last- time = 72 h, tfrac = lasttimenfractn = 723 = 24. The dose received over each interval is ran- domly administered five times numimp = 5. A uniform random number generator determines when during the 24 h dosing interval the five inputs are administered. These times are then sorted. The amount of dose given at each of the five times is determined by generating four numimp − 1 = 5 − 1 = 4 random numbers to set the fraction of the 33.3 mg dose to be given. The fifth or last dose is the remainder of the 33.3 mg amount. In our current scenario, the dosing interval is 72 h lasttime = 72, which is divided into three daily doses nfractn = 3, causing tfrac = 24. The user then specifies the number of random inputs numimp = 5 that occur within each period. So, if numimp = 5 and nfractn = 3 then there are 15 total doses numimp × nfractn = 5 × 3 = 15 per animal. The total dose is 100 mg tot- dose and the dose per period is 33.3 mg dfrac = totdosenfractn = 1003 = 33.3. This is spelled it out within the routine termed rantime .

3.11. Sampling times