Biblioteca con scripts sencillos de Python

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)



Última modificación: