How to determine the Bravais lattice and atom basis vectors from a CIF file?
You can use Open Babel. You just need to "fill" the unit cell (i.e., generate all the symmetric atoms).

You just need the --fillUC option, documented here:


  For a crystal structure, add atoms to fill the entire unit cell based on the unique positions, the unit cell and the spacegroup. The parameter can either be strict (the default), which only keeps atoms inside the unit cell, or keepconnect, which fills the unit cell but keeps the original connectivity.


e.g.,:

obabel SnS.cif -oVASP --fillUC &gt;POSCAR

Result is:


Herzenbergite
1.000 
   4.330000000000000   0.000000000000000   0.000000000000000
   0.000000000000001  11.180000000000000   0.000000000000000
   0.000000000000000   0.000000000000000   3.980000000000000
Sn  S   Sn  S   
1   1   3   3   
Cartesian
     0.4979500000000001148      1.3192399999999999682      0.9949999999999999956
     2.0697400000000003573      9.5030000000000001137      0.9949999999999999956
     0.4979500000000001148      1.3192399999999999682      0.9949999999999999956
     0.4979500000000001148      1.3192399999999999682      0.9949999999999999956
     0.4979500000000001148      1.3192399999999999682      0.9949999999999999956
     2.0697400000000003573      9.5030000000000001137      0.9949999999999999956
     2.0697400000000003573      9.5030000000000001137      0.9949999999999999956
     2.0697400000000003573      9.5030000000000001137      0.9949999999999999956