import logging # Configure logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', handlers=[ logging.StreamHandler(), ] ) logger = logging.getLogger(__name__) def read_mol(molpath): with open(molpath, "r") as fp: lines = fp.readlines() mol = "" for l in lines: mol += l return mol def molecule( input_pdb, lenSeqs, num_res, selectedResidues, allSeqs, sequences ): options = "" pred_mol = "[" seqdata = "{" selected = "selected" for i in range(lenSeqs): seqdata += ( str(i) + ': { "score": ' + str(sequences[i]["Score"]) + ', "rmsd": ' + str(sequences[i]["RMSD"]) + ', "recovery": ' + str(sequences[i]["Recovery"]) + ', "plddt": ' + str(sequences[i]["Mean pLDDT"]) + ', "seq":"' + allSeqs[i] + '"}' ) options += f'' # RMSD {sequences[i]["RMSD"]}, score {sequences[i]["Score"]}, recovery {sequences[i]["Recovery"]} pLDDT {sequences[i]["Mean pLDDT"]} p = input_pdb pred_mol += f"`{read_mol(p)}`" selected = "" if i != lenSeqs - 1: pred_mol += "," seqdata += "," pred_mol += "]" seqdata += "}" logger.info(seqdata) x = ( """

Boltz-1 model of redesigned sequence
Boltz-1 model confidence:
 Very high (pLDDT > 90)
 Confident (90 > pLDDT > 70)
 Low (70 > pLDDT > 50)
 Very low (pLDDT < 50)
Boltz-1 produces a per-residue confidence score (pLDDT) between 0 and 100. Some regions below 50 pLDDT may be unstructured in isolation.
""" ) return x