Script de Python para combinar ficheros SDF en un único fichero de salida.
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")
Script de Python para separar en tantos ficheros *.sdf como estructuras unicas contenga un fichero SDF dado.
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)
Script de Python 3 para extraer nombres de las moleculas contenidas en un fichero SDF dado.
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')
Script de Python 3 para descargar una lista de ficheros PDB en tu disco duro.
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
# Mira este ejemplo: 2IIP,3ROD,5YJF,6CHH,6ORR,6PVE,6PVS,7BKG,7BLE,7EGU,7EHZ,7EI2,7ET7
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)