I am minimizing a system and then equilibrating it at constant energy (NVE). I start NVE with a velocity distribution at 300K but after NVE, the temperature of the system is around 160K, in all the cases I ran. What is the possible reason for this?
The reason is likely that your initial configuration (coordinates) is not an equilibrium one.
Within a NVE ensemble, you cannot expect to obtain a desired temperature. A standard practice to achieve the desired temperature, is to thermostat the system for some time (i.e., do NVT dynamics), and then turn off the thermostats (i.e., do NVE). With this procedure, it is possible to obtain the velocity distribution corresponding to 300K (or the temperature desired), even under NVE conditions, for a duration within which analyses could be completed.