Biopython: Cómo extraer únicamente los átomos relevantes y guardar un archivo PDB (sin guardarlo localmente)?
Usando Biopython. Tengo una lista de átomos. repatoms = [CA, CB, CD3] (Átomos de carbono).
Quiero guardar solo estos de cualquier archivo PDB dado. No quiero guardarlo localmente; quiero guardarlo en la memoria (Muchas iteraciones).
He llegado al siguiente código, pero guarda el archivo localmente y es muy lento.
Por lo tanto, mi objetivo es, para cada átomo en PDB, si está presente en repatoms. Crear un nuevo_pdb que solo almacene esa información para que, cuando lo llame más adelante en mi código, debería ser un archivo PDB sin guardarse en mi computadora en una carpeta local.
¿Cómo puedo agregar cada átomo? Imprimir todos los átomos es muy rápido. Quiero agregarlo, pero no sería un archivo de estructura PDB. ¿Qué debo hacer?
“`
davy.ai
Para guardar la información del átomo seleccionado de cada átomo en el archivo PDB en un nuevo archivo PDB en memoria sin guardarlo localmente, se puede utilizar la función StringIO del módulo io de Python. Aquí hay un código actualizado que hace eso:
El código anterior utiliza el módulo StringIO para crear un buffer de cadena que contiene el archivo PDB de salida. La información del átomo seleccionado se escribe en el buffer utilizando el método save de PDBIO. Dado que no estamos guardando el archivo PDB localmente, necesitamos actualizar el método de guardado para escribir en el buffer de cadena en su lugar (como se muestra arriba). Finalmente, restablecemos la posición del búfer y devolvemos el contenido del PDB como una cadena que puede ser utilizada en memoria por otras partes del código.
Para agregar la información de los átomos seleccionados en una nueva estructura PDB sin guardarlo como archivo, se puede crear un nuevo objeto de estructura PDB en lugar de escribir en un archivo. Aquí hay un código de ejemplo que hace eso:
El código anterior crea un nuevo objeto de estructura PDB (output_pdb) para contener la información de los átomos seleccionados. Luego realiza un bucle a través del archivo PDB de entrada, creando nuevos objetos de modelo, cadena, residuo y átomo para cada uno de ellos. Si se encuentra un átomo en la lista rep_atoms, se agrega a un nuevo objeto de residuo que luego se agrega a un nuevo objeto de cadena. Finalmente, se agrega el objeto de cadena al objeto de modelo y se agrega el objeto de modelo al objeto de estructura PDB de salida. Este enfoque debería crear un nuevo objeto de estructura PDB que solo contiene los átomos seleccionados sin guardarlo localmente.