Efficient algorithms for the reconciliation problem with gene duplication, horizontal transfer and loss | Synapse