Biblioteca con scripts sencillos de Python

Crea un macro de YASARA para limpiar segmentos de ficheros YOB y salvarlos como YOB y como PDB.

Es frecuente usar secuencias de comandos de forma repetida para hacer una transformación en un estrutura de una proteína. El trabajo se debe agilizar si disponemos de muchos ficheros sobre los que ejercer la misma rutina de comandos.

Abriremos desde la consola de YASARA un fichero llamado PDE11_DROMEmodel4PM0-compuesto6-simi_001.yob, después eliminaremos el segmento y finalmente guardaremos la estructura con formato YOB y PDB, manteniendo el mismo nombre del fichero de partida. Debe editarse convenientemente la ruta acorde a las necesidades de cada usuario.

1.- Creamos el fichero D:\encinar\tempjant\MDs_dnc-PDE11_comp6_y_similares\_lista.txt usando CMD desde la ruta antes escrita con el comando dir *.yob >_lista.txt /B y eliminanos la extensión .yob.

2.- Creamos un fichero de texto D:\encinar\tempjant\MDs_dnc-PDE11_comp6_y_similares\_limpia-segmento.mcr, que hará de molde con las instruciones que queremos ejecutar para cada estructura que sea abierta con YASARA, justo como el que vemos debajo:

LoadYOb D:\encinar\tempjant\[variable-1].yob
SegRes UNL,___
SaveYOb 1,D:\encinar\tempjant\[variable-1].yob
SavePDB 1,D:\encinar\tempjant\[variable-1].pdb,Format=PDB,Transform=Yes,UseCIF=No
Clear

3.- El siguiente script de Python permite generar el macro _limpia-segmento-completo.mcr de YASARA que ejecute la anterior secuencia de comandos tantas veces como valores tenga la [variable-1] contenida en el fichero _lista.txt

Para copiar y pegar el código:

import os

# Definimos las rutas de los archivos
lista_path = r'D:\encinar\tempjant\MDs_dnc-PDE11_comp6_y_similares\_lista.txt'
segmento_path = r'D:\encinar\tempjant\MDs_dnc-PDE11_comp6_y_similares\_limpia-segmento.mcr'
output_path = r'D:\encinar\tempjant\MDs_dnc-PDE11_comp6_y_similares\_limpia-segmento-completo.mcr'

# Leemos las cadenas de texto del archivo _lista.txt
with open(lista_path, 'r') as lista_file:
    valores = [line.strip().split()[0] for line in lista_file]

# Leemos el contenido del archivo _limpia-segmento.mcr
with open(segmento_path, 'r') as segmento_file:
    segmento_content = segmento_file.read()

# Creamos el nuevo contenido reemplazando "[variable-1]" y concatenando
new_content = ""
for valor in valores:
    new_content += segmento_content.replace("[variable-1]", valor) + "\n"

# Escribimos el nuevo contenido en el archivo _limpia-segmento-completo.mcr
with open(output_path, 'w') as output_file:
    output_file.write(new_content)

print(f"El archivo se ha generado correctamente en: {output_path}")

Puede resultarte útil: Convertir una imagen en HTML5.







Última modificación: