Atlas uses Onionoo as its data back-end. From the Onionoo protocol specification:
Probability of this relay to be selected for the exit position. This probability is calculated based on consensus weights, relay flags, and bandwidth weights in the consensus. Path selection depends on more factors, so that this probability can only be an approximation. Omitted if the relay is not running, or the consensus does not contain bandwidth weights.
For the code, see NodeDetailsStatusUpdater.calculatePathSelectionProbabilities
.
Yes, exit probabilities (should) add up to 100% for all currently running exit nodes.
I'm afraid there is no easy way to re-run this calculation for specific exit ports or IPs, at least not in Atlas/Onionoo. You might be able to write your own script using stem. All you have to do is process a consensus in a similar way as Onionoo does it, but only consider the subset of nodes permitting a specific port. Exit IPs is more difficult, because you'd have to combine consensuses with server descriptors to learn that.