The culprit is the brain, our brain wiring is responsible for who ever we are one day, if we are homo or hetero. It seems that in the study about brain wiring it was found that men who are gay and effeminate are programmed to be that way because it has been wired already how they are suppose to act and what will be their preferences they grow up.
In the study it is not a matter of choice anymore or social or environmental factor that is responsible for a men to be gay or effeminate. A gay who has a female preferences have a brain wiring the same of that of a female. Eight weeks after the conception, the brain wiring will start.
There are two parts in our brain who are responsible of our references, first one, is the hypothalamus which is called the mating center and the behavioral center of our brain. If there are enough supply of testosterone is the mating center, man would find a female partner but if not, man would prefer a male partner. If there is not enough supply of testosterone in the behavioral center, man will become effeminate and if there is the right amount, maleness behavior will prevail.
Some man are gay and prefer man as their partner but you cannot see in their behavior because of the enough supply of testosterone in the behavioral center of the brain. and likewise, some effeminate prefer female partner because they only lack testosterone on the behavioral center of the brain.
Science would say that these conditions could be altered through injecting the enough testosterone (at the right time) in the baby while still in the womb.