Merck to buy virus-based cancer drug firm Viralytics for $394 million