Deterministic nanoparticle assemblies: from substrate to solution