Say I have a CIF file describing some material in terms of its symmetry space group, lattice parameters and in-cell atom positions. A simple example might be,
data_global _chemical_name 'Graphene' _cell_length_a 2.46 _cell_length_b 2.46 _cell_length_c 1 _cell_angle_alpha 90 _cell_angle_beta 90 _cell_angle_gamma 120 _symmetry_space_group_name_H-M 'P 3 m 1' loop_ _atom_site_label _atom_site_fract_x _atom_site_fract_y _atom_site_fract_z C 0.00000 0.00000 0.00000 C 0.33333 0.66667 0.00000
I would like to extract from this Bravais lattice vectors and atom basis vectors. For this specific example, this might look like,
2.456 0.0 0.0 -1.228 2.126 0.0 C 0.0 0.0 0.0 0.0 1.418 0.0
where the first two lines give the two lattice vectors (in some basis), while the next two give the positions of the atoms in the unit cell.
I have tried using Open Babel for this, converting from the CIF format to a VASP one. This works well for the example above, but fails for a material such as tin sulfide (SnS), which has a structure similar to black phosphorus---four atoms in a unit cell, only two of which are explicitly listed in the CIF file. The positions of the other two are implied by the symmetry group, and programs such as Mercury correctly visualize the structure based on the CIF file. However, converting the CIF into VASP only gives you two of the four unit cell atoms. I tried all other formats in Open Babel, with no success.
Is there a reliable way to convert a CIF file into a description in terms of a Bravais lattice plus atom basis vectors?