docs: def get_msms_annotations_parallelize(self, sc, representatives_only=True, force_rerun=False):
          """Run MSMS on structures and store calculations.
  
          Annotations are stored in the protein structure's chain sequence at:
          ``<chain_prop>.seq_record.letter_annotations['*-msms']``
  
          Args:
              representative_only (bool): If analysis should only be run on the representative structure
              force_rerun (bool): If calculations should be rerun even if an output file exists
  
          """
          genes_rdd = sc.parallelize(self.genes)
  
          def get_msms_annotation(g):
              g.protein.get_msms_annotations(representative_only=representatives_only, force_rerun=force_rerun)
              return g
  
          result = genes_rdd.map(get_msms_annotation).collect()
          for modified_g in result:
              original_gene = self.genes.get_by_id(modified_g.id)
              original_gene.copy_modified_gene(modified_g)