def exercise():
    lysozyme = """KVFGRCELAAAMKRHGLDNYRGYSLGNWVCAAKFESNFNTQATNRNTDGSTDYGILQINSRWWCNDGRTPGSRNLCNIPCSALLSSDITASVNCAKKIVSDGNGMNAWVAWRNRCKGTDVQAWIRGCRL"""
    homologs = rcsb_web_services.sequence_search(lysozyme, d_max=2.0)
    assert (len(homologs) > 500)
    atp_binding = rcsb_web_services.chemical_id_search("ATP",
                                                       protein_only=True)
    assert (len(atp_binding) > 650)
    report = rcsb_web_services.get_high_resolution_for_structures(atp_binding)
    assert (len(report) == len(atp_binding)) and (len(report[0]) == 2)
    # print (report)
    report = rcsb_web_services.get_high_resolution_and_residue_count_for_structures(
        atp_binding)
    assert (len(report) == len(atp_binding)) and (len(report[0]) == 3)
    # print (report)
    ligand_info = rcsb_web_services.get_ligand_info_for_structures(['1mru'])
    # print (ligand_info)
    assert ligand_info == [
        ['1MRU', 'A', 'MG', 24.305, 'Mg', 'MAGNESIUM ION', '[Mg++]'],
        ['1MRU', 'B', 'MG', 24.305, 'Mg', 'MAGNESIUM ION', '[Mg++]'],
        [
            '1MRU', 'A', 'AGS', 523.247, 'C10 H16 N5 O12 P3 S',
            'PHOSPHOTHIOPHOSPHORIC ACID-ADENYLATE ESTER',
            'Nc1ncnc2n(cnc12)[CH]3O[CH](CO[P](O)(=O)O[P](O)(=O)O[P](O)(O)=S)[CH](O)[CH]3O'
        ],
        [
            '1MRU', 'B', 'AGS', 523.247, 'C10 H16 N5 O12 P3 S',
            'PHOSPHOTHIOPHOSPHORIC ACID-ADENYLATE ESTER',
            'Nc1ncnc2n(cnc12)[CH]3O[CH](CO[P](O)(=O)O[P](O)(=O)O[P](O)(O)=S)[CH](O)[CH]3O'
        ]
    ]
def exercise () :
  from mmtbx.wwpdb import rcsb_web_services
  lysozyme = """KVFGRCELAAAMKRHGLDNYRGYSLGNWVCAAKFESNFNTQATNRNTDGSTDYGILQINSRWWCNDGRTPGSRNLCNIPCSALLSSDITASVNCAKKIVSDGNGMNAWVAWRNRCKGTDVQAWIRGCRL"""
  homologs = rcsb_web_services.sequence_search(lysozyme, d_max=2.0)
  assert (len(homologs) > 500)
  atp_binding = rcsb_web_services.chemical_id_search("ATP", protein_only=True)
  assert (len(atp_binding) > 650)
  report = rcsb_web_services.get_high_resolution_for_structures(atp_binding)
  assert (len(report) == len(atp_binding)) and (len(report[0]) == 2)
  ligand_info = rcsb_web_services.get_ligand_info_for_structures(['1mru'])
  assert (len(ligand_info) == 4)
  print "OK"
def exercise () :
  from mmtbx.wwpdb import rcsb_web_services
  lysozyme = """KVFGRCELAAAMKRHGLDNYRGYSLGNWVCAAKFESNFNTQATNRNTDGSTDYGILQINSRWWCNDGRTPGSRNLCNIPCSALLSSDITASVNCAKKIVSDGNGMNAWVAWRNRCKGTDVQAWIRGCRL"""
  homologs = rcsb_web_services.sequence_search(lysozyme, d_max=2.0)
  assert (len(homologs) > 500)
  atp_binding = rcsb_web_services.chemical_id_search("ATP", protein_only=True)
  assert (len(atp_binding) > 650)
  report = rcsb_web_services.get_high_resolution_for_structures(atp_binding)
  assert (len(report) == len(atp_binding)) and (len(report[0]) == 2)
  ligand_info = rcsb_web_services.get_ligand_info_for_structures(['1mru'])
  assert (len(ligand_info) == 4)
  assert (ligand_info[1][-1] == u'[Mg+2]')
  print "OK"