docs: def _assign_par_snps(self):
          """ Assign PAR SNPs to the X or Y chromosome using SNP position.
  
          References
          -----
          ..[1] National Center for Biotechnology Information, Variation Services, RefSNP,
            https://api.ncbi.nlm.nih.gov/variation/v0/
          ..[2] Yates et. al. (doi:10.1093/bioinformatics/btu613),
            http://europepmc.org/search/?query=DOI:10.1093/bioinformatics/btu613
          ..[3] Zerbino et. al. (doi.org/10.1093/nar/gkx1098), https://doi.org/10.1093/nar/gkx1098
          ..[4] Sherry ST, Ward MH, Kholodov M, Baker J, Phan L, Smigielski EM, Sirotkin K.
            dbSNP: the NCBI database of genetic variation. Nucleic Acids Res. 2001 Jan 1;
            29(1):308-11.
          ..[5] Database of Single Nucleotide Polymorphisms (dbSNP). Bethesda (MD): National Center
            for Biotechnology Information, National Library of Medicine. dbSNP accession: rs28736870,
            rs113313554, and rs758419898 (dbSNP Build ID: 151). Available from:
            http://www.ncbi.nlm.nih.gov/SNP/
          """
          rest_client = EnsemblRestClient(server="https://api.ncbi.nlm.nih.gov")
          for rsid in self.snps.loc[self.snps["chrom"] == "PAR"].index.values:
              if "rs" in rsid:
                  try:
                      id = rsid.split("rs")[1]
                      response = rest_client.perform_rest_action(
                          "/variation/v0/beta/refsnp/" + id
                      )
  
                      if response is not None:
                          for item in response["primary_snapshot_data"][
                              "placements_with_allele"
                          ]:
                              if "NC_000023" in item["seq_id"]:
                                  assigned = self._assign_snp(rsid, item["alleles"], "X")
                              elif "NC_000024" in item["seq_id"]:
                                  assigned = self._assign_snp(rsid, item["alleles"], "Y")
                              else:
                                  assigned = False
  
                              if assigned:
                                  if not self.build_detected:
                                      self.build = self._extract_build(item)
                                      self.build_detected = True
                                  continue
  
                  except Exception as err:
                      print(err)