NMaxmize with a list of variables

I want to use NMaximize to find the maximum value of a function with multiple variables. The problem is I would like to set this up so the number of variables is only decided when the function sees the data. So I have:

NMaximize[{F[data,a1,a2],a1>0,a2>0},{a1,a2}]


when there are data from two genes. But would like the function to be

NMaximize[{F[data,a1,a2,a3],a1>0,a2>0,a3>0},{a1,a2,a3}]


if there are 3 genes...etc Any way to set this?

-

func[syms__Symbol] := NMaximize[{F[data, syms], Thread[{syms} > 0]}, {syms}]

NMaximize[{F[data, q, r, s, t], {q > 0, r > 0, s > 0, t > 0}}, {q, r, s, t}]

Thanks for this. I've almost got it to work using pList = Table[Symbol["a"<>ToString[i]],{i,1,n}] to generate my list of variables, but there's a complication I'm still working on. –  user6799 Apr 10 '13 at 16:48