diff --git a/sem1/PhysicalFoundationsOfMolecularElectronics/find_water_molecules_that_are_close_to_protein_atoms.py b/sem1/PhysicalFoundationsOfMolecularElectronics/categorize_water_molecules_by_distance.py similarity index 60% rename from sem1/PhysicalFoundationsOfMolecularElectronics/find_water_molecules_that_are_close_to_protein_atoms.py rename to sem1/PhysicalFoundationsOfMolecularElectronics/categorize_water_molecules_by_distance.py index bb81324..079d410 100644 --- a/sem1/PhysicalFoundationsOfMolecularElectronics/find_water_molecules_that_are_close_to_protein_atoms.py +++ b/sem1/PhysicalFoundationsOfMolecularElectronics/categorize_water_molecules_by_distance.py @@ -4,6 +4,7 @@ from __future__ import annotations import json +import sys import logging from dataclasses import dataclass @@ -45,14 +46,20 @@ class Point3D: z: float -class CloseWaterMoleculesFinder: +@dataclass +class WaterMoleculesCategorizedByDistance: + close_water_molecules: list[Atom] + far_water_molecules: list[Atom] + + +class MoleculeCategorizer: def __init__( self, protein_pdb_file_path: str, maximum_distance_from_protein: float ): self.protein_pdb_file_path = protein_pdb_file_path self.maximum_distance_from_protein = maximum_distance_from_protein - def find_close_water_molecules(self) -> list[Atom]: + def categorize_water_molecules(self) -> WaterMoleculesCategorizedByDistance: pdb_entries = self._read_protein_pdb() protein_atoms: list[Atom] = self._get_protein_atoms(pdb_entries=pdb_entries) water_molecules: list[Atom] = self._get_water_molecules(pdb_entries=pdb_entries) @@ -64,12 +71,19 @@ class CloseWaterMoleculesFinder: close_water_molecules: list[Atom] = self._get_close_water_molecules( protein_atoms=protein_atoms, water_molecules=water_molecules ) + far_water_molecules: list[Atom] = self._get_far_water_molecules( + water_molecules=water_molecules, close_water_molecules=close_water_molecules + ) logger.info( - f"There are '{len(close_water_molecules)}' water molecules " - f"that are not further than '{self.maximum_distance_from_protein}' angstrom from protein atoms" + f"There are '{len(water_molecules)}' total water molecules, from which '{len(close_water_molecules)}' " + f"are not further than '{self.maximum_distance_from_protein}' angstrom from protein atoms " + f"and '{len(far_water_molecules)}' that are further" + ) + return WaterMoleculesCategorizedByDistance( + close_water_molecules=close_water_molecules, + far_water_molecules=far_water_molecules, ) - return close_water_molecules def _get_close_water_molecules( self, protein_atoms: list[Atom], water_molecules: list[Atom] @@ -87,6 +101,19 @@ class CloseWaterMoleculesFinder: break return close_water_molecules + @staticmethod + def _get_far_water_molecules( + water_molecules: list[Atom], close_water_molecules: list[Atom] + ) -> list[Atom]: + close_water_molecule_ids = { + close_water_molecule.id for close_water_molecule in close_water_molecules + } + return [ + water_molecule + for water_molecule in water_molecules + if water_molecule.id not in close_water_molecule_ids + ] + @staticmethod def _get_water_molecules(pdb_entries: list[PDBEntry]) -> list[Atom]: water_molecules: list[Atom] = [] @@ -127,18 +154,36 @@ class CloseWaterMoleculesFinder: return (p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2 + (p2.z - p1.z) ** 2 -def main() -> None: - logging.basicConfig(level=logging.INFO, format="%(levelname)s | %(asctime)s | %(message)s") +def save_atom_ids_to_file(atoms: list[Atom], filename: str) -> None: + atom_ids = {atom.id for atom in atoms} + with open(filename, "w") as f: + f.write(json.dumps(list(atom_ids))) - close_water_molecules = CloseWaterMoleculesFinder( - protein_pdb_file_path="prot_ligand.pdb", maximum_distance_from_protein=5.0 - ).find_close_water_molecules() - result = json.dumps([water_molecule.id for water_molecule in close_water_molecules]) - result_fpath = "close_water_molecules.json" - logger.info(f"Saving IDs of a close water molecules to '{result_fpath}'") - with open(result_fpath, "w") as f: - f.write(result) + +def main(pdb_filename: str) -> None: + logging.basicConfig( + level=logging.INFO, format="%(levelname)s | %(asctime)s | %(message)s" + ) + + result = MoleculeCategorizer( + protein_pdb_file_path=pdb_filename, maximum_distance_from_protein=5.0 + ).categorize_water_molecules() + + logger.info("Saving IDs of a close water molecules to 'close_water_molecules.json'") + save_atom_ids_to_file( + atoms=result.close_water_molecules, filename="close_water_molecules.json" + ) + + logger.info("Saving IDs of a far water molecules to 'far_water_molecules.json'") + save_atom_ids_to_file( + atoms=result.close_water_molecules, filename="far_water_molecules.json" + ) if __name__ == "__main__": - main() + if len(sys.argv) <= 1: + pdb_filename = "prot_ligand.pdb" + else: + pdb_filename = sys.argv[1] + + main(pdb_filename=pdb_filename) diff --git a/sem1/PhysicalFoundationsOfMolecularElectronics/close_water_molecules.json b/sem1/PhysicalFoundationsOfMolecularElectronics/close_water_molecules.json index 2957be1..c174a48 100644 --- a/sem1/PhysicalFoundationsOfMolecularElectronics/close_water_molecules.json +++ b/sem1/PhysicalFoundationsOfMolecularElectronics/close_water_molecules.json @@ -1 +1 @@ -["2715", "2716", "2717", "2734", "2880", "2881", "2970", "2971", "2972", "2985", "2986", "2987", "3087", "3088", "3089", "3156", "3157", "3158", "3168", "3169", "3170", "3267", "3268", "3269", "3354", "3356", "3368", "3496", "3509", "3591", "3592", "3593", "3618", "3620", "3627", "3628", "3629", "3721", "3726", "3727", "3728", "3791", "3861", "3862", "3863", "3882", "3883", "3888", "3889", "3890", "3909", "3910", "3911", "3930", "3931", "3932", "3936", "3937", "3938", "3939", "3940", "3941", "3957", "3959", "4095", "4096", "4097", "4110", "4111", "4112", "4140", "4141", "4142", "4230", "4231", "4232", "4233", "4234", "4235", "4239", "4240", "4241", "4284", "4285", "4299", "4300", "4301", "4320", "4321", "4322", "4356", "4357", "4358", "4389", "4390", "4391", "4431", "4432", "4433", "4441", "4443", "4444", "4445", "4446", "4447", "4448", "4482", "4484", "4521", "4522", "4523", "4530", "4531", "4532", "4536", "4537", "4538", "4557", "4558", "4559", "4584", "4585", "4586", "4635", "4636", "4637", "4650", "4651", "4652", "4685", "4704", "4705", "4706", "4725", "4726", "4727", "4728", "4729", "4730", "4731", "4732", "4733", "4734", "4735", "4736", "4737", "4738", "4739", "4743", "4744", "4745", "4755", "4756", "4757", "4758", "4759", "4760", "4764", "4765", "4766", "4787", "4803", "4804", "4805", "4809", "4810", "4811", "4812", "4813", "4814", "4833", "4834", "4835", "4851", "4852", "4853", "4854", "4855", "4863", "4864", "4865", "4869", "4870", "4871", "4875", "4876", "4877", "4887", "4888", "4905", "4906", "4907", "4916", "4971", "4972", "4973", "5055", "5056", "5057", "5081", "5089", "5133", "5134", "5135", "5295", "5296", "5297", "5298", "5299", "5300", "5310", "5490", "5491", "5492", "5553", "5554", "5555", "5576", "5766", "5767", "5768", "5838", "5839", "5840", "5862", "5863", "5864", "5934", "5935", "5936", "5970", "5971", "5972", "5997", "5998", "5999", "6076", "6093", "6094", "6095", "6111", "6112", "6126", "6127", "6128", "6138", "6139", "6140", "6153", "6154", "6155", "6210", "6211", "6212", "6323", "6366", "6367", "6368", "6402", "6403", "6404", "6456", "6457", "6458", "6516", "6517", "6518", "6525", "6526", "6527", "6615", "6616", "6617", "6627", "6628", "6629", "6636", "6637", "6639", "6641", "6693", "6694", "6695", "6705", "6706", "6707", "6747", "6749", "6768", "6769", "6770", "6792", "6793", "6794", "6849", "6850", "6851", "6855", "6856", "6857", "6864", "6865", "6866", "7036", "7037", "7038", "7039", "7040", "7060", "7061", "7074", "7075", "7076", "7083", "7084", "7085", "7104", "7105", "7106", "7107", "7108", "7109", "7116", "7117", "7118", "7119", "7120", "7121", "7137", "7138", "7139", "7140", "7141", "7142", "7152", "7154", "7188", "7190", "7225", "7226", "7272", "7274", "8238", "8239", "8240", "8241", "8242", "8243", "8300", "8337", "8338", "8339", "8481", "8482", "8483", "8520", "8521", "8522", "8529", "8530", "8531", "8763", "8764", "8765", "8841", "8842", "8843", "8874", "8875", "8876", "8937", "8939", "8973", "8974", "8975", "8982", "8983", "8984", "9252", "9253", "9254", "9552", "9573", "9574", "9642", "9645", "9646", "9647", "9648", "9649", "9650", "9654", "9655", "9656", "9666", "9667", "9668", "9705", "9707", "9726", "9727", "9728", "9738", "9739", "9740", "9744", "9745", "9746", "9750", "9751", "9752", "9783", "9784", "9785", "9792", "9793", "9794", "9798", "9799", "9800", "9819", "9820", "9821", "9828", "9829", "9830", "9840", "9841", "9842", "9876", "9877", "9878", "9912", "9913", "9914", "9927", "9928", "9929", "9933", "9934", "9935", "9945", "9946", "9947", "9963", "9964", "9965", "9972", "9973", "9974", "9981", "9982", "9983", "10017", "10018", "10019", "10038", "10039", "10040", "10041", "10042", "10044", "10045", "10046", "10071", "10072", "10073", "10116", "10117", "10118", "10119", "10120", "10121", "10122", "10123", "10124", "10125", "10126", "10127", "10128", "10129", "10130", "10149", "10150", "10151", "10164", "10165", "10166", "10174", "10197", "10198", "10199", "10203", "10204", "10205", "10206", "10207", "10208", "10239", "10240", "10241", "10248", "10249", "10250", "10332", "10333", "10334", "10461", "10462", "10463", "10576", "10590", "10591", "10592", "10626", "10627", "10628", "10635", "10636", "10637", "10713", "10714", "10715", "10719", "10720", "10721", "10737", "10738", "10739", "10776", "10777", "11076", "11077", "11078", "11097", "11098", "11099", "11113", "11114", "11130", "11131", "11132", "11133", "11157", "11158", "11159", "11181", "11182", "11183", "11211", "11212", "11213", "11214", "11215", "11216", "11223", "11224", "11225", "11250", "11251", "11252", "11253", "11254", "11255", "11280", "11281", "11282", "11316", "11317", "11318", "11373", "11374", "11375", "11469", "11470", "11471", "11490", "11491", "11550", "11551", "11552", "11556", "11557", "11558", "11559", "11560", "11561", "11622", "11623", "11624", "11793", "11794", "11795", "11823", "11824", "11825", "11875", "11951", "12117", "12118", "12119", "12174", "12175", "12176", "12177", "12178", "12179", "12186", "12187", "12188", "12195", "12196", "12197", "12201", "12202", "12243", "12244", "12245", "12261", "12262", "12263", "12270", "12271", "12272", "12273", "12274", "12275", "12277", "12293", "12315", "12316", "12317", "12318", "12319", "12320", "12351", "12352", "12353", "12360", "12361", "12362", "12372", "12373", "12378", "12379", "12380", "12396", "12397", "12398", "12399", "12400", "12401", "12411", "12412", "12413", "12414", "12415", "12416", "12444", "12445", "12446", "12453", "12454", "12455", "12456", "12457", "12458", "12471", "12472", "12473", "12492", "12493", "12494", "12498", "12499", "12500", "12501", "12502", "12503", "12504", "12505", "12506", "12507", "12508", "12509", "12522", "12523", "12524", "12525", "12526", "12527", "12534", "12535", "12536", "12537", "12538", "12539", "12567", "12568", "12569", "12570", "12571", "12572", "12576", "12577", "12578", "12615", "12616", "12617", "12624", "12625", "12626", "12645", "12646", "12647", "12654", "12655", "12656", "12660", "12661", "12662", "12675", "12676", "12677", "12708", "12709", "12710", "12768", "12769", "12770", "12786", "12787", "12788", "12798", "12799", "12800", "12807", "12809", "12819", "12820", "12821", "12822", "12823", "12824", "12837", "12838", "12839", "12860", "12891", "12892", "12893", "12921", "12922", "12923", "12984", "12985", "12986", "12989", "13014", "13015", "13016", "13022", "13071", "13083", "13084", "13085", "13104", "13105", "13106", "13116", "13117", "13118", "13129", "13200", "13201", "13202", "15900", "15901", "15902", "15921", "15922", "15923", "15936", "15937", "15938", "15948", "15949", "15950", "15975", "15976", "15990", "15991", "15992", "16003", "16023", "16024", "16025", "16041", "16042", "16043", "16056", "16057", "16058", "16092", "16094", "16119", "16120", "16121", "16131", "16132", "16133", "16140", "16141", "16142", "16161", "16163", "16173", "16174", "16175", "16194", "16195", "16196", "16227", "16228", "16229", "16236", "16237", "16238", "16239", "16240", "16241", "16242", "16243", "16244", "16254", "16255", "16256", "16294", "16317", "16318", "16319", "16359", "16364", "16412", "16418", "16425", "16426", "16427", "16434", "16435", "16436", "16437", "16438", "16439", "16443", "16444", "16445", "16446", "16447", "16448", "16452", "16453", "16454", "16455", "16456", "16457", "16470", "16471", "16472", "16506", "16507", "16508", "16515", "16516", "16517", "16548", "16549", "16550", "16554", "16555", "16556", "16577", "16602", "16603", "16604", "16629", "16630", "16631", "16634", "16650", "16651", "16652", "16672", "16673", "16687", "16689", "16690", "16691", "16707", "16708", "16709", "16719", "16720", "16721", "16722", "16723", "16724", "16746", "16747", "16748", "16758", "16759", "16760", "16764", "16765", "16766", "16767", "16768", "16769", "16773", "16774", "16775", "16788", "16790", "16809", "16810", "16811", "16824", "16825", "16826", "16845", "16846", "16847", "16860", "16861", "16862", "16887", "16888", "16889", "16890", "16891", "16892", "16941", "16942", "16947", "16948", "16949", "16953", "16954", "16955", "16956", "16957", "16958", "16973", "17013", "17014", "17015", "17049", "17050", "17051", "17076", "17077", "17078", "17105", "17173", "17174", "17187", "17189", "17209", "17214", "17215", "17216", "17241", "17242", "17243", "17309", "17325", "17327", "17443", "17444", "17448", "17449", "17450", "17451", "17452", "17453", "17454", "17455", "17456", "17491", "17530", "17556", "17557", "17558", "17572", "17598", "17599", "17600", "17610", "17611", "17628", "17653", "17712", "17714", "17769", "17770", "17771", "17811", "17812", "17813", "17862", "17863", "17864", "17883", "17884", "17885", "17886", "17887", "17888", "17901", "17902", "17903", "17919", "17920", "17921", "17931", "17932", "17933", "17942", "17954", "17955", "17956", "17957", "17959", "17960", "17976", "17977", "17978", "17985", "17986", "17987", "18003", "18004", "18005", "18018", "18019", "18020", "18039", "18040", "18041", "18073", "18075", "18077", "18078", "18079", "18080", "18081", "18082", "18083", "18114", "18115", "18116", "18120", "18121", "18135", "18136", "18137", "18147", "18149", "18210", "18211", "18212", "18339", "18340", "18341", "18345", "18346", "18347", "18350", "18361", "18366", "18367", "18368", "18396", "18397", "18402", "18403", "18404", "18420", "18438", "18439", "18440", "18453", "18454", "18455", "18462", "18463", "18464", "18474", "18483", "18484", "18485", "18588", "18589", "18590", "18621", "18622", "18623", "18654", "18780", "18781", "18782", "18788", "18804", "18805", "18806", "18813", "18814", "18815", "18816", "18817", "18818", "18822", "18823", "18824", "18826", "18867", "18868", "18869", "18886", "18900", "18901", "18902", "18903", "18904", "18905", "18912", "18913", "18914", "18915", "18916", "18917", "18918", "18919", "18920", "18922", "18939", "18940", "18941", "18957", "18958", "18959", "18966", "18967", "18968", "18990", "18991", "18992", "18996", "18997", "18998", "19010", "19011", "19012", "19013", "19014", "19015", "19016", "19017", "19018", "19019", "19032", "19033", "19034", "19041", "19042", "19044", "19045", "19046", "19053", "19054", "19055", "19068", "19069", "19070", "19080", "19081", "19096", "19113", "19114", "19115", "19224", "19225", "19226", "19230", "19231", "19232", "19257", "19258", "19259", "19272", "19273", "19275", "19276", "19277", "19355", "19356", "19357", "19358", "19359", "19360", "19361", "19368", "19369", "19370", "19386", "19387", "19388", "19402", "19428", "19429", "19430", "19449", "19450", "19451", "19485", "19486", "19581", "19582", "19583", "19608", "19609", "19610", "19619", "19703", "19752", "19753", "19754", "19761", "19762", "19763", "19791", "19792", "19793", "19794", "19795", "19796", "19797", "19798", "19799", "19833", "19834", "19836", "19837", "19846", "19864", "19866", "19868", "19878", "19879", "19880", "19884", "19885", "19886", "19899", "19901", "19902", "19903", "19904", "19905", "19906", "19907", "19908", "19923", "19924", "19925", "19926", "19927", "19928", "19929", "19930", "19931", "19932", "19933", "19934", "19946", "19947", "19948", "19949", "19953", "19954", "19955", "19959", "19960", "19961", "19974", "19976", "19980", "19981", "19982", "19998", "20000", "20006", "20010", "20011", "20012", "20040", "20041", "20042", "20082", "20083", "20084", "20094", "20095", "20096", "20097", "20098", "20099", "20100", "20101", "20102", "20103", "20104", "20105", "20115", "20117", "20120", "20136", "20137", "20138", "20142", "20143", "20144", "20483", "20952", "20953", "20954", "20958", "20959", "20967", "20969", "20970", "20971", "20972", "20973", "20974", "20975", "21021", "21022", "21023", "21042", "21043", "21044", "21066", "21067", "21068", "21102", "21103", "21104", "21127", "21138", "21139", "21140", "21168", "21169", "21170", "21174", "21175", "21176", "21183", "21184", "21192", "21193", "21194", "21216", "21217", "21218", "21228", "21229", "21230", "21234", "21235", "21236", "21243", "21244", "21245", "21249", "21250", "21251", "21255", "21256", "21257", "21259", "21261", "21262", "21263", "21267", "21268", "21269", "21297", "21298", "21299", "21324", "21325", "21326", "21345", "21346", "21347", "21353", "21366", "21367", "21368", "21393", "21396", "21397", "21398", "21411", "21412", "21413", "21423", "21424", "21425", "21450", "21451", "21452", "21453", "21454", "21455", "21462", "21464", "21471", "21472", "21473", "21492", "21494", "21498", "21499", "21500", "21510", "21511", "21528", "21529", "21530", "21531", "21532", "21555", "21556", "21557", "21591", "21592", "21593", "21597", "21599", "21615", "21616", "21617", "21664", "21768", "21780", "21781", "21782", "21807", "21808", "21809", "21810", "21811", "21842", "21858", "21859", "21860", "21970", "21975", "21976", "21977", "21984", "21985", "21986", "22005", "22006", "22007", "22009", "22032", "22033", "22034", "22038", "22039", "22040", "22071", "22072", "22073", "22086", "22087", "22088", "22110", "22112", "22119", "22120", "22121", "22144", "22149", "22150", "22151", "22218", "22219", "22220", "22242", "22243", "22244", "22257", "22258", "22259", "22287", "22288", "22289", "22308", "22309", "22310", "22326", "22328", "22350", "22351", "22352", "22362", "22363", "22364", "22413", "22414", "22415", "22419", "22420", "22421", "22425", "22426", "22427", "22443", "22444", "22445", "22456", "22471", "22488", "22489", "22490", "22536", "22537", "22538", "22546", "22557", "22558", "22559", "22560", "22561", "22569", "22570", "22571", "22587", "22588", "22589", "22608", "22609", "22610", "22617", "22618", "22619", "22626", "22627", "22628", "22683", "22684", "22685", "22704", "22705", "22706", "22713", "22714", "22715", "22716", "22717", "22718", "22752", "22753", "22754", "22797", "22798", "22799", "22884", "22885", "22905", "22906", "22907", "22980", "22981", "22982", "23004", "23005", "23006", "23043", "23044", "23045", "23131", "23172", "23173", "23174", "23178", "23179", "23181", "23182", "23183", "23187", "23188", "23189", "23202", "23203", "23204", "23214", "23215", "23216", "23220", "23221", "23222", "23223", "23224", "23225", "23226", "23235", "23236", "23237", "23244", "23245", "23247", "23248", "23249", "23250", "23251", "23252", "23253", "23254", "23255", "23259", "23260", "23262", "23263", "23264", "23265", "23266", "23267", "23268", "23269", "23270", "23280", "23281", "23282", "23295", "23296", "23297", "23300", "23301", "23310", "23311", "23312", "23316", "23317", "23318", "23319", "23320", "23321", "23328", "23330", "23333", "23346", "23347", "23348", "23351", "23352", "23353", "23354", "23355", "23356", "23357", "23364", "23365", "23366", "23373", "23374", "23375", "23380", "23386", "23388", "23389", "23390", "23394", "23395", "23396", "23406", "23408", "23418", "23419", "23420", "23424", "23425", "23426", "23427", "23428", "23430", "23431", "23432", "23433", "23434", "23435", "23439", "23440", "23442", "23443", "23444", "23445", "23446", "23447", "23448", "23449", "23450", "23466", "23467", "23468", "23478", "23479", "23480", "23488", "23490", "23491", "23492", "23493", "23494", "23495", "23496", "23497", "23498", "23514", "23515", "23516", "23520", "23522", "23529", "23556", "23557", "23558", "23559", "23560", "23561", "23574", "23575", "23576", "23580", "23581", "23586", "23587", "23588", "23592", "23593", "23594", "23599", "23601", "23602", "23603", "23607", "23608", "23609", "23616", "23617", "23618", "23630", "23634", "23635", "23636", "23641", "23643", "23644", "23645", "23646", "23647", "23648", "23658", "23662", "23667", "23668", "23669", "23676", "23677", "23678", "23681", "23682", "23683", "23684", "23685", "23686", "23687", "23688", "23689", "23690", "23691", "23692", "23693", "23709", "23710", "23711", "23712", "23713", "23714", "23715", "23716", "23717", "23721", "23722", "23723", "23725", "23736", "23737", "23743", "23745", "23746", "23747", "23748", "23749", "23750", "23755", "23757", "23758", "23766", "23767", "23768", "23769", "23770", "23771", "23775", "23776", "23777", "23781", "23782", "23783", "23787", "23788", "23789", "23790", "23791", "23792", "23797", "23798", "23799", "23800", "23801", "23806", "23807", "23820", "23821", "23822", "23825", "23832", "23833", "23834", "23840", "23841", "23842", "23843", "23853", "23854", "23855", "23859", "23861", "23865", "23866", "23867", "23868", "23869", "23870", "23886", "23887", "23888", "23901", "23902", "23903", "23904", "23905", "23906", "23925", "23926", "23927", "23928", "23929", "23930", "23934", "23935", "23936", "23943", "23944", "23945", "23949", "23950", "23951", "23952", "23953", "23954", "23956", "23958", "23959", "23960", "23961", "23963", "23964", "23965", "23966", "23967", "23968", "23969", "23977", "23979", "23980", "23981", "23990", "24005", "24006", "24007", "24008", "24019", "24036", "24037", "24038", "24042", "24044", "24045", "24046", "24047", "24063", "24064", "24065", "24066", "24067", "24068", "24069", "24071", "24072", "24073", "24074", "24089", "24093", "24094", "24095", "24099", "24100", "24101", "24114", "24115", "24116", "24120", "24121", "24122", "24123", "24124", "24125", "24126", "24129", "24130", "24131", "24132", "24134", "24138", "24139", "24140", "24141", "24142", "24143", "24150", "24151", "24152", "24153", "24154", "24155", "24156", "24157", "24161", "24165", "24166", "24167", "24177", "24178", "24179", "24186", "24187", "24188", "24191", "24210", "24211", "24212", "24213", "24215", "24216", "24217", "24218", "24221", "24222", "24223", "24224", "24243", "24244", "24246", "24247", "24248", "24249", "24250", "24251", "24267", "24268", "24269", "24276", "24277", "24278", "24279", "24280", "24281", "24282", "24283", "24284", "24294", "24295", "24296", "24324", "24326", "24329", "24339", "24340", "24350", "24351", "24352", "24360", "24361", "24366", "24367", "24368", "24383", "24393", "24394", "24395", "24399", "24400", "24401", "24402", "24404", "24420", "24421", "24422", "24441", "24442", "24443", "24467", "24495", "24496", "24497", "24501", "24502", "24503", "24519", "24520", "24521", "24522", "24523", "24524", "24528", "24529", "24546", "24547", "24548", "24552", "24553", "24554", "24558", "24559", "24581", "24661", "24663", "24664", "24665", "24672", "24673", "24674", "24693", "24694", "24695", "24705", "24706", "24707", "24735", "24736", "24737", "24738", "24739", "24740", "24743", "24744", "24745", "24746", "24759", "24760", "24771", "24772", "24773", "24804", "24805", "24806", "24823", "24840", "24846", "24847", "24848", "24879", "24880", "24881", "24912", "24913", "24914", "24973", "25002", "25004", "25013", "25029", "25030", "25031", "25074", "25075", "25076", "25088", "25095", "25096", "25097", "25128", "25130", "25135", "25212", "25213", "25214", "25341", "25342", "25343"] \ No newline at end of file +["4804", "18940", "17455", "23749", "16443", "16455", "24099", "19450", "21397", "16318", "10126", "17209", "18920", "24154", "4357", "13117", "19016", "10462", "22328", "21217", "23559", "23182", "23746", "12319", "4111", "16720", "4241", "19356", "12710", "6850", "23682", "16603", "4864", "18404", "3156", "18003", "7083", "9793", "16057", "24212", "23747", "9965", "4585", "12119", "16427", "5839", "6517", "19794", "18463", "16941", "25030", "24186", "7038", "24520", "18464", "10636", "23859", "11557", "23717", "4484", "20974", "4321", "21473", "11133", "21530", "18901", "23960", "19042", "23189", "22413", "17452", "21810", "24401", "2986", "24759", "20010", "21780", "16238", "23045", "16888", "4301", "9913", "22119", "23214", "25213", "4766", "16517", "11157", "19361", "9752", "12317", "20097", "23247", "4232", "24519", "4907", "3936", "4285", "16470", "5134", "24089", "17013", "23788", "19053", "20137", "12788", "23602", "9745", "21235", "15975", "22243", "12508", "24383", "24223", "22352", "17903", "23396", "22628", "22537", "16294", "11552", "21022", "23791", "11131", "21412", "4558", "9963", "12270", "4757", "12567", "12662", "3496", "22032", "4870", "17978", "21858", "19947", "18137", "23692", "22040", "17451", "17309", "20042", "23225", "22905", "7039", "4814", "12505", "19982", "4444", "11561", "12660", "24115", "8300", "19360", "6768", "19932", "4729", "24848", "4635", "23886", "18020", "9799", "10776", "24840", "7118", "8522", "8764", "21262", "23853", "16747", "23716", "7075", "8481", "12535", "16141", "6093", "23687", "10738", "16359", "4756", "16722", "16436", "23515", "3890", "16650", "16758", "12572", "4787", "21193", "13016", "10715", "24496", "23927", "12839", "18474", "11251", "16555", "16094", "25075", "23768", "12201", "12196", "24360", "23432", "23954", "24218", "18039", "21042", "15948", "15901", "17105", "23178", "24044", "18082", "9750", "18081", "19041", "23395", "16240", "23935", "24673", "3089", "10626", "12275", "18915", "4559", "12676", "10017", "9933", "23269", "21617", "10713", "17444", "10719", "19225", "23222", "12245", "8876", "24250", "2881", "10044", "4704", "15902", "8238", "19879", "19055", "19224", "17812", "2972", "23609", "21976", "20103", "24042", "19980", "12617", "10249", "3618", "16673", "19034", "21250", "24143", "22588", "12787", "10116", "13071", "19798", "4760", "5934", "4142", "12244", "23226", "18588", "6849", "22456", "23951", "18814", "23245", "6705", "18919", "19068", "21299", "22713", "11254", "24130", "18339", "12360", "6210", "16239", "23945", "4813", "10714", "23867", "18402", "16887", "19763", "4390", "3368", "11225", "17883", "4637", "23202", "5999", "10240", "22490", "23607", "20120", "23449", "23929", "6518", "16691", "6792", "18345", "12353", "6794", "18958", "16942", "24073", "18396", "22570", "18966", "24294", "11113", "3940", "23833", "23771", "6856", "9830", "19582", "6628", "19797", "19837", "19925", "4482", "23776", "18941", "23364", "3168", "19934", "12709", "21809", "19885", "10250", "23244", "24324", "16846", "19998", "24008", "23588", "8239", "11253", "21194", "23494", "9964", "11558", "23265", "11951", "23574", "23254", "10637", "23181", "11114", "17243", "18904", "19096", "24005", "3509", "10072", "16810", "24739", "11551", "11213", "19793", "22587", "10073", "12273", "18867", "11214", "18079", "20958", "12372", "17572", "21768", "4865", "4537", "24400", "23603", "22071", "22287", "22289", "22419", "24140", "10737", "12577", "4433", "4809", "6706", "12361", "16759", "8937", "23262", "22242", "12178", "22753", "16955", "23715", "6155", "4810", "23480", "12526", "19792", "24116", "24326", "24221", "6154", "25013", "16454", "22609", "22362", "16426", "10125", "21451", "16174", "18826", "21229", "12272", "8240", "21021", "12457", "24296", "22350", "24529", "24120", "5297", "12524", "4112", "23576", "21425", "24151", "21067", "6402", "19928", "25343", "6076", "3939", "24093", "24066", "5998", "19901", "18484", "23841", "19762", "3930", "25076", "22112", "21261", "6770", "16042", "20954", "16516", "11793", "22617", "24139", "21860", "16119", "11130", "18959", "16508", "12860", "18804", "19955", "10174", "19232", "23854", "6639", "12186", "9927", "17932", "5310", "9972", "23266", "22006", "24280", "3629", "17014", "19388", "19866", "21169", "23662", "7104", "10463", "24665", "19960", "9727", "17770", "23203", "24913", "23004", "23366", "23926", "23296", "23220", "4095", "12646", "18823", "22558", "22561", "24351", "6127", "16550", "22444", "9744", "19904", "13202", "23981", "4685", "2715", "19903", "21462", "9792", "21104", "9819", "24063", "7036", "23861", "23714", "19953", "22685", "23319", "21532", "23721", "23684", "6403", "23722", "10627", "21597", "24251", "24279", "21393", "21346", "23755", "20099", "23558", "12800", "23355", "23216", "5862", "12263", "19358", "24441", "23352", "12492", "15938", "4755", "12576", "16554", "23869", "12195", "19833", "23174", "7108", "9785", "23428", "23757", "23928", "7060", "16003", "24737", "9821", "19961", "24019", "24495", "12984", "5554", "11182", "13201", "21103", "11132", "16825", "23259", "16472", "9726", "9973", "6637", "17714", "23467", "16242", "12261", "18805", "18939", "9929", "12399", "24246", "17456", "18438", "12503", "18136", "6112", "19926", "10241", "16255", "24129", "15937", "12645", "20083", "24502", "23204", "23641", "7137", "16471", "9928", "21472", "23950", "24167", "19430", "24178", "18922", "18077", "19449", "11282", "4584", "8243", "5970", "17902", "6616", "22684", "3728", "21396", "21257", "16672", "24912", "11255", "22007", "9739", "12362", "20101", "9878", "18455", "23601", "24339", "23801", "6516", "4758", "19231", "12352", "20011", "24283", "16556", "19886", "10121", "22087", "9646", "21494", "12578", "24166", "12625", "8337", "19276", "4730", "24366", "11875", "12527", "20959", "16425", "19959", "22034", "3909", "4141", "23300", "17887", "24329", "12500", "22427", "21127", "22704", "22626", "5576", "16765", "18918", "21259", "6855", "19081", "3628", "17453", "11318", "21811", "24210", "24546", "4853", "23389", "23820", "4855", "22627", "4557", "10041", "23348", "21511", "23179", "17901", "23043", "6749", "23750", "25002", "21216", "24114", "17957", "25029", "9912", "17530", "9876", "2734", "23318", "4803", "23431", "12892", "23267", "13083", "22218", "23683", "16707", "4521", "11490", "18366", "23006", "23767", "21453", "24095", "23593", "2716", "16767", "19045", "24421", "3888", "8483", "23251", "23868", "10197", "24442", "19033", "22425", "4230", "18368", "10117", "12117", "21615", "23295", "12568", "22571", "19018", "18367", "5490", "17216", "18900", "16957", "11559", "12414", "18121", "18903", "23187", "3620", "17443", "19054", "6527", "12838", "3158", "12446", "4971", "11098", "15976", "23959", "20095", "24150", "23825", "24068", "23980", "16241", "20012", "7138", "24069", "22326", "4636", "18621", "23647", "23581", "24745", "17557", "12820", "17173", "6458", "5295", "12677", "9654", "23388", "4739", "18019", "19046", "23557", "17076", "23648", "9738", "16058", "7121", "8874", "9668", "24047", "16629", "20041", "16229", "24036", "8974", "24243", "16506", "4432", "6111", "25130", "24846", "11097", "21970", "17985", "3726", "6140", "13022", "16142", "23321", "10208", "4876", "17986", "11374", "23723", "18120", "24552", "12411", "24522", "19834", "4446", "16709", "11250", "18998", "17611", "21664", "24046", "23514", "23608", "9667", "23806", "24973", "9820", "9642", "17242", "23710", "24368", "16631", "9254", "21218", "21175", "17954", "11159", "4284", "4096", "12768", "12509", "16773", "15992", "25004", "24126", "11824", "22715", "12626", "24420", "24880", "5838", "6866", "16023", "23260", "23434", "21464", "24248", "23821", "16444", "8939", "6707", "23678", "24215", "18210", "23333", "12798", "17077", "23870", "7120", "4765", "11280", "24523", "16243", "22310", "19948", "5089", "19013", "11252", "19387", "24367", "12274", "9655", "24281", "22110", "4887", "21398", "12293", "23263", "6211", "24179", "24191", "5768", "15900", "22144", "11491", "21023", "17628", "12809", "22718", "16445", "23282", "18781", "3721", "18822", "20972", "21347", "24581", "7061", "15950", "23330", "4731", "23310", "18116", "22288", "23347", "8875", "22683", "5296", "6404", "22982", "9648", "19791", "12523", "22259", "23901", "9707", "16227", "19258", "23448", "22073", "10199", "16237", "24132", "23636", "11211", "23644", "12316", "6615", "23587", "23316", "18361", "7272", "6367", "17942", "12444", "19902", "8339", "19044", "19864", "23357", "12675", "4523", "21368", "18462", "12536", "19370", "23667", "8973", "18454", "19115", "4759", "12506", "23958", "19907", "21251", "15990", "9253", "23561", "23792", "19946", "18040", "5492", "23424", "3157", "5767", "16507", "20082", "19581", "11212", "17078", "24806", "4726", "24152", "23949", "10590", "13106", "18886", "18347", "12188", "24094", "3931", "2717", "18018", "23373", "22257", "23968", "23690", "23677", "16438", "23353", "5299", "17600", "17921", "23686", "16947", "24100", "11823", "24735", "17215", "22220", "6636", "10628", "11077", "7116", "23440", "16790", "20952", "8843", "18782", "4536", "22414", "7274", "21471", "12398", "10207", "23520", "23442", "23634", "6641", "16457", "16766", "11316", "16131", "22716", "16811", "24467", "18403", "16954", "11183", "22150", "19929", "5864", "11223", "24497", "12616", "23789", "24558", "16447", "22421", "18914", "16769", "16236", "12569", "21267", "19273", "20094", "24707", "12473", "11078", "18149", "23787", "20970", "18211", "6368", "22005", "17327", "7106", "4973", "22219", "22907", "17610", "20969", "19976", "4447", "24695", "24155", "4745", "11373", "9656", "19583", "21859", "23592", "16748", "6126", "23497", "12380", "21808", "9947", "21411", "6865", "21243", "23351", "23312", "16892", "9650", "21255", "2985", "22244", "20975", "4869", "4235", "24361", "16196", "12118", "18654", "24037", "4650", "3268", "23445", "24521", "17598", "5935", "18439", "4851", "10042", "9728", "21500", "23356", "20104", "19257", "24804", "23408", "10046", "22608", "23770", "4391", "10071", "18135", "3627", "18420", "9982", "18815", "21256", "19272", "22981", "23249", "11469", "20100", "12534", "19878", "4431", "23420", "24006", "25088", "4737", "23599", "24187", "12570", "24805", "23736", "24443", "24188", "22488", "9841", "16228", "12175", "19795", "10721", "21782", "22980", "21842", "24153", "23930", "24705", "13104", "21044", "2880", "3941", "12501", "4871", "19019", "18453", "23798", "12456", "22088", "17653", "22120", "4736", "21345", "23044", "25135", "24547", "25095", "12922", "18005", "24350", "23865", "5055", "13118", "9705", "23737", "8982", "21450", "18083", "24038", "21781", "4300", "18788", "23516", "6627", "6851", "23264", "23183", "19836", "23685", "7109", "23380", "6128", "9946", "23689", "8975", "23493", "16768", "19609", "22906", "3889", "22717", "16175", "11794", "18041", "4445", "10576", "23427", "12799", "16254", "16721", "19259", "19884", "4972", "23435", "10120", "4531", "12989", "16256", "3882", "22569", "16809", "10129", "24177", "18004", "11556", "17558", "20000", "10248", "3356", "23188", "4863", "10128", "12891", "10198", "24402", "9552", "15922", "12378", "24121", "10149", "7076", "23669", "21366", "12537", "19905", "20084", "15949", "24165", "12837", "23466", "10461", "10739", "11624", "24211", "16788", "9746", "24157", "21228", "23966", "24267", "18902", "4888", "22009", "16056", "22610", "12819", "24134", "7037", "6693", "4320", "24074", "23676", "16948", "6629", "10592", "11622", "20144", "24559", "22426", "23280", "23936", "4299", "7140", "9649", "6864", "20971", "3937", "22072", "5056", "4805", "7105", "23635", "16092", "21492", "10777", "16604", "23943", "19610", "19924", "5081", "24284", "18824", "11560", "12401", "21325", "23301", "24277", "23374", "12615", "18996", "18440", "17050", "20136", "9573", "4651", "23253", "4448", "24122", "20117", "7139", "9751", "23215", "16161", "19908", "25031", "16690", "16861", "24393", "19923", "23495", "23468", "24065", "12499", "23235", "19011", "12262", "5057", "16452", "5997", "9794", "19368", "21423", "9842", "22039", "12502", "12986", "16132", "4706", "23758", "24664", "6747", "3910", "16651", "18340", "18350", "12413", "3727", "22149", "19868", "23320", "12400", "17933", "23328", "12472", "24249", "21531", "24161", "19275", "24738", "23560", "6457", "16453", "19015", "10118", "21184", "8482", "23617", "17885", "24694", "21176", "17862", "3959", "6139", "16163", "24352", "23832", "23906", "16439", "4358", "18078", "17987", "23492", "4764", "17049", "12455", "19429", "24244", "23173", "21138", "22538", "12351", "4854", "24553", "17712", "2987", "24746", "4532", "18114", "16364", "9647", "21139", "22121", "4812", "24661", "21528", "24847", "17931", "12277", "7188", "24672", "4239", "21977", "21599", "17450", "4727", "22415", "18917", "19846", "8984", "18080", "20953", "21593", "22546", "16708", "4441", "25341", "21455", "18968", "21174", "12396", "12985", "12379", "12769", "18212", "18868", "23580", "24222", "19754", "6769", "23386", "18912", "19761", "6094", "23842", "21454", "22038", "12807", "17811", "16435", "11470", "12770", "12471", "12187", "11224", "23748", "17325", "16689", "17886", "4240", "4735", "9800", "10045", "24141", "24706", "17956", "18073", "9252", "7226", "21183", "24295", "10019", "23977", "3354", "8242", "19428", "16446", "21985", "19355", "24224", "4652", "4744", "9914", "17955", "23394", "16956", "19369", "18816", "19906", "23446", "19486", "13129", "21298", "18622", "23556", "22420", "19113", "21068", "19974", "6138", "18075", "24276", "23131", "22445", "23782", "13015", "16121", "23668", "23713", "12197", "23270", "23712", "16949", "3932", "4732", "4389", "7141", "12458", "22752", "23781", "22589", "3883", "16760", "21268", "3861", "24217", "4538", "24142", "23964", "3911", "10123", "4233", "16244", "23952", "23979", "9945", "4743", "23450", "12921", "16194", "12453", "16434", "23375", "9974", "23777", "22471", "18397", "21230", "5135", "12507", "11216", "23693", "22559", "16973", "3088", "23594", "24823", "10130", "24772", "21353", "18115", "23496", "10164", "15936", "21249", "12661", "24064", "25074", "10591", "18997", "20105", "24914", "3957", "23807", "10150", "11076", "18817", "20096", "21452", "16041", "4834", "4322", "9828", "13105", "23221", "16043", "10720", "10205", "12823", "18991", "23618", "20143", "24045", "24125", "24268", "18818", "7107", "16412", "24760", "19796", "23904", "19949", "4835", "23888", "19954", "5491", "4916", "12822", "12539", "23488", "21140", "22443", "21413", "4852", "11215", "4530", "25214", "12525", "22618", "23490", "18990", "22706", "21236", "5840", "19114", "23711", "7117", "10204", "21592", "16746", "13085", "12786", "22705", "22489", "22086", "12397", "23681", "18957", "22754", "22308", "4231", "16719", "23925", "24278", "12177", "21367", "4110", "11375", "20115", "17189", "23522", "17771", "16824", "17976", "19930", "21170", "19608", "18341", "17919", "24216", "24740", "11158", "23224", "23586", "8841", "6366", "21244", "22560", "3170", "12176", "22884", "25342", "5298", "8241", "10332", "4733", "9935", "5555", "22364", "12923", "16515", "23419", "21510", "23725", "18869", "3862", "23281", "21263", "6095", "23953", "23616", "8521", "11825", "10039", "23250", "16195", "17884", "16577", "10038", "24123", "12415", "22798", "23967", "19080", "12202", "23963", "18147", "21297", "6617", "17863", "20483", "23575", "7152", "20006", "17174", "24394", "16319", "8531", "16958", "5766", "9983", "10333", "17920", "18992", "13116", "17959", "12654", "19931", "21555", "24743", "23478", "17960", "2970", "16630", "16634", "17556", "22536", "19230", "24736", "17888", "7190", "6525", "21066", "4586", "8765", "23354", "24528", "18913", "17449", "23990", "11795", "23643", "3593", "5133", "23799", "9645", "16133", "22885", "20098", "24247", "9798", "24744", "22033", "24213", "11181", "25096", "24879", "23965", "12708", "9666", "23237", "8529", "23297", "10018", "21269", "23969", "12494", "24124", "23172", "7154", "23691", "16860", "16025", "22258", "23956", "12174", "24399", "24881", "9877", "23905", "16845", "16775", "12655", "12821", "11623", "23444", "24503", "19386", "12412", "23439", "12656", "19485", "23834", "24072", "16889", "24663", "18916", "13014", "16120", "9784", "18806", "4356", "18590", "19981", "23236", "23800", "21807", "17015", "23887", "6694", "24773", "12318", "23418", "22714", "8983", "24101", "18780", "24156", "23430", "23425", "12571", "21326", "24067", "10635", "21245", "19070", "24071", "16173", "4443", "5936", "12522", "7084", "19619", "3791", "23311", "16548", "5971", "4097", "6456", "11471", "16890", "16602", "19032", "16953", "23745", "13084", "17977", "8763", "21591", "17241", "7225", "9840", "21424", "19357", "12271", "23855", "21616", "23934", "23390", "23822", "17051", "19226", "19703", "4875", "15923", "21529", "4728", "24548", "7074", "3863", "10122", "24771", "22151", "19014", "6212", "4811", "10165", "22557", "8338", "21324", "10206", "12647", "17599", "23961", "12504", "18346", "23775", "10166", "15921", "5972", "19012", "23790", "16317", "12315", "23866", "19402", "23252", "4877", "17187", "11317", "18967", "3591", "15991", "23630", "23433", "19010", "8842", "24282", "19933", "19277", "17491", "4522", "23346", "23223", "17769", "16724", "9829", "10334", "4140", "16862", "21975", "23645", "20040", "23255", "5300", "19069", "19799", "23406", "23743", "5863", "24554", "19752", "23529", "23843", "4734", "16652", "4833", "21498", "9934", "24131", "2971", "10203", "12179", "7085", "25212", "21043", "22797", "21556", "23005", "6526", "4725", "10239", "22799", "20102", "24007", "4905", "4738", "8530", "23491", "3592", "24422", "17454", "19017", "3169", "24395", "23902", "25097", "24501", "12243", "23447", "6857", "10151", "12624", "12893", "16847", "23498", "11281", "24404", "23646", "23709", "16140", "17864", "16774", "21499", "16448", "10124", "16024", "19359", "16687", "10127", "17448", "4234", "19927", "4906", "20142", "19899", "23268", "16418", "23479", "6323", "21168", "18483", "7142", "24524", "20967", "16456", "23797", "7040", "23658", "21234", "24269", "17813", "12538", "21102", "23769", "12824", "23443", "23944", "25128", "21192", "23317", "6793", "3087", "7119", "19880", "5553", "18623", "16826", "8520", "22619", "12498", "6695", "3269", "9740", "12454", "12320", "12416", "3267", "24340", "10119", "21986", "19451", "22309", "4705", "21557", "17214", "24138", "24693", "9981", "12445", "23903", "18589", "20973", "9783", "23365", "9574", "22351", "16764", "16549", "11099", "16723", "12493", "21984", "12373", "10040", "23426", "18485", "13200", "23688", "6153", "18813", "3938", "23840", "24674", "11550", "19753", "23248", "23766", "22363", "20138", "18905", "16437", "16891", "23783"] \ No newline at end of file diff --git a/sem1/PhysicalFoundationsOfMolecularElectronics/far_water_molecules.json b/sem1/PhysicalFoundationsOfMolecularElectronics/far_water_molecules.json new file mode 100644 index 0000000..c174a48 --- /dev/null +++ b/sem1/PhysicalFoundationsOfMolecularElectronics/far_water_molecules.json @@ -0,0 +1 @@ +["4804", "18940", "17455", "23749", "16443", "16455", "24099", "19450", "21397", "16318", "10126", "17209", "18920", "24154", "4357", "13117", "19016", "10462", "22328", "21217", "23559", "23182", "23746", "12319", "4111", "16720", "4241", "19356", "12710", "6850", "23682", "16603", "4864", "18404", "3156", "18003", "7083", "9793", "16057", "24212", "23747", "9965", "4585", "12119", "16427", "5839", "6517", "19794", "18463", "16941", "25030", "24186", "7038", "24520", "18464", "10636", "23859", "11557", "23717", "4484", "20974", "4321", "21473", "11133", "21530", "18901", "23960", "19042", "23189", "22413", "17452", "21810", "24401", "2986", "24759", "20010", "21780", "16238", "23045", "16888", "4301", "9913", "22119", "23214", "25213", "4766", "16517", "11157", "19361", "9752", "12317", "20097", "23247", "4232", "24519", "4907", "3936", "4285", "16470", "5134", "24089", "17013", "23788", "19053", "20137", "12788", "23602", "9745", "21235", "15975", "22243", "12508", "24383", "24223", "22352", "17903", "23396", "22628", "22537", "16294", "11552", "21022", "23791", "11131", "21412", "4558", "9963", "12270", "4757", "12567", "12662", "3496", "22032", "4870", "17978", "21858", "19947", "18137", "23692", "22040", "17451", "17309", "20042", "23225", "22905", "7039", "4814", "12505", "19982", "4444", "11561", "12660", "24115", "8300", "19360", "6768", "19932", "4729", "24848", "4635", "23886", "18020", "9799", "10776", "24840", "7118", "8522", "8764", "21262", "23853", "16747", "23716", "7075", "8481", "12535", "16141", "6093", "23687", "10738", "16359", "4756", "16722", "16436", "23515", "3890", "16650", "16758", "12572", "4787", "21193", "13016", "10715", "24496", "23927", "12839", "18474", "11251", "16555", "16094", "25075", "23768", "12201", "12196", "24360", "23432", "23954", "24218", "18039", "21042", "15948", "15901", "17105", "23178", "24044", "18082", "9750", "18081", "19041", "23395", "16240", "23935", "24673", "3089", "10626", "12275", "18915", "4559", "12676", "10017", "9933", "23269", "21617", "10713", "17444", "10719", "19225", "23222", "12245", "8876", "24250", "2881", "10044", "4704", "15902", "8238", "19879", "19055", "19224", "17812", "2972", "23609", "21976", "20103", "24042", "19980", "12617", "10249", "3618", "16673", "19034", "21250", "24143", "22588", "12787", "10116", "13071", "19798", "4760", "5934", "4142", "12244", "23226", "18588", "6849", "22456", "23951", "18814", "23245", "6705", "18919", "19068", "21299", "22713", "11254", "24130", "18339", "12360", "6210", "16239", "23945", "4813", "10714", "23867", "18402", "16887", "19763", "4390", "3368", "11225", "17883", "4637", "23202", "5999", "10240", "22490", "23607", "20120", "23449", "23929", "6518", "16691", "6792", "18345", "12353", "6794", "18958", "16942", "24073", "18396", "22570", "18966", "24294", "11113", "3940", "23833", "23771", "6856", "9830", "19582", "6628", "19797", "19837", "19925", "4482", "23776", "18941", "23364", "3168", "19934", "12709", "21809", "19885", "10250", "23244", "24324", "16846", "19998", "24008", "23588", "8239", "11253", "21194", "23494", "9964", "11558", "23265", "11951", "23574", "23254", "10637", "23181", "11114", "17243", "18904", "19096", "24005", "3509", "10072", "16810", "24739", "11551", "11213", "19793", "22587", "10073", "12273", "18867", "11214", "18079", "20958", "12372", "17572", "21768", "4865", "4537", "24400", "23603", "22071", "22287", "22289", "22419", "24140", "10737", "12577", "4433", "4809", "6706", "12361", "16759", "8937", "23262", "22242", "12178", "22753", "16955", "23715", "6155", "4810", "23480", "12526", "19792", "24116", "24326", "24221", "6154", "25013", "16454", "22609", "22362", "16426", "10125", "21451", "16174", "18826", "21229", "12272", "8240", "21021", "12457", "24296", "22350", "24529", "24120", "5297", "12524", "4112", "23576", "21425", "24151", "21067", "6402", "19928", "25343", "6076", "3939", "24093", "24066", "5998", "19901", "18484", "23841", "19762", "3930", "25076", "22112", "21261", "6770", "16042", "20954", "16516", "11793", "22617", "24139", "21860", "16119", "11130", "18959", "16508", "12860", "18804", "19955", "10174", "19232", "23854", "6639", "12186", "9927", "17932", "5310", "9972", "23266", "22006", "24280", "3629", "17014", "19388", "19866", "21169", "23662", "7104", "10463", "24665", "19960", "9727", "17770", "23203", "24913", "23004", "23366", "23926", "23296", "23220", "4095", "12646", "18823", "22558", "22561", "24351", "6127", "16550", "22444", "9744", "19904", "13202", "23981", "4685", "2715", "19903", "21462", "9792", "21104", "9819", "24063", "7036", "23861", "23714", "19953", "22685", "23319", "21532", "23721", "23684", "6403", "23722", "10627", "21597", "24251", "24279", "21393", "21346", "23755", "20099", "23558", "12800", "23355", "23216", "5862", "12263", "19358", "24441", "23352", "12492", "15938", "4755", "12576", "16554", "23869", "12195", "19833", "23174", "7108", "9785", "23428", "23757", "23928", "7060", "16003", "24737", "9821", "19961", "24019", "24495", "12984", "5554", "11182", "13201", "21103", "11132", "16825", "23259", "16472", "9726", "9973", "6637", "17714", "23467", "16242", "12261", "18805", "18939", "9929", "12399", "24246", "17456", "18438", "12503", "18136", "6112", "19926", "10241", "16255", "24129", "15937", "12645", "20083", "24502", "23204", "23641", "7137", "16471", "9928", "21472", "23950", "24167", "19430", "24178", "18922", "18077", "19449", "11282", "4584", "8243", "5970", "17902", "6616", "22684", "3728", "21396", "21257", "16672", "24912", "11255", "22007", "9739", "12362", "20101", "9878", "18455", "23601", "24339", "23801", "6516", "4758", "19231", "12352", "20011", "24283", "16556", "19886", "10121", "22087", "9646", "21494", "12578", "24166", "12625", "8337", "19276", "4730", "24366", "11875", "12527", "20959", "16425", "19959", "22034", "3909", "4141", "23300", "17887", "24329", "12500", "22427", "21127", "22704", "22626", "5576", "16765", "18918", "21259", "6855", "19081", "3628", "17453", "11318", "21811", "24210", "24546", "4853", "23389", "23820", "4855", "22627", "4557", "10041", "23348", "21511", "23179", "17901", "23043", "6749", "23750", "25002", "21216", "24114", "17957", "25029", "9912", "17530", "9876", "2734", "23318", "4803", "23431", "12892", "23267", "13083", "22218", "23683", "16707", "4521", "11490", "18366", "23006", "23767", "21453", "24095", "23593", "2716", "16767", "19045", "24421", "3888", "8483", "23251", "23868", "10197", "24442", "19033", "22425", "4230", "18368", "10117", "12117", "21615", "23295", "12568", "22571", "19018", "18367", "5490", "17216", "18900", "16957", "11559", "12414", "18121", "18903", "23187", "3620", "17443", "19054", "6527", "12838", "3158", "12446", "4971", "11098", "15976", "23959", "20095", "24150", "23825", "24068", "23980", "16241", "20012", "7138", "24069", "22326", "4636", "18621", "23647", "23581", "24745", "17557", "12820", "17173", "6458", "5295", "12677", "9654", "23388", "4739", "18019", "19046", "23557", "17076", "23648", "9738", "16058", "7121", "8874", "9668", "24047", "16629", "20041", "16229", "24036", "8974", "24243", "16506", "4432", "6111", "25130", "24846", "11097", "21970", "17985", "3726", "6140", "13022", "16142", "23321", "10208", "4876", "17986", "11374", "23723", "18120", "24552", "12411", "24522", "19834", "4446", "16709", "11250", "18998", "17611", "21664", "24046", "23514", "23608", "9667", "23806", "24973", "9820", "9642", "17242", "23710", "24368", "16631", "9254", "21218", "21175", "17954", "11159", "4284", "4096", "12768", "12509", "16773", "15992", "25004", "24126", "11824", "22715", "12626", "24420", "24880", "5838", "6866", "16023", "23260", "23434", "21464", "24248", "23821", "16444", "8939", "6707", "23678", "24215", "18210", "23333", "12798", "17077", "23870", "7120", "4765", "11280", "24523", "16243", "22310", "19948", "5089", "19013", "11252", "19387", "24367", "12274", "9655", "24281", "22110", "4887", "21398", "12293", "23263", "6211", "24179", "24191", "5768", "15900", "22144", "11491", "21023", "17628", "12809", "22718", "16445", "23282", "18781", "3721", "18822", "20972", "21347", "24581", "7061", "15950", "23330", "4731", "23310", "18116", "22288", "23347", "8875", "22683", "5296", "6404", "22982", "9648", "19791", "12523", "22259", "23901", "9707", "16227", "19258", "23448", "22073", "10199", "16237", "24132", "23636", "11211", "23644", "12316", "6615", "23587", "23316", "18361", "7272", "6367", "17942", "12444", "19902", "8339", "19044", "19864", "23357", "12675", "4523", "21368", "18462", "12536", "19370", "23667", "8973", "18454", "19115", "4759", "12506", "23958", "19907", "21251", "15990", "9253", "23561", "23792", "19946", "18040", "5492", "23424", "3157", "5767", "16507", "20082", "19581", "11212", "17078", "24806", "4726", "24152", "23949", "10590", "13106", "18886", "18347", "12188", "24094", "3931", "2717", "18018", "23373", "22257", "23968", "23690", "23677", "16438", "23353", "5299", "17600", "17921", "23686", "16947", "24100", "11823", "24735", "17215", "22220", "6636", "10628", "11077", "7116", "23440", "16790", "20952", "8843", "18782", "4536", "22414", "7274", "21471", "12398", "10207", "23520", "23442", "23634", "6641", "16457", "16766", "11316", "16131", "22716", "16811", "24467", "18403", "16954", "11183", "22150", "19929", "5864", "11223", "24497", "12616", "23789", "24558", "16447", "22421", "18914", "16769", "16236", "12569", "21267", "19273", "20094", "24707", "12473", "11078", "18149", "23787", "20970", "18211", "6368", "22005", "17327", "7106", "4973", "22219", "22907", "17610", "20969", "19976", "4447", "24695", "24155", "4745", "11373", "9656", "19583", "21859", "23592", "16748", "6126", "23497", "12380", "21808", "9947", "21411", "6865", "21243", "23351", "23312", "16892", "9650", "21255", "2985", "22244", "20975", "4869", "4235", "24361", "16196", "12118", "18654", "24037", "4650", "3268", "23445", "24521", "17598", "5935", "18439", "4851", "10042", "9728", "21500", "23356", "20104", "19257", "24804", "23408", "10046", "22608", "23770", "4391", "10071", "18135", "3627", "18420", "9982", "18815", "21256", "19272", "22981", "23249", "11469", "20100", "12534", "19878", "4431", "23420", "24006", "25088", "4737", "23599", "24187", "12570", "24805", "23736", "24443", "24188", "22488", "9841", "16228", "12175", "19795", "10721", "21782", "22980", "21842", "24153", "23930", "24705", "13104", "21044", "2880", "3941", "12501", "4871", "19019", "18453", "23798", "12456", "22088", "17653", "22120", "4736", "21345", "23044", "25135", "24547", "25095", "12922", "18005", "24350", "23865", "5055", "13118", "9705", "23737", "8982", "21450", "18083", "24038", "21781", "4300", "18788", "23516", "6627", "6851", "23264", "23183", "19836", "23685", "7109", "23380", "6128", "9946", "23689", "8975", "23493", "16768", "19609", "22906", "3889", "22717", "16175", "11794", "18041", "4445", "10576", "23427", "12799", "16254", "16721", "19259", "19884", "4972", "23435", "10120", "4531", "12989", "16256", "3882", "22569", "16809", "10129", "24177", "18004", "11556", "17558", "20000", "10248", "3356", "23188", "4863", "10128", "12891", "10198", "24402", "9552", "15922", "12378", "24121", "10149", "7076", "23669", "21366", "12537", "19905", "20084", "15949", "24165", "12837", "23466", "10461", "10739", "11624", "24211", "16788", "9746", "24157", "21228", "23966", "24267", "18902", "4888", "22009", "16056", "22610", "12819", "24134", "7037", "6693", "4320", "24074", "23676", "16948", "6629", "10592", "11622", "20144", "24559", "22426", "23280", "23936", "4299", "7140", "9649", "6864", "20971", "3937", "22072", "5056", "4805", "7105", "23635", "16092", "21492", "10777", "16604", "23943", "19610", "19924", "5081", "24284", "18824", "11560", "12401", "21325", "23301", "24277", "23374", "12615", "18996", "18440", "17050", "20136", "9573", "4651", "23253", "4448", "24122", "20117", "7139", "9751", "23215", "16161", "19908", "25031", "16690", "16861", "24393", "19923", "23495", "23468", "24065", "12499", "23235", "19011", "12262", "5057", "16452", "5997", "9794", "19368", "21423", "9842", "22039", "12502", "12986", "16132", "4706", "23758", "24664", "6747", "3910", "16651", "18340", "18350", "12413", "3727", "22149", "19868", "23320", "12400", "17933", "23328", "12472", "24249", "21531", "24161", "19275", "24738", "23560", "6457", "16453", "19015", "10118", "21184", "8482", "23617", "17885", "24694", "21176", "17862", "3959", "6139", "16163", "24352", "23832", "23906", "16439", "4358", "18078", "17987", "23492", "4764", "17049", "12455", "19429", "24244", "23173", "21138", "22538", "12351", "4854", "24553", "17712", "2987", "24746", "4532", "18114", "16364", "9647", "21139", "22121", "4812", "24661", "21528", "24847", "17931", "12277", "7188", "24672", "4239", "21977", "21599", "17450", "4727", "22415", "18917", "19846", "8984", "18080", "20953", "21593", "22546", "16708", "4441", "25341", "21455", "18968", "21174", "12396", "12985", "12379", "12769", "18212", "18868", "23580", "24222", "19754", "6769", "23386", "18912", "19761", "6094", "23842", "21454", "22038", "12807", "17811", "16435", "11470", "12770", "12471", "12187", "11224", "23748", "17325", "16689", "17886", "4240", "4735", "9800", "10045", "24141", "24706", "17956", "18073", "9252", "7226", "21183", "24295", "10019", "23977", "3354", "8242", "19428", "16446", "21985", "19355", "24224", "4652", "4744", "9914", "17955", "23394", "16956", "19369", "18816", "19906", "23446", "19486", "13129", "21298", "18622", "23556", "22420", "19113", "21068", "19974", "6138", "18075", "24276", "23131", "22445", "23782", "13015", "16121", "23668", "23713", "12197", "23270", "23712", "16949", "3932", "4732", "4389", "7141", "12458", "22752", "23781", "22589", "3883", "16760", "21268", "3861", "24217", "4538", "24142", "23964", "3911", "10123", "4233", "16244", "23952", "23979", "9945", "4743", "23450", "12921", "16194", "12453", "16434", "23375", "9974", "23777", "22471", "18397", "21230", "5135", "12507", "11216", "23693", "22559", "16973", "3088", "23594", "24823", "10130", "24772", "21353", "18115", "23496", "10164", "15936", "21249", "12661", "24064", "25074", "10591", "18997", "20105", "24914", "3957", "23807", "10150", "11076", "18817", "20096", "21452", "16041", "4834", "4322", "9828", "13105", "23221", "16043", "10720", "10205", "12823", "18991", "23618", "20143", "24045", "24125", "24268", "18818", "7107", "16412", "24760", "19796", "23904", "19949", "4835", "23888", "19954", "5491", "4916", "12822", "12539", "23488", "21140", "22443", "21413", "4852", "11215", "4530", "25214", "12525", "22618", "23490", "18990", "22706", "21236", "5840", "19114", "23711", "7117", "10204", "21592", "16746", "13085", "12786", "22705", "22489", "22086", "12397", "23681", "18957", "22754", "22308", "4231", "16719", "23925", "24278", "12177", "21367", "4110", "11375", "20115", "17189", "23522", "17771", "16824", "17976", "19930", "21170", "19608", "18341", "17919", "24216", "24740", "11158", "23224", "23586", "8841", "6366", "21244", "22560", "3170", "12176", "22884", "25342", "5298", "8241", "10332", "4733", "9935", "5555", "22364", "12923", "16515", "23419", "21510", "23725", "18869", "3862", "23281", "21263", "6095", "23953", "23616", "8521", "11825", "10039", "23250", "16195", "17884", "16577", "10038", "24123", "12415", "22798", "23967", "19080", "12202", "23963", "18147", "21297", "6617", "17863", "20483", "23575", "7152", "20006", "17174", "24394", "16319", "8531", "16958", "5766", "9983", "10333", "17920", "18992", "13116", "17959", "12654", "19931", "21555", "24743", "23478", "17960", "2970", "16630", "16634", "17556", "22536", "19230", "24736", "17888", "7190", "6525", "21066", "4586", "8765", "23354", "24528", "18913", "17449", "23990", "11795", "23643", "3593", "5133", "23799", "9645", "16133", "22885", "20098", "24247", "9798", "24744", "22033", "24213", "11181", "25096", "24879", "23965", "12708", "9666", "23237", "8529", "23297", "10018", "21269", "23969", "12494", "24124", "23172", "7154", "23691", "16860", "16025", "22258", "23956", "12174", "24399", "24881", "9877", "23905", "16845", "16775", "12655", "12821", "11623", "23444", "24503", "19386", "12412", "23439", "12656", "19485", "23834", "24072", "16889", "24663", "18916", "13014", "16120", "9784", "18806", "4356", "18590", "19981", "23236", "23800", "21807", "17015", "23887", "6694", "24773", "12318", "23418", "22714", "8983", "24101", "18780", "24156", "23430", "23425", "12571", "21326", "24067", "10635", "21245", "19070", "24071", "16173", "4443", "5936", "12522", "7084", "19619", "3791", "23311", "16548", "5971", "4097", "6456", "11471", "16890", "16602", "19032", "16953", "23745", "13084", "17977", "8763", "21591", "17241", "7225", "9840", "21424", "19357", "12271", "23855", "21616", "23934", "23390", "23822", "17051", "19226", "19703", "4875", "15923", "21529", "4728", "24548", "7074", "3863", "10122", "24771", "22151", "19014", "6212", "4811", "10165", "22557", "8338", "21324", "10206", "12647", "17599", "23961", "12504", "18346", "23775", "10166", "15921", "5972", "19012", "23790", "16317", "12315", "23866", "19402", "23252", "4877", "17187", "11317", "18967", "3591", "15991", "23630", "23433", "19010", "8842", "24282", "19933", "19277", "17491", "4522", "23346", "23223", "17769", "16724", "9829", "10334", "4140", "16862", "21975", "23645", "20040", "23255", "5300", "19069", "19799", "23406", "23743", "5863", "24554", "19752", "23529", "23843", "4734", "16652", "4833", "21498", "9934", "24131", "2971", "10203", "12179", "7085", "25212", "21043", "22797", "21556", "23005", "6526", "4725", "10239", "22799", "20102", "24007", "4905", "4738", "8530", "23491", "3592", "24422", "17454", "19017", "3169", "24395", "23902", "25097", "24501", "12243", "23447", "6857", "10151", "12624", "12893", "16847", "23498", "11281", "24404", "23646", "23709", "16140", "17864", "16774", "21499", "16448", "10124", "16024", "19359", "16687", "10127", "17448", "4234", "19927", "4906", "20142", "19899", "23268", "16418", "23479", "6323", "21168", "18483", "7142", "24524", "20967", "16456", "23797", "7040", "23658", "21234", "24269", "17813", "12538", "21102", "23769", "12824", "23443", "23944", "25128", "21192", "23317", "6793", "3087", "7119", "19880", "5553", "18623", "16826", "8520", "22619", "12498", "6695", "3269", "9740", "12454", "12320", "12416", "3267", "24340", "10119", "21986", "19451", "22309", "4705", "21557", "17214", "24138", "24693", "9981", "12445", "23903", "18589", "20973", "9783", "23365", "9574", "22351", "16764", "16549", "11099", "16723", "12493", "21984", "12373", "10040", "23426", "18485", "13200", "23688", "6153", "18813", "3938", "23840", "24674", "11550", "19753", "23248", "23766", "22363", "20138", "18905", "16437", "16891", "23783"] \ No newline at end of file diff --git a/sem1/PhysicalFoundationsOfMolecularElectronics/test_molecule_categorizer.py b/sem1/PhysicalFoundationsOfMolecularElectronics/test_molecule_categorizer.py new file mode 100644 index 0000000..0bcc39d --- /dev/null +++ b/sem1/PhysicalFoundationsOfMolecularElectronics/test_molecule_categorizer.py @@ -0,0 +1,4293 @@ +from categorize_water_molecules_by_distance import MoleculeCategorizer + + +if __name__ == "__main__": + molecule_categorizer = MoleculeCategorizer( + protein_pdb_file_path="prot_ligand.pdb", maximum_distance_from_protein=5.0 + ) + result = molecule_categorizer.categorize_water_molecules() + + assert {m.id for m in result.close_water_molecules} == { + "2715", + "2716", + "2717", + "2734", + "2880", + "2881", + "2970", + "2971", + "2972", + "2985", + "2986", + "2987", + "3087", + "3088", + "3089", + "3156", + "3157", + "3158", + "3168", + "3169", + "3170", + "3267", + "3268", + "3269", + "3354", + "3356", + "3368", + "3496", + "3509", + "3591", + "3592", + "3593", + "3618", + "3620", + "3627", + "3628", + "3629", + "3721", + "3726", + "3727", + "3728", + "3791", + "3861", + "3862", + "3863", + "3882", + "3883", + "3888", + "3889", + "3890", + "3909", + "3910", + "3911", + "3930", + "3931", + "3932", + "3936", + "3937", + "3938", + "3939", + "3940", + "3941", + "3957", + "3959", + "4095", + "4096", + "4097", + "4110", + "4111", + "4112", + "4140", + "4141", + "4142", + "4230", + "4231", + "4232", + "4233", + "4234", + "4235", + "4239", + "4240", + "4241", + "4284", + "4285", + "4299", + "4300", + "4301", + "4320", + "4321", + "4322", + "4356", + "4357", + "4358", + "4389", + "4390", + "4391", + "4431", + "4432", + "4433", + "4441", + "4443", + "4444", + "4445", + "4446", + "4447", + "4448", + "4482", + "4484", + "4521", + "4522", + "4523", + "4530", + "4531", + "4532", + "4536", + "4537", + "4538", + "4557", + "4558", + "4559", + "4584", + "4585", + "4586", + "4635", + "4636", + "4637", + "4650", + "4651", + "4652", + "4685", + "4704", + "4705", + "4706", + "4725", + "4726", + "4727", + "4728", + "4729", + "4730", + "4731", + "4732", + "4733", + "4734", + "4735", + "4736", + "4737", + "4738", + "4739", + "4743", + "4744", + "4745", + "4755", + "4756", + "4757", + "4758", + "4759", + "4760", + "4764", + "4765", + "4766", + "4787", + "4803", + "4804", + "4805", + "4809", + "4810", + "4811", + "4812", + "4813", + "4814", + "4833", + "4834", + "4835", + "4851", + "4852", + "4853", + "4854", + "4855", + "4863", + "4864", + "4865", + "4869", + "4870", + "4871", + "4875", + "4876", + "4877", + "4887", + "4888", + "4905", + "4906", + "4907", + "4916", + "4971", + "4972", + "4973", + "5055", + "5056", + "5057", + "5081", + "5089", + "5133", + "5134", + "5135", + "5295", + "5296", + "5297", + "5298", + "5299", + "5300", + "5310", + "5490", + "5491", + "5492", + "5553", + "5554", + "5555", + "5576", + "5766", + "5767", + "5768", + "5838", + "5839", + "5840", + "5862", + "5863", + "5864", + "5934", + "5935", + "5936", + "5970", + "5971", + "5972", + "5997", + "5998", + "5999", + "6076", + "6093", + "6094", + "6095", + "6111", + "6112", + "6126", + "6127", + "6128", + "6138", + "6139", + "6140", + "6153", + "6154", + "6155", + "6210", + "6211", + "6212", + "6323", + "6366", + "6367", + "6368", + "6402", + "6403", + "6404", + "6456", + "6457", + "6458", + "6516", + "6517", + "6518", + "6525", + "6526", + "6527", + "6615", + "6616", + "6617", + "6627", + "6628", + "6629", + "6636", + "6637", + "6639", + "6641", + "6693", + "6694", + "6695", + "6705", + "6706", + "6707", + "6747", + "6749", + "6768", + "6769", + "6770", + "6792", + "6793", + "6794", + "6849", + "6850", + "6851", + "6855", + "6856", + "6857", + "6864", + "6865", + "6866", + "7036", + "7037", + "7038", + "7039", + "7040", + "7060", + "7061", + "7074", + "7075", + "7076", + "7083", + "7084", + "7085", + "7104", + "7105", + "7106", + "7107", + "7108", + "7109", + "7116", + "7117", + "7118", + "7119", + "7120", + "7121", + "7137", + "7138", + "7139", + "7140", + "7141", + "7142", + "7152", + "7154", + "7188", + "7190", + "7225", + "7226", + "7272", + "7274", + "8238", + "8239", + "8240", + "8241", + "8242", + "8243", + "8300", + "8337", + "8338", + "8339", + "8481", + "8482", + "8483", + "8520", + "8521", + "8522", + "8529", + "8530", + "8531", + "8763", + "8764", + "8765", + "8841", + "8842", + "8843", + "8874", + "8875", + "8876", + "8937", + "8939", + "8973", + "8974", + "8975", + "8982", + "8983", + "8984", + "9252", + "9253", + "9254", + "9552", + "9573", + "9574", + "9642", + "9645", + "9646", + "9647", + "9648", + "9649", + "9650", + "9654", + "9655", + "9656", + "9666", + "9667", + "9668", + "9705", + "9707", + "9726", + "9727", + "9728", + "9738", + "9739", + "9740", + "9744", + "9745", + "9746", + "9750", + "9751", + "9752", + "9783", + "9784", + "9785", + "9792", + "9793", + "9794", + "9798", + "9799", + "9800", + "9819", + "9820", + "9821", + "9828", + "9829", + "9830", + "9840", + "9841", + "9842", + "9876", + "9877", + "9878", + "9912", + "9913", + "9914", + "9927", + "9928", + "9929", + "9933", + "9934", + "9935", + "9945", + "9946", + "9947", + "9963", + "9964", + "9965", + "9972", + "9973", + "9974", + "9981", + "9982", + "9983", + "10017", + "10018", + "10019", + "10038", + "10039", + "10040", + "10041", + "10042", + "10044", + "10045", + "10046", + "10071", + "10072", + "10073", + "10116", + "10117", + "10118", + "10119", + "10120", + "10121", + "10122", + "10123", + "10124", + "10125", + "10126", + "10127", + "10128", + "10129", + "10130", + "10149", + "10150", + "10151", + "10164", + "10165", + "10166", + "10174", + "10197", + "10198", + "10199", + "10203", + "10204", + "10205", + "10206", + "10207", + "10208", + "10239", + "10240", + "10241", + "10248", + "10249", + "10250", + "10332", + "10333", + "10334", + "10461", + "10462", + "10463", + "10576", + "10590", + "10591", + "10592", + "10626", + "10627", + "10628", + "10635", + "10636", + "10637", + "10713", + "10714", + "10715", + "10719", + "10720", + "10721", + "10737", + "10738", + "10739", + "10776", + "10777", + "11076", + "11077", + "11078", + "11097", + "11098", + "11099", + "11113", + "11114", + "11130", + "11131", + "11132", + "11133", + "11157", + "11158", + "11159", + "11181", + "11182", + "11183", + "11211", + "11212", + "11213", + "11214", + "11215", + "11216", + "11223", + "11224", + "11225", + "11250", + "11251", + "11252", + "11253", + "11254", + "11255", + "11280", + "11281", + "11282", + "11316", + "11317", + "11318", + "11373", + "11374", + "11375", + "11469", + "11470", + "11471", + "11490", + "11491", + "11550", + "11551", + "11552", + "11556", + "11557", + "11558", + "11559", + "11560", + "11561", + "11622", + "11623", + "11624", + "11793", + "11794", + "11795", + "11823", + "11824", + "11825", + "11875", + "11951", + "12117", + "12118", + "12119", + "12174", + "12175", + "12176", + "12177", + "12178", + "12179", + "12186", + "12187", + "12188", + "12195", + "12196", + "12197", + "12201", + "12202", + "12243", + "12244", + "12245", + "12261", + "12262", + "12263", + "12270", + "12271", + "12272", + "12273", + "12274", + "12275", + "12277", + "12293", + "12315", + "12316", + "12317", + "12318", + "12319", + "12320", + "12351", + "12352", + "12353", + "12360", + "12361", + "12362", + "12372", + "12373", + "12378", + "12379", + "12380", + "12396", + "12397", + "12398", + "12399", + "12400", + "12401", + "12411", + "12412", + "12413", + "12414", + "12415", + "12416", + "12444", + "12445", + "12446", + "12453", + "12454", + "12455", + "12456", + "12457", + "12458", + "12471", + "12472", + "12473", + "12492", + "12493", + "12494", + "12498", + "12499", + "12500", + "12501", + "12502", + "12503", + "12504", + "12505", + "12506", + "12507", + "12508", + "12509", + "12522", + "12523", + "12524", + "12525", + "12526", + "12527", + "12534", + "12535", + "12536", + "12537", + "12538", + "12539", + "12567", + "12568", + "12569", + "12570", + "12571", + "12572", + "12576", + "12577", + "12578", + "12615", + "12616", + "12617", + "12624", + "12625", + "12626", + "12645", + "12646", + "12647", + "12654", + "12655", + "12656", + "12660", + "12661", + "12662", + "12675", + "12676", + "12677", + "12708", + "12709", + "12710", + "12768", + "12769", + "12770", + "12786", + "12787", + "12788", + "12798", + "12799", + "12800", + "12807", + "12809", + "12819", + "12820", + "12821", + "12822", + "12823", + "12824", + "12837", + "12838", + "12839", + "12860", + "12891", + "12892", + "12893", + "12921", + "12922", + "12923", + "12984", + "12985", + "12986", + "12989", + "13014", + "13015", + "13016", + "13022", + "13071", + "13083", + "13084", + "13085", + "13104", + "13105", + "13106", + "13116", + "13117", + "13118", + "13129", + "13200", + "13201", + "13202", + "15900", + "15901", + "15902", + "15921", + "15922", + "15923", + "15936", + "15937", + "15938", + "15948", + "15949", + "15950", + "15975", + "15976", + "15990", + "15991", + "15992", + "16003", + "16023", + "16024", + "16025", + "16041", + "16042", + "16043", + "16056", + "16057", + "16058", + "16092", + "16094", + "16119", + "16120", + "16121", + "16131", + "16132", + "16133", + "16140", + "16141", + "16142", + "16161", + "16163", + "16173", + "16174", + "16175", + "16194", + "16195", + "16196", + "16227", + "16228", + "16229", + "16236", + "16237", + "16238", + "16239", + "16240", + "16241", + "16242", + "16243", + "16244", + "16254", + "16255", + "16256", + "16294", + "16317", + "16318", + "16319", + "16359", + "16364", + "16412", + "16418", + "16425", + "16426", + "16427", + "16434", + "16435", + "16436", + "16437", + "16438", + "16439", + "16443", + "16444", + "16445", + "16446", + "16447", + "16448", + "16452", + "16453", + "16454", + "16455", + "16456", + "16457", + "16470", + "16471", + "16472", + "16506", + "16507", + "16508", + "16515", + "16516", + "16517", + "16548", + "16549", + "16550", + "16554", + "16555", + "16556", + "16577", + "16602", + "16603", + "16604", + "16629", + "16630", + "16631", + "16634", + "16650", + "16651", + "16652", + "16672", + "16673", + "16687", + "16689", + "16690", + "16691", + "16707", + "16708", + "16709", + "16719", + "16720", + "16721", + "16722", + "16723", + "16724", + "16746", + "16747", + "16748", + "16758", + "16759", + "16760", + "16764", + "16765", + "16766", + "16767", + "16768", + "16769", + "16773", + "16774", + "16775", + "16788", + "16790", + "16809", + "16810", + "16811", + "16824", + "16825", + "16826", + "16845", + "16846", + "16847", + "16860", + "16861", + "16862", + "16887", + "16888", + "16889", + "16890", + "16891", + "16892", + "16941", + "16942", + "16947", + "16948", + "16949", + "16953", + "16954", + "16955", + "16956", + "16957", + "16958", + "16973", + "17013", + "17014", + "17015", + "17049", + "17050", + "17051", + "17076", + "17077", + "17078", + "17105", + "17173", + "17174", + "17187", + "17189", + "17209", + "17214", + "17215", + "17216", + "17241", + "17242", + "17243", + "17309", + "17325", + "17327", + "17443", + "17444", + "17448", + "17449", + "17450", + "17451", + "17452", + "17453", + "17454", + "17455", + "17456", + "17491", + "17530", + "17556", + "17557", + "17558", + "17572", + "17598", + "17599", + "17600", + "17610", + "17611", + "17628", + "17653", + "17712", + "17714", + "17769", + "17770", + "17771", + "17811", + "17812", + "17813", + "17862", + "17863", + "17864", + "17883", + "17884", + "17885", + "17886", + "17887", + "17888", + "17901", + "17902", + "17903", + "17919", + "17920", + "17921", + "17931", + "17932", + "17933", + "17942", + "17954", + "17955", + "17956", + "17957", + "17959", + "17960", + "17976", + "17977", + "17978", + "17985", + "17986", + "17987", + "18003", + "18004", + "18005", + "18018", + "18019", + "18020", + "18039", + "18040", + "18041", + "18073", + "18075", + "18077", + "18078", + "18079", + "18080", + "18081", + "18082", + "18083", + "18114", + "18115", + "18116", + "18120", + "18121", + "18135", + "18136", + "18137", + "18147", + "18149", + "18210", + "18211", + "18212", + "18339", + "18340", + "18341", + "18345", + "18346", + "18347", + "18350", + "18361", + "18366", + "18367", + "18368", + "18396", + "18397", + "18402", + "18403", + "18404", + "18420", + "18438", + "18439", + "18440", + "18453", + "18454", + "18455", + "18462", + "18463", + "18464", + "18474", + "18483", + "18484", + "18485", + "18588", + "18589", + "18590", + "18621", + "18622", + "18623", + "18654", + "18780", + "18781", + "18782", + "18788", + "18804", + "18805", + "18806", + "18813", + "18814", + "18815", + "18816", + "18817", + "18818", + "18822", + "18823", + "18824", + "18826", + "18867", + "18868", + "18869", + "18886", + "18900", + "18901", + "18902", + "18903", + "18904", + "18905", + "18912", + "18913", + "18914", + "18915", + "18916", + "18917", + "18918", + "18919", + "18920", + "18922", + "18939", + "18940", + "18941", + "18957", + "18958", + "18959", + "18966", + "18967", + "18968", + "18990", + "18991", + "18992", + "18996", + "18997", + "18998", + "19010", + "19011", + "19012", + "19013", + "19014", + "19015", + "19016", + "19017", + "19018", + "19019", + "19032", + "19033", + "19034", + "19041", + "19042", + "19044", + "19045", + "19046", + "19053", + "19054", + "19055", + "19068", + "19069", + "19070", + "19080", + "19081", + "19096", + "19113", + "19114", + "19115", + "19224", + "19225", + "19226", + "19230", + "19231", + "19232", + "19257", + "19258", + "19259", + "19272", + "19273", + "19275", + "19276", + "19277", + "19355", + "19356", + "19357", + "19358", + "19359", + "19360", + "19361", + "19368", + "19369", + "19370", + "19386", + "19387", + "19388", + "19402", + "19428", + "19429", + "19430", + "19449", + "19450", + "19451", + "19485", + "19486", + "19581", + "19582", + "19583", + "19608", + "19609", + "19610", + "19619", + "19703", + "19752", + "19753", + "19754", + "19761", + "19762", + "19763", + "19791", + "19792", + "19793", + "19794", + "19795", + "19796", + "19797", + "19798", + "19799", + "19833", + "19834", + "19836", + "19837", + "19846", + "19864", + "19866", + "19868", + "19878", + "19879", + "19880", + "19884", + "19885", + "19886", + "19899", + "19901", + "19902", + "19903", + "19904", + "19905", + "19906", + "19907", + "19908", + "19923", + "19924", + "19925", + "19926", + "19927", + "19928", + "19929", + "19930", + "19931", + "19932", + "19933", + "19934", + "19946", + "19947", + "19948", + "19949", + "19953", + "19954", + "19955", + "19959", + "19960", + "19961", + "19974", + "19976", + "19980", + "19981", + "19982", + "19998", + "20000", + "20006", + "20010", + "20011", + "20012", + "20040", + "20041", + "20042", + "20082", + "20083", + "20084", + "20094", + "20095", + "20096", + "20097", + "20098", + "20099", + "20100", + "20101", + "20102", + "20103", + "20104", + "20105", + "20115", + "20117", + "20120", + "20136", + "20137", + "20138", + "20142", + "20143", + "20144", + "20483", + "20952", + "20953", + "20954", + "20958", + "20959", + "20967", + "20969", + "20970", + "20971", + "20972", + "20973", + "20974", + "20975", + "21021", + "21022", + "21023", + "21042", + "21043", + "21044", + "21066", + "21067", + "21068", + "21102", + "21103", + "21104", + "21127", + "21138", + "21139", + "21140", + "21168", + "21169", + "21170", + "21174", + "21175", + "21176", + "21183", + "21184", + "21192", + "21193", + "21194", + "21216", + "21217", + "21218", + "21228", + "21229", + "21230", + "21234", + "21235", + "21236", + "21243", + "21244", + "21245", + "21249", + "21250", + "21251", + "21255", + "21256", + "21257", + "21259", + "21261", + "21262", + "21263", + "21267", + "21268", + "21269", + "21297", + "21298", + "21299", + "21324", + "21325", + "21326", + "21345", + "21346", + "21347", + "21353", + "21366", + "21367", + "21368", + "21393", + "21396", + "21397", + "21398", + "21411", + "21412", + "21413", + "21423", + "21424", + "21425", + "21450", + "21451", + "21452", + "21453", + "21454", + "21455", + "21462", + "21464", + "21471", + "21472", + "21473", + "21492", + "21494", + "21498", + "21499", + "21500", + "21510", + "21511", + "21528", + "21529", + "21530", + "21531", + "21532", + "21555", + "21556", + "21557", + "21591", + "21592", + "21593", + "21597", + "21599", + "21615", + "21616", + "21617", + "21664", + "21768", + "21780", + "21781", + "21782", + "21807", + "21808", + "21809", + "21810", + "21811", + "21842", + "21858", + "21859", + "21860", + "21970", + "21975", + "21976", + "21977", + "21984", + "21985", + "21986", + "22005", + "22006", + "22007", + "22009", + "22032", + "22033", + "22034", + "22038", + "22039", + "22040", + "22071", + "22072", + "22073", + "22086", + "22087", + "22088", + "22110", + "22112", + "22119", + "22120", + "22121", + "22144", + "22149", + "22150", + "22151", + "22218", + "22219", + "22220", + "22242", + "22243", + "22244", + "22257", + "22258", + "22259", + "22287", + "22288", + "22289", + "22308", + "22309", + "22310", + "22326", + "22328", + "22350", + "22351", + "22352", + "22362", + "22363", + "22364", + "22413", + "22414", + "22415", + "22419", + "22420", + "22421", + "22425", + "22426", + "22427", + "22443", + "22444", + "22445", + "22456", + "22471", + "22488", + "22489", + "22490", + "22536", + "22537", + "22538", + "22546", + "22557", + "22558", + "22559", + "22560", + "22561", + "22569", + "22570", + "22571", + "22587", + "22588", + "22589", + "22608", + "22609", + "22610", + "22617", + "22618", + "22619", + "22626", + "22627", + "22628", + "22683", + "22684", + "22685", + "22704", + "22705", + "22706", + "22713", + "22714", + "22715", + "22716", + "22717", + "22718", + "22752", + "22753", + "22754", + "22797", + "22798", + "22799", + "22884", + "22885", + "22905", + "22906", + "22907", + "22980", + "22981", + "22982", + "23004", + "23005", + "23006", + "23043", + "23044", + "23045", + "23131", + "23172", + "23173", + "23174", + "23178", + "23179", + "23181", + "23182", + "23183", + "23187", + "23188", + "23189", + "23202", + "23203", + "23204", + "23214", + "23215", + "23216", + "23220", + "23221", + "23222", + "23223", + "23224", + "23225", + "23226", + "23235", + "23236", + "23237", + "23244", + "23245", + "23247", + "23248", + "23249", + "23250", + "23251", + "23252", + "23253", + "23254", + "23255", + "23259", + "23260", + "23262", + "23263", + "23264", + "23265", + "23266", + "23267", + "23268", + "23269", + "23270", + "23280", + "23281", + "23282", + "23295", + "23296", + "23297", + "23300", + "23301", + "23310", + "23311", + "23312", + "23316", + "23317", + "23318", + "23319", + "23320", + "23321", + "23328", + "23330", + "23333", + "23346", + "23347", + "23348", + "23351", + "23352", + "23353", + "23354", + "23355", + "23356", + "23357", + "23364", + "23365", + "23366", + "23373", + "23374", + "23375", + "23380", + "23386", + "23388", + "23389", + "23390", + "23394", + "23395", + "23396", + "23406", + "23408", + "23418", + "23419", + "23420", + "23424", + "23425", + "23426", + "23427", + "23428", + "23430", + "23431", + "23432", + "23433", + "23434", + "23435", + "23439", + "23440", + "23442", + "23443", + "23444", + "23445", + "23446", + "23447", + "23448", + "23449", + "23450", + "23466", + "23467", + "23468", + "23478", + "23479", + "23480", + "23488", + "23490", + "23491", + "23492", + "23493", + "23494", + "23495", + "23496", + "23497", + "23498", + "23514", + "23515", + "23516", + "23520", + "23522", + "23529", + "23556", + "23557", + "23558", + "23559", + "23560", + "23561", + "23574", + "23575", + "23576", + "23580", + "23581", + "23586", + "23587", + "23588", + "23592", + "23593", + "23594", + "23599", + "23601", + "23602", + "23603", + "23607", + "23608", + "23609", + "23616", + "23617", + "23618", + "23630", + "23634", + "23635", + "23636", + "23641", + "23643", + "23644", + "23645", + "23646", + "23647", + "23648", + "23658", + "23662", + "23667", + "23668", + "23669", + "23676", + "23677", + "23678", + "23681", + "23682", + "23683", + "23684", + "23685", + "23686", + "23687", + "23688", + "23689", + "23690", + "23691", + "23692", + "23693", + "23709", + "23710", + "23711", + "23712", + "23713", + "23714", + "23715", + "23716", + "23717", + "23721", + "23722", + "23723", + "23725", + "23736", + "23737", + "23743", + "23745", + "23746", + "23747", + "23748", + "23749", + "23750", + "23755", + "23757", + "23758", + "23766", + "23767", + "23768", + "23769", + "23770", + "23771", + "23775", + "23776", + "23777", + "23781", + "23782", + "23783", + "23787", + "23788", + "23789", + "23790", + "23791", + "23792", + "23797", + "23798", + "23799", + "23800", + "23801", + "23806", + "23807", + "23820", + "23821", + "23822", + "23825", + "23832", + "23833", + "23834", + "23840", + "23841", + "23842", + "23843", + "23853", + "23854", + "23855", + "23859", + "23861", + "23865", + "23866", + "23867", + "23868", + "23869", + "23870", + "23886", + "23887", + "23888", + "23901", + "23902", + "23903", + "23904", + "23905", + "23906", + "23925", + "23926", + "23927", + "23928", + "23929", + "23930", + "23934", + "23935", + "23936", + "23943", + "23944", + "23945", + "23949", + "23950", + "23951", + "23952", + "23953", + "23954", + "23956", + "23958", + "23959", + "23960", + "23961", + "23963", + "23964", + "23965", + "23966", + "23967", + "23968", + "23969", + "23977", + "23979", + "23980", + "23981", + "23990", + "24005", + "24006", + "24007", + "24008", + "24019", + "24036", + "24037", + "24038", + "24042", + "24044", + "24045", + "24046", + "24047", + "24063", + "24064", + "24065", + "24066", + "24067", + "24068", + "24069", + "24071", + "24072", + "24073", + "24074", + "24089", + "24093", + "24094", + "24095", + "24099", + "24100", + "24101", + "24114", + "24115", + "24116", + "24120", + "24121", + "24122", + "24123", + "24124", + "24125", + "24126", + "24129", + "24130", + "24131", + "24132", + "24134", + "24138", + "24139", + "24140", + "24141", + "24142", + "24143", + "24150", + "24151", + "24152", + "24153", + "24154", + "24155", + "24156", + "24157", + "24161", + "24165", + "24166", + "24167", + "24177", + "24178", + "24179", + "24186", + "24187", + "24188", + "24191", + "24210", + "24211", + "24212", + "24213", + "24215", + "24216", + "24217", + "24218", + "24221", + "24222", + "24223", + "24224", + "24243", + "24244", + "24246", + "24247", + "24248", + "24249", + "24250", + "24251", + "24267", + "24268", + "24269", + "24276", + "24277", + "24278", + "24279", + "24280", + "24281", + "24282", + "24283", + "24284", + "24294", + "24295", + "24296", + "24324", + "24326", + "24329", + "24339", + "24340", + "24350", + "24351", + "24352", + "24360", + "24361", + "24366", + "24367", + "24368", + "24383", + "24393", + "24394", + "24395", + "24399", + "24400", + "24401", + "24402", + "24404", + "24420", + "24421", + "24422", + "24441", + "24442", + "24443", + "24467", + "24495", + "24496", + "24497", + "24501", + "24502", + "24503", + "24519", + "24520", + "24521", + "24522", + "24523", + "24524", + "24528", + "24529", + "24546", + "24547", + "24548", + "24552", + "24553", + "24554", + "24558", + "24559", + "24581", + "24661", + "24663", + "24664", + "24665", + "24672", + "24673", + "24674", + "24693", + "24694", + "24695", + "24705", + "24706", + "24707", + "24735", + "24736", + "24737", + "24738", + "24739", + "24740", + "24743", + "24744", + "24745", + "24746", + "24759", + "24760", + "24771", + "24772", + "24773", + "24804", + "24805", + "24806", + "24823", + "24840", + "24846", + "24847", + "24848", + "24879", + "24880", + "24881", + "24912", + "24913", + "24914", + "24973", + "25002", + "25004", + "25013", + "25029", + "25030", + "25031", + "25074", + "25075", + "25076", + "25088", + "25095", + "25096", + "25097", + "25128", + "25130", + "25135", + "25212", + "25213", + "25214", + "25341", + "25342", + "25343", + } + assert {m.id for m in result.far_water_molecules} == { + "4804", + "18940", + "17455", + "23749", + "16443", + "16455", + "24099", + "19450", + "21397", + "16318", + "10126", + "17209", + "18920", + "24154", + "4357", + "13117", + "19016", + "10462", + "22328", + "21217", + "23559", + "23182", + "23746", + "12319", + "4111", + "16720", + "4241", + "19356", + "12710", + "6850", + "23682", + "16603", + "4864", + "18404", + "3156", + "18003", + "7083", + "9793", + "16057", + "24212", + "23747", + "9965", + "4585", + "12119", + "16427", + "5839", + "6517", + "19794", + "18463", + "16941", + "25030", + "24186", + "7038", + "24520", + "18464", + "10636", + "23859", + "11557", + "23717", + "4484", + "20974", + "4321", + "21473", + "11133", + "21530", + "18901", + "23960", + "19042", + "23189", + "22413", + "17452", + "21810", + "24401", + "2986", + "24759", + "20010", + "21780", + "16238", + "23045", + "16888", + "4301", + "9913", + "22119", + "23214", + "25213", + "4766", + "16517", + "11157", + "19361", + "9752", + "12317", + "20097", + "23247", + "4232", + "24519", + "4907", + "3936", + "4285", + "16470", + "5134", + "24089", + "17013", + "23788", + "19053", + "20137", + "12788", + "23602", + "9745", + "21235", + "15975", + "22243", + "12508", + "24383", + "24223", + "22352", + "17903", + "23396", + "22628", + "22537", + "16294", + "11552", + "21022", + "23791", + "11131", + "21412", + "4558", + "9963", + "12270", + "4757", + "12567", + "12662", + "3496", + "22032", + "4870", + "17978", + "21858", + "19947", + "18137", + "23692", + "22040", + "17451", + "17309", + "20042", + "23225", + "22905", + "7039", + "4814", + "12505", + "19982", + "4444", + "11561", + "12660", + "24115", + "8300", + "19360", + "6768", + "19932", + "4729", + "24848", + "4635", + "23886", + "18020", + "9799", + "10776", + "24840", + "7118", + "8522", + "8764", + "21262", + "23853", + "16747", + "23716", + "7075", + "8481", + "12535", + "16141", + "6093", + "23687", + "10738", + "16359", + "4756", + "16722", + "16436", + "23515", + "3890", + "16650", + "16758", + "12572", + "4787", + "21193", + "13016", + "10715", + "24496", + "23927", + "12839", + "18474", + "11251", + "16555", + "16094", + "25075", + "23768", + "12201", + "12196", + "24360", + "23432", + "23954", + "24218", + "18039", + "21042", + "15948", + "15901", + "17105", + "23178", + "24044", + "18082", + "9750", + "18081", + "19041", + "23395", + "16240", + "23935", + "24673", + "3089", + "10626", + "12275", + "18915", + "4559", + "12676", + "10017", + "9933", + "23269", + "21617", + "10713", + "17444", + "10719", + "19225", + "23222", + "12245", + "8876", + "24250", + "2881", + "10044", + "4704", + "15902", + "8238", + "19879", + "19055", + "19224", + "17812", + "2972", + "23609", + "21976", + "20103", + "24042", + "19980", + "12617", + "10249", + "3618", + "16673", + "19034", + "21250", + "24143", + "22588", + "12787", + "10116", + "13071", + "19798", + "4760", + "5934", + "4142", + "12244", + "23226", + "18588", + "6849", + "22456", + "23951", + "18814", + "23245", + "6705", + "18919", + "19068", + "21299", + "22713", + "11254", + "24130", + "18339", + "12360", + "6210", + "16239", + "23945", + "4813", + "10714", + "23867", + "18402", + "16887", + "19763", + "4390", + "3368", + "11225", + "17883", + "4637", + "23202", + "5999", + "10240", + "22490", + "23607", + "20120", + "23449", + "23929", + "6518", + "16691", + "6792", + "18345", + "12353", + "6794", + "18958", + "16942", + "24073", + "18396", + "22570", + "18966", + "24294", + "11113", + "3940", + "23833", + "23771", + "6856", + "9830", + "19582", + "6628", + "19797", + "19837", + "19925", + "4482", + "23776", + "18941", + "23364", + "3168", + "19934", + "12709", + "21809", + "19885", + "10250", + "23244", + "24324", + "16846", + "19998", + "24008", + "23588", + "8239", + "11253", + "21194", + "23494", + "9964", + "11558", + "23265", + "11951", + "23574", + "23254", + "10637", + "23181", + "11114", + "17243", + "18904", + "19096", + "24005", + "3509", + "10072", + "16810", + "24739", + "11551", + "11213", + "19793", + "22587", + "10073", + "12273", + "18867", + "11214", + "18079", + "20958", + "12372", + "17572", + "21768", + "4865", + "4537", + "24400", + "23603", + "22071", + "22287", + "22289", + "22419", + "24140", + "10737", + "12577", + "4433", + "4809", + "6706", + "12361", + "16759", + "8937", + "23262", + "22242", + "12178", + "22753", + "16955", + "23715", + "6155", + "4810", + "23480", + "12526", + "19792", + "24116", + "24326", + "24221", + "6154", + "25013", + "16454", + "22609", + "22362", + "16426", + "10125", + "21451", + "16174", + "18826", + "21229", + "12272", + "8240", + "21021", + "12457", + "24296", + "22350", + "24529", + "24120", + "5297", + "12524", + "4112", + "23576", + "21425", + "24151", + "21067", + "6402", + "19928", + "25343", + "6076", + "3939", + "24093", + "24066", + "5998", + "19901", + "18484", + "23841", + "19762", + "3930", + "25076", + "22112", + "21261", + "6770", + "16042", + "20954", + "16516", + "11793", + "22617", + "24139", + "21860", + "16119", + "11130", + "18959", + "16508", + "12860", + "18804", + "19955", + "10174", + "19232", + "23854", + "6639", + "12186", + "9927", + "17932", + "5310", + "9972", + "23266", + "22006", + "24280", + "3629", + "17014", + "19388", + "19866", + "21169", + "23662", + "7104", + "10463", + "24665", + "19960", + "9727", + "17770", + "23203", + "24913", + "23004", + "23366", + "23926", + "23296", + "23220", + "4095", + "12646", + "18823", + "22558", + "22561", + "24351", + "6127", + "16550", + "22444", + "9744", + "19904", + "13202", + "23981", + "4685", + "2715", + "19903", + "21462", + "9792", + "21104", + "9819", + "24063", + "7036", + "23861", + "23714", + "19953", + "22685", + "23319", + "21532", + "23721", + "23684", + "6403", + "23722", + "10627", + "21597", + "24251", + "24279", + "21393", + "21346", + "23755", + "20099", + "23558", + "12800", + "23355", + "23216", + "5862", + "12263", + "19358", + "24441", + "23352", + "12492", + "15938", + "4755", + "12576", + "16554", + "23869", + "12195", + "19833", + "23174", + "7108", + "9785", + "23428", + "23757", + "23928", + "7060", + "16003", + "24737", + "9821", + "19961", + "24019", + "24495", + "12984", + "5554", + "11182", + "13201", + "21103", + "11132", + "16825", + "23259", + "16472", + "9726", + "9973", + "6637", + "17714", + "23467", + "16242", + "12261", + "18805", + "18939", + "9929", + "12399", + "24246", + "17456", + "18438", + "12503", + "18136", + "6112", + "19926", + "10241", + "16255", + "24129", + "15937", + "12645", + "20083", + "24502", + "23204", + "23641", + "7137", + "16471", + "9928", + "21472", + "23950", + "24167", + "19430", + "24178", + "18922", + "18077", + "19449", + "11282", + "4584", + "8243", + "5970", + "17902", + "6616", + "22684", + "3728", + "21396", + "21257", + "16672", + "24912", + "11255", + "22007", + "9739", + "12362", + "20101", + "9878", + "18455", + "23601", + "24339", + "23801", + "6516", + "4758", + "19231", + "12352", + "20011", + "24283", + "16556", + "19886", + "10121", + "22087", + "9646", + "21494", + "12578", + "24166", + "12625", + "8337", + "19276", + "4730", + "24366", + "11875", + "12527", + "20959", + "16425", + "19959", + "22034", + "3909", + "4141", + "23300", + "17887", + "24329", + "12500", + "22427", + "21127", + "22704", + "22626", + "5576", + "16765", + "18918", + "21259", + "6855", + "19081", + "3628", + "17453", + "11318", + "21811", + "24210", + "24546", + "4853", + "23389", + "23820", + "4855", + "22627", + "4557", + "10041", + "23348", + "21511", + "23179", + "17901", + "23043", + "6749", + "23750", + "25002", + "21216", + "24114", + "17957", + "25029", + "9912", + "17530", + "9876", + "2734", + "23318", + "4803", + "23431", + "12892", + "23267", + "13083", + "22218", + "23683", + "16707", + "4521", + "11490", + "18366", + "23006", + "23767", + "21453", + "24095", + "23593", + "2716", + "16767", + "19045", + "24421", + "3888", + "8483", + "23251", + "23868", + "10197", + "24442", + "19033", + "22425", + "4230", + "18368", + "10117", + "12117", + "21615", + "23295", + "12568", + "22571", + "19018", + "18367", + "5490", + "17216", + "18900", + "16957", + "11559", + "12414", + "18121", + "18903", + "23187", + "3620", + "17443", + "19054", + "6527", + "12838", + "3158", + "12446", + "4971", + "11098", + "15976", + "23959", + "20095", + "24150", + "23825", + "24068", + "23980", + "16241", + "20012", + "7138", + "24069", + "22326", + "4636", + "18621", + "23647", + "23581", + "24745", + "17557", + "12820", + "17173", + "6458", + "5295", + "12677", + "9654", + "23388", + "4739", + "18019", + "19046", + "23557", + "17076", + "23648", + "9738", + "16058", + "7121", + "8874", + "9668", + "24047", + "16629", + "20041", + "16229", + "24036", + "8974", + "24243", + "16506", + "4432", + "6111", + "25130", + "24846", + "11097", + "21970", + "17985", + "3726", + "6140", + "13022", + "16142", + "23321", + "10208", + "4876", + "17986", + "11374", + "23723", + "18120", + "24552", + "12411", + "24522", + "19834", + "4446", + "16709", + "11250", + "18998", + "17611", + "21664", + "24046", + "23514", + "23608", + "9667", + "23806", + "24973", + "9820", + "9642", + "17242", + "23710", + "24368", + "16631", + "9254", + "21218", + "21175", + "17954", + "11159", + "4284", + "4096", + "12768", + "12509", + "16773", + "15992", + "25004", + "24126", + "11824", + "22715", + "12626", + "24420", + "24880", + "5838", + "6866", + "16023", + "23260", + "23434", + "21464", + "24248", + "23821", + "16444", + "8939", + "6707", + "23678", + "24215", + "18210", + "23333", + "12798", + "17077", + "23870", + "7120", + "4765", + "11280", + "24523", + "16243", + "22310", + "19948", + "5089", + "19013", + "11252", + "19387", + "24367", + "12274", + "9655", + "24281", + "22110", + "4887", + "21398", + "12293", + "23263", + "6211", + "24179", + "24191", + "5768", + "15900", + "22144", + "11491", + "21023", + "17628", + "12809", + "22718", + "16445", + "23282", + "18781", + "3721", + "18822", + "20972", + "21347", + "24581", + "7061", + "15950", + "23330", + "4731", + "23310", + "18116", + "22288", + "23347", + "8875", + "22683", + "5296", + "6404", + "22982", + "9648", + "19791", + "12523", + "22259", + "23901", + "9707", + "16227", + "19258", + "23448", + "22073", + "10199", + "16237", + "24132", + "23636", + "11211", + "23644", + "12316", + "6615", + "23587", + "23316", + "18361", + "7272", + "6367", + "17942", + "12444", + "19902", + "8339", + "19044", + "19864", + "23357", + "12675", + "4523", + "21368", + "18462", + "12536", + "19370", + "23667", + "8973", + "18454", + "19115", + "4759", + "12506", + "23958", + "19907", + "21251", + "15990", + "9253", + "23561", + "23792", + "19946", + "18040", + "5492", + "23424", + "3157", + "5767", + "16507", + "20082", + "19581", + "11212", + "17078", + "24806", + "4726", + "24152", + "23949", + "10590", + "13106", + "18886", + "18347", + "12188", + "24094", + "3931", + "2717", + "18018", + "23373", + "22257", + "23968", + "23690", + "23677", + "16438", + "23353", + "5299", + "17600", + "17921", + "23686", + "16947", + "24100", + "11823", + "24735", + "17215", + "22220", + "6636", + "10628", + "11077", + "7116", + "23440", + "16790", + "20952", + "8843", + "18782", + "4536", + "22414", + "7274", + "21471", + "12398", + "10207", + "23520", + "23442", + "23634", + "6641", + "16457", + "16766", + "11316", + "16131", + "22716", + "16811", + "24467", + "18403", + "16954", + "11183", + "22150", + "19929", + "5864", + "11223", + "24497", + "12616", + "23789", + "24558", + "16447", + "22421", + "18914", + "16769", + "16236", + "12569", + "21267", + "19273", + "20094", + "24707", + "12473", + "11078", + "18149", + "23787", + "20970", + "18211", + "6368", + "22005", + "17327", + "7106", + "4973", + "22219", + "22907", + "17610", + "20969", + "19976", + "4447", + "24695", + "24155", + "4745", + "11373", + "9656", + "19583", + "21859", + "23592", + "16748", + "6126", + "23497", + "12380", + "21808", + "9947", + "21411", + "6865", + "21243", + "23351", + "23312", + "16892", + "9650", + "21255", + "2985", + "22244", + "20975", + "4869", + "4235", + "24361", + "16196", + "12118", + "18654", + "24037", + "4650", + "3268", + "23445", + "24521", + "17598", + "5935", + "18439", + "4851", + "10042", + "9728", + "21500", + "23356", + "20104", + "19257", + "24804", + "23408", + "10046", + "22608", + "23770", + "4391", + "10071", + "18135", + "3627", + "18420", + "9982", + "18815", + "21256", + "19272", + "22981", + "23249", + "11469", + "20100", + "12534", + "19878", + "4431", + "23420", + "24006", + "25088", + "4737", + "23599", + "24187", + "12570", + "24805", + "23736", + "24443", + "24188", + "22488", + "9841", + "16228", + "12175", + "19795", + "10721", + "21782", + "22980", + "21842", + "24153", + "23930", + "24705", + "13104", + "21044", + "2880", + "3941", + "12501", + "4871", + "19019", + "18453", + "23798", + "12456", + "22088", + "17653", + "22120", + "4736", + "21345", + "23044", + "25135", + "24547", + "25095", + "12922", + "18005", + "24350", + "23865", + "5055", + "13118", + "9705", + "23737", + "8982", + "21450", + "18083", + "24038", + "21781", + "4300", + "18788", + "23516", + "6627", + "6851", + "23264", + "23183", + "19836", + "23685", + "7109", + "23380", + "6128", + "9946", + "23689", + "8975", + "23493", + "16768", + "19609", + "22906", + "3889", + "22717", + "16175", + "11794", + "18041", + "4445", + "10576", + "23427", + "12799", + "16254", + "16721", + "19259", + "19884", + "4972", + "23435", + "10120", + "4531", + "12989", + "16256", + "3882", + "22569", + "16809", + "10129", + "24177", + "18004", + "11556", + "17558", + "20000", + "10248", + "3356", + "23188", + "4863", + "10128", + "12891", + "10198", + "24402", + "9552", + "15922", + "12378", + "24121", + "10149", + "7076", + "23669", + "21366", + "12537", + "19905", + "20084", + "15949", + "24165", + "12837", + "23466", + "10461", + "10739", + "11624", + "24211", + "16788", + "9746", + "24157", + "21228", + "23966", + "24267", + "18902", + "4888", + "22009", + "16056", + "22610", + "12819", + "24134", + "7037", + "6693", + "4320", + "24074", + "23676", + "16948", + "6629", + "10592", + "11622", + "20144", + "24559", + "22426", + "23280", + "23936", + "4299", + "7140", + "9649", + "6864", + "20971", + "3937", + "22072", + "5056", + "4805", + "7105", + "23635", + "16092", + "21492", + "10777", + "16604", + "23943", + "19610", + "19924", + "5081", + "24284", + "18824", + "11560", + "12401", + "21325", + "23301", + "24277", + "23374", + "12615", + "18996", + "18440", + "17050", + "20136", + "9573", + "4651", + "23253", + "4448", + "24122", + "20117", + "7139", + "9751", + "23215", + "16161", + "19908", + "25031", + "16690", + "16861", + "24393", + "19923", + "23495", + "23468", + "24065", + "12499", + "23235", + "19011", + "12262", + "5057", + "16452", + "5997", + "9794", + "19368", + "21423", + "9842", + "22039", + "12502", + "12986", + "16132", + "4706", + "23758", + "24664", + "6747", + "3910", + "16651", + "18340", + "18350", + "12413", + "3727", + "22149", + "19868", + "23320", + "12400", + "17933", + "23328", + "12472", + "24249", + "21531", + "24161", + "19275", + "24738", + "23560", + "6457", + "16453", + "19015", + "10118", + "21184", + "8482", + "23617", + "17885", + "24694", + "21176", + "17862", + "3959", + "6139", + "16163", + "24352", + "23832", + "23906", + "16439", + "4358", + "18078", + "17987", + "23492", + "4764", + "17049", + "12455", + "19429", + "24244", + "23173", + "21138", + "22538", + "12351", + "4854", + "24553", + "17712", + "2987", + "24746", + "4532", + "18114", + "16364", + "9647", + "21139", + "22121", + "4812", + "24661", + "21528", + "24847", + "17931", + "12277", + "7188", + "24672", + "4239", + "21977", + "21599", + "17450", + "4727", + "22415", + "18917", + "19846", + "8984", + "18080", + "20953", + "21593", + "22546", + "16708", + "4441", + "25341", + "21455", + "18968", + "21174", + "12396", + "12985", + "12379", + "12769", + "18212", + "18868", + "23580", + "24222", + "19754", + "6769", + "23386", + "18912", + "19761", + "6094", + "23842", + "21454", + "22038", + "12807", + "17811", + "16435", + "11470", + "12770", + "12471", + "12187", + "11224", + "23748", + "17325", + "16689", + "17886", + "4240", + "4735", + "9800", + "10045", + "24141", + "24706", + "17956", + "18073", + "9252", + "7226", + "21183", + "24295", + "10019", + "23977", + "3354", + "8242", + "19428", + "16446", + "21985", + "19355", + "24224", + "4652", + "4744", + "9914", + "17955", + "23394", + "16956", + "19369", + "18816", + "19906", + "23446", + "19486", + "13129", + "21298", + "18622", + "23556", + "22420", + "19113", + "21068", + "19974", + "6138", + "18075", + "24276", + "23131", + "22445", + "23782", + "13015", + "16121", + "23668", + "23713", + "12197", + "23270", + "23712", + "16949", + "3932", + "4732", + "4389", + "7141", + "12458", + "22752", + "23781", + "22589", + "3883", + "16760", + "21268", + "3861", + "24217", + "4538", + "24142", + "23964", + "3911", + "10123", + "4233", + "16244", + "23952", + "23979", + "9945", + "4743", + "23450", + "12921", + "16194", + "12453", + "16434", + "23375", + "9974", + "23777", + "22471", + "18397", + "21230", + "5135", + "12507", + "11216", + "23693", + "22559", + "16973", + "3088", + "23594", + "24823", + "10130", + "24772", + "21353", + "18115", + "23496", + "10164", + "15936", + "21249", + "12661", + "24064", + "25074", + "10591", + "18997", + "20105", + "24914", + "3957", + "23807", + "10150", + "11076", + "18817", + "20096", + "21452", + "16041", + "4834", + "4322", + "9828", + "13105", + "23221", + "16043", + "10720", + "10205", + "12823", + "18991", + "23618", + "20143", + "24045", + "24125", + "24268", + "18818", + "7107", + "16412", + "24760", + "19796", + "23904", + "19949", + "4835", + "23888", + "19954", + "5491", + "4916", + "12822", + "12539", + "23488", + "21140", + "22443", + "21413", + "4852", + "11215", + "4530", + "25214", + "12525", + "22618", + "23490", + "18990", + "22706", + "21236", + "5840", + "19114", + "23711", + "7117", + "10204", + "21592", + "16746", + "13085", + "12786", + "22705", + "22489", + "22086", + "12397", + "23681", + "18957", + "22754", + "22308", + "4231", + "16719", + "23925", + "24278", + "12177", + "21367", + "4110", + "11375", + "20115", + "17189", + "23522", + "17771", + "16824", + "17976", + "19930", + "21170", + "19608", + "18341", + "17919", + "24216", + "24740", + "11158", + "23224", + "23586", + "8841", + "6366", + "21244", + "22560", + "3170", + "12176", + "22884", + "25342", + "5298", + "8241", + "10332", + "4733", + "9935", + "5555", + "22364", + "12923", + "16515", + "23419", + "21510", + "23725", + "18869", + "3862", + "23281", + "21263", + "6095", + "23953", + "23616", + "8521", + "11825", + "10039", + "23250", + "16195", + "17884", + "16577", + "10038", + "24123", + "12415", + "22798", + "23967", + "19080", + "12202", + "23963", + "18147", + "21297", + "6617", + "17863", + "20483", + "23575", + "7152", + "20006", + "17174", + "24394", + "16319", + "8531", + "16958", + "5766", + "9983", + "10333", + "17920", + "18992", + "13116", + "17959", + "12654", + "19931", + "21555", + "24743", + "23478", + "17960", + "2970", + "16630", + "16634", + "17556", + "22536", + "19230", + "24736", + "17888", + "7190", + "6525", + "21066", + "4586", + "8765", + "23354", + "24528", + "18913", + "17449", + "23990", + "11795", + "23643", + "3593", + "5133", + "23799", + "9645", + "16133", + "22885", + "20098", + "24247", + "9798", + "24744", + "22033", + "24213", + "11181", + "25096", + "24879", + "23965", + "12708", + "9666", + "23237", + "8529", + "23297", + "10018", + "21269", + "23969", + "12494", + "24124", + "23172", + "7154", + "23691", + "16860", + "16025", + "22258", + "23956", + "12174", + "24399", + "24881", + "9877", + "23905", + "16845", + "16775", + "12655", + "12821", + "11623", + "23444", + "24503", + "19386", + "12412", + "23439", + "12656", + "19485", + "23834", + "24072", + "16889", + "24663", + "18916", + "13014", + "16120", + "9784", + "18806", + "4356", + "18590", + "19981", + "23236", + "23800", + "21807", + "17015", + "23887", + "6694", + "24773", + "12318", + "23418", + "22714", + "8983", + "24101", + "18780", + "24156", + "23430", + "23425", + "12571", + "21326", + "24067", + "10635", + "21245", + "19070", + "24071", + "16173", + "4443", + "5936", + "12522", + "7084", + "19619", + "3791", + "23311", + "16548", + "5971", + "4097", + "6456", + "11471", + "16890", + "16602", + "19032", + "16953", + "23745", + "13084", + "17977", + "8763", + "21591", + "17241", + "7225", + "9840", + "21424", + "19357", + "12271", + "23855", + "21616", + "23934", + "23390", + "23822", + "17051", + "19226", + "19703", + "4875", + "15923", + "21529", + "4728", + "24548", + "7074", + "3863", + "10122", + "24771", + "22151", + "19014", + "6212", + "4811", + "10165", + "22557", + "8338", + "21324", + "10206", + "12647", + "17599", + "23961", + "12504", + "18346", + "23775", + "10166", + "15921", + "5972", + "19012", + "23790", + "16317", + "12315", + "23866", + "19402", + "23252", + "4877", + "17187", + "11317", + "18967", + "3591", + "15991", + "23630", + "23433", + "19010", + "8842", + "24282", + "19933", + "19277", + "17491", + "4522", + "23346", + "23223", + "17769", + "16724", + "9829", + "10334", + "4140", + "16862", + "21975", + "23645", + "20040", + "23255", + "5300", + "19069", + "19799", + "23406", + "23743", + "5863", + "24554", + "19752", + "23529", + "23843", + "4734", + "16652", + "4833", + "21498", + "9934", + "24131", + "2971", + "10203", + "12179", + "7085", + "25212", + "21043", + "22797", + "21556", + "23005", + "6526", + "4725", + "10239", + "22799", + "20102", + "24007", + "4905", + "4738", + "8530", + "23491", + "3592", + "24422", + "17454", + "19017", + "3169", + "24395", + "23902", + "25097", + "24501", + "12243", + "23447", + "6857", + "10151", + "12624", + "12893", + "16847", + "23498", + "11281", + "24404", + "23646", + "23709", + "16140", + "17864", + "16774", + "21499", + "16448", + "10124", + "16024", + "19359", + "16687", + "10127", + "17448", + "4234", + "19927", + "4906", + "20142", + "19899", + "23268", + "16418", + "23479", + "6323", + "21168", + "18483", + "7142", + "24524", + "20967", + "16456", + "23797", + "7040", + "23658", + "21234", + "24269", + "17813", + "12538", + "21102", + "23769", + "12824", + "23443", + "23944", + "25128", + "21192", + "23317", + "6793", + "3087", + "7119", + "19880", + "5553", + "18623", + "16826", + "8520", + "22619", + "12498", + "6695", + "3269", + "9740", + "12454", + "12320", + "12416", + "3267", + "24340", + "10119", + "21986", + "19451", + "22309", + "4705", + "21557", + "17214", + "24138", + "24693", + "9981", + "12445", + "23903", + "18589", + "20973", + "9783", + "23365", + "9574", + "22351", + "16764", + "16549", + "11099", + "16723", + "12493", + "21984", + "12373", + "10040", + "23426", + "18485", + "13200", + "23688", + "6153", + "18813", + "3938", + "23840", + "24674", + "11550", + "19753", + "23248", + "23766", + "22363", + "20138", + "18905", + "16437", + "16891", + "23783", + } + + print("All tests have passed!")