A fire swept through a Pakistani train on Thursday killing at least 46 people, police said, after a gas canister passengers were using to cook breakfast exploded.