Cancer detection and diagnosis