jglaser/binding_affinity
A dataset to fine-tune language models on protein-ligand binding affinity prediction.
211.8k
1from mpi4py import MPI2from mpi4py.futures import MPICommExecutor3 4from openbabel import pybel5from Bio import SeqIO6 7import os8def parse_complex(fn):9 try:10 name = os.path.basename(fn).split('.')[0]11 print(name)12 seq = str(next(SeqIO.parse(fn, "pdb-seqres")).seq)13 return name, seq14 except:15 return None16 17 18if __name__ == '__main__':19 import glob20 21 filenames = glob.glob('binding_moad/BindingMOAD_2020/*.bio1')22 comm = MPI.COMM_WORLD23 with MPICommExecutor(comm, root=0) as executor:24 if executor is not None:25 result = executor.map(parse_complex, filenames)26 result = list(result)27 names = [r[0] for r in result if r is not None]28 seqs = [r[1] for r in result if r is not None]29 30 import pandas as pd31 df = pd.DataFrame({'name': names, 'seq': seqs})32 df.to_parquet('data/moad_complex.parquet')33 