[docs]@staticmethoddefget_chain_pair(chains:List[Chain]):"""Given a list of 2 chain objects, returns the relevant ChainPair"""assertlen(chains)==2,f"ChainPair: expected 2 chains, received {len(chains)}"asserttype(chains[0])==Chainandtype(chains[1])==Chain,f"ChainPair: expected Chain objects, received {type(chains[0])} and {type(chains[1])}"ifChain.ALPHAinchainsandChain.BETAinchains:returnChainPair.TRA_TRBelifChain.GAMMAinchainsandChain.DELTAinchains:returnChainPair.TRG_TRDelifChain.HEAVYinchainsandChain.LIGHTinchains:returnChainPair.IGH_IGLelifChain.HEAVYinchainsandChain.KAPPAinchains:returnChainPair.IGH_IGKelse:raiseValueError(f"ChainPair: illegal chain combination: {chains[0]} and {chains[1]}")
[docs]@classmethoddefget_object(cls,rt):ifisinstance(rt,RegionType):returnrtelifisinstance(rt,str):returnRegionType[rt.upper()]else:raiseRuntimeError(f"RegionType could not be created from {rt}.")