Initializing a state in a different basis

Suppose I need to initialize my system (with L sites and N particles) in some basis:
|init\rangle = \prod_i^N c^{\dagger}_i|vac\rangle

where |vac\rangle is simply

M = randomMPS(s, ["Emp" for _ in 1:N])
for i in 1:N
    Op = op("Cdag", s[i])
    M = apply(Op, M)
end 

This is I believe equivalent to

randomMPS(s, [ n <= N ? "Occ" : "Emp"  for n in 1:N])

Then is it possible to initialize this state in another basis, say:
a^{\dagger}_j = \sum_i U_{ij} c^{\dagger}_i

|init\rangle = \prod_i^L c^{\dagger}_i|vac\rangle = \prod_i^L \sum_j^N U_{ij} a^{\dagger}_j |vac\rangle

I convinced myself there’s no way to do this except summing up an exponentially many number of terms, is this correct?

I believe you’ll want to check out this package: GitHub - ITensor/ITensorGaussianMPS.jl
The U in your example should be the same as \Phi in the main page example