import os # Carpeta que contiene los archivos SDF folder_path = 'D:/MolPort-database_v5/MPv5-001/' # Nombre del archivo de salida combinado output_file_name = 'MPv5-001_ligands.sdf' # Lista de nombres de archivos SDF en la carpeta sdf_files = [file for file in os.listdir(folder_path) if file.endswith('.sdf')] # Ruta completa del archivo de salida combinado output_file_path = os.path.join(folder_path, output_file_name) # Abrir archivo de salida en modo escritura with open(output_file_path, 'w') as outfile: # Iterar sobre cada archivo SDF for file in sdf_files: # Abrir archivo SDF en modo lectura with open(os.path.join(folder_path, file), 'r') as infile: # Escribir contenido del archivo SDF para la salida y agrega los 4dolares outfile.write(infile.read()) outfile.write("$$$$\n")
import os # Carpeta que contiene el archivo SDF de entrada y donde se guardarán los archivos SDF de salida folder_path = 'c:/salida-SDF-unico/' # Ruta completa del archivo SDF de entrada input_file_path = os.path.join(folder_path, '_todos-SDF.sdf') # Abrir archivo de entrada en modo lectura with open(input_file_path, 'r') as input_file: # Leer todo el contenido del archivo de entrada input_text = input_file.read() # Separar el contenido del archivo en una lista de estructuras SDF sdf_structures = input_text.split('$$$$\n') # Iterar sobre cada estructura SDF for structure in sdf_structures: # Obtener el nombre del archivo de salida de la primera línea de la estructura name_line = structure.split('\n')[0] output_file_name = name_line.strip() + '.sdf' # Ruta completa del archivo de salida output_file_path = os.path.join(folder_path, output_file_name) # Abrir archivo de salida en modo escritura with open(output_file_path, 'w') as output_file: # Escribir la estructura SDF en el archivo de salida output_file.write(structure)
import os # Carpeta que contiene el archivo SDF de entrada y donde se guardará el archivo de texto de salida folder_path = 'c:/lista-de-mombres-moleculas/' # Ruta completa del archivo SDF de entrada input_file_path = os.path.join(folder_path, '_todos-SDF-a-lista-de-mombres-moleculas.sdf') # Ruta completa del archivo de texto de salida output_file_path = os.path.join(folder_path, '_todos-SDF-a-lista-de-mombres-moleculas.txt') # Abrir archivo de entrada en modo lectura with open(input_file_path, 'r') as input_file: # Leer todo el contenido del archivo de entrada input_text = input_file.read() # Separar el contenido del archivo en una lista de estructuras SDF sdf_structures = input_text.split('$$$$\n') # Lista para almacenar los nombres de las moléculas molecule_names = [] # Iterar sobre cada estructura SDF for structure in sdf_structures: # Obtener el nombre de la molécula de la primera línea de la estructura name_line = structure.split('\n')[0] molecule_name = name_line.strip() # Añadir el nombre de la molécula a la lista molecule_names.append(molecule_name) # Abrir archivo de texto de salida en modo escritura with open(output_file_path, 'w') as output_file: # Escribir los nombres de las moléculas en el archivo de texto for molecule_name in molecule_names: output_file.write(molecule_name + '\n')
El fichero "_lista-PDB-descargar.txt" contiene
2IIP,3ROD,5YJF,6CHH,6ORR,6PVE,6PVS,7BKG,7BLE,7EGU,7EHZ,7EI2,7ET7,7EU5,7NBJ,
7NBM,7NBQ,7RKK,7RKL,7WMC,7WMT
import urllib.parse import urllib.request # Lee la lista de PDB desde el archivo y divídela en una lista utilizando la coma como separador with open("c:/descarga-PDB/_lista-PDB-descargar.txt", "r") as f: pdb_list = f.read().split(",") # Descarga cada archivo PDB de la lista for pdb in pdb_list: # Elimina los espacios en blanco al principio y al final del código PDB pdb = pdb.strip() pdb_code = urllib.parse.quote(pdb) url = f"https://files.rcsb.org/download/{pdb_code}.pdb" print(url) output = f"c:/descarga-PDB/{pdb}.pdb" urllib.request.urlretrieve(url, output)