© Copyright 2021 Tom Herschberg, Kyle Pifer y Eleni Panagiotou
Si utiliza este código, debe hacer referencia al siguiente documento:
Herschberg, T., Pifer, K. y Panagiotou, E., 2022, Un paquete computacional para medir el entrelazamiento topológico en polímeros, proteínas y sistemas periódicos (TEPPP), Comp. Física. Comunitario. 286 108639
visite www.elenipanagiotou.com para obtener información actualizada
¿Qué es el TEPPP?
Empezando
Edificio
Uso
Ejemplos
Integral de enlace de Gauss
Contorsión periódica
Polinomio de Jones
Escanear el polinomio de Jones
Licencia
Colaboradores
TEPPP es un paquete de software diseñado para ayudar en el cálculo de varios valores de entrelazamiento topológico en sistemas moleculares. Está diseñado para funcionar tanto en serie como en paralelo cuando se combina con una instalación MPI en funcionamiento.
TEPPP requiere un compilador que sea totalmente compatible con C++ 17 (GCC 10 y superiores). Si se desea la ejecución en paralelo, debe haber una instalación MPI en funcionamiento en la variable PATH.
Para compilar solo la versión serial del software, ejecute el siguiente comando:
hacer en serie
Para compilar solo la versión paralela del software, ejecute el siguiente comando:
hacer mpi
Para crear ambas versiones del software, escriba el siguiente comando:
hacer todo
La versión actual de TEPPP solo admite la ejecución de comandos individuales a través de la línea de comandos para obtener los resultados deseados. Si las coordenadas del sistema a analizar se encuentran en un archivo con extensión distinta a .teppp, se deben convertir a un archivo legible por TEPPP. Para hacer esto, ejecute el siguiente comando en el directorio de instalación de nivel superior:
./convertor "/ruta/al/nombredearchivo.ext" CHAIN_LENGTH NUM_CHAINS BOX_DIM
donde CHAIN_LENGTH
es el número de átomos en cada cadena, NUM_CHAINS
es el número de cadenas en el sistema y BOX_DIM
es la longitud de un lado del cuadro periódico si el sistema usa condiciones de contorno periódicas. Si el sistema no utiliza condiciones de contorno periódicas, ingrese 0 para BOX_DIM
.
? Tenga en cuenta que solo se admiten archivos .teppp. Todos los demás archivos de datos deben ser convertidos a .teppp por el usuario o mediante la utilidad de conversión. En este momento, la utilidad de conversión solo admite archivos .read_data (con todas las coordenadas en formato desenvuelto). Una vez que se haya ejecutado el comando convertidor, el archivo con los datos convertidos se ubicará en el directorio
TEPPP/converted
para su uso posterior.
Una vez que se ha generado un archivo .teppp con las coordenadas deseadas, cualquiera de los comandos del software se puede utilizar junto con el archivo para generar resultados. Los comandos base
que están disponibles actualmente son:
jones | Calcula el polinomio de Jones de cada cadena del sistema.
lk | Calcula el número de enlace entre cada par de cadenas en el sistemaNúmeros de enlace
wr | Calcula el Writhe de cada cadena en el sistema.
Todos los comandos base
se llaman usando la misma sintaxis:
El nombre del archivo (incluida la ruta) del archivo de datos que contiene las coordenadas del sistema a analizar seguido de CHAIN_LENGTH NUM_CHAINS ARCHITECTURE (NUM_PROJECTIONS) BOX_DIM, donde CHAIN_LENGTH: la longitud de las cadenas en el sistema (asumiendo que todas tienen la misma longitud) NUM_CHAINS: el número de cadenas en el sistema ARQUITECTURA: actualmente soportadas en anillo o lineal, denotadas por 0, 1, respectivamente. NUM_PROJECTIONS: se aplica solo a Jones; es el número de proyecciones que se utilizarán para el cálculo del polinomio de Jones. Si trabaja con cadenas de anillos, use 1. BOX_DIM: dimensiones periódicas de la caja, suponiendo que la caja sea cúbica.
Además de estos comandos base
, hay varios tipos de comandos variantes que también se incluyen en TEPPP. Los comandos periodic
analizan el entrelazamiento topológico de un sistema dado y al mismo tiempo tienen en cuenta las condiciones de contorno periódicas. Los comandos periodic
que están disponibles actualmente son:
periódico_wr | Calcula el Writhe periódico de cada cadena en el sistema.
periódico_lk | Calcula el número de enlace periódico entre cada par de cadenas en el sistema.
La sintaxis para llamar a comandos periodic
es la misma que la sintaxis para llamar a comandos base
.
Los comandos scan
se utilizan para analizar el entrelazamiento topológico de ciertas partes de las cadenas en lugar de toda la cadena. Por ejemplo, si un usuario quiere la parte de una sola cadena que contribuye más al Writhe general de esa cadena, usaría un comando scan
. Los comandos scan
que están disponibles actualmente son:
jones_scan | Calcula el polinomio de Jones a lo largo de cada cadena en longitudes de escaneo dadas
lk_scan | Calcula el número de enlaces a lo largo de cada par de cadenas en longitudes de escaneo determinadas
wr_scan | Calcula el Writhe a lo largo de cada cadena en longitudes de escaneo determinadas.
Llamar a los comandos scan
requiere 4 parámetros, que deben proporcionarse en la línea de comando en el orden que se muestra a continuación:
El nombre de archivo (incluida la ruta) del archivo de datos que contiene las coordenadas del sistema a analizar, seguido de CHAIN_LENGTH NUM_CHAINS ARCHITECTURE (NUM_PROJECTIONS)
La duración del intervalo inicial en el que escanear.
La duración del intervalo final en el que escanear.
La cantidad para aumentar el intervalo después de que se completa una exploración.
BOX_DIM (opcional)
Los comandos mpi
son versiones paralelas de los comandos base
, periodic
y scan
discutidos anteriormente. Aprovechan MPI para dividir la carga de trabajo entre una cantidad determinada de procesadores en lugar de realizar el trabajo en serie. Los comandos mpi
que están disponibles actualmente son:
jones_mpi | Calcula el polinomio de Jones de cada cadena del sistema en paralelo
lk_mpi | Calcula el número de enlace entre cada par de cadenas del sistema en paralelo.
wr_mpi | Calcula el Writhe de cada cadena del sistema en paralelo.
periodic_wr_mpi | Calcula el Writhe periódico de cada cadena del sistema en paralelo.
periódico_lk_mpi | Calcula el número de enlace periódico entre cada par de cadenas del sistema en paralelo
jones_scan_mpi | Calcula el polinomio de Jones a lo largo de cada cadena en intervalos dados en paralelo
lk_scan_mpi | Calcula el número de enlace a lo largo de cada par de cadenas en intervalos dados en paralelo
wr_scan_mpi | Calcula el Writhe a lo largo de cada cadena en intervalos dados en paralelo
Los comandos mpi
tienen la misma sintaxis que sus contrapartes base
, periodic
y scan
, pero deben llamarse usando mpirun
en lugar de ejecutar el comando en sí.
Para calcular la integral de enlace de Gauss entre cada par de cadenas en un sistema que se encuentra en "../data/systemA.teppp" con 100 cadenas lineales cada una de longitud 20 en una caja periódica cúbica de longitud 13,35315:
./lk "../data/systemA.teppp" 20 100 1 13.35315
usando MPI para dividir el trabajo entre 4 procesos diferentes:
mpirun -np 4 ./lk_mpi "../data/systemA.teppp" 20 100 1 13.35315
Para calcular la contorsión periódica de cada cadena en un sistema que se encuentra en "../data/systemA.teppp" con 100 cadenas cada una de longitud 20 en una caja periódica cúbica de longitud 13,35315:
./periodic_wr "../data/systemA.teppp" 20 100 1 13.35315
Para calcular el polinomio de Jones de cada cadena en un sistema que se encuentra en "../data/systemA.teppp" con 100 cadenas cada una de longitud 20 en una caja periódica cúbica de longitud 13,35315:
./jones "../data/systemA.teppp" 20100 1100 13.35315
Escanear a lo largo de cada cadena y calcular el polinomio de Jones de cada subcadena en un sistema que se encuentra en "../data/systemA.teppp" con 100 cadenas cada una de longitud 20, comenzando con una longitud de escaneo de 5 hasta una longitud de escaneo de 10 con un paso de 5. :
./jones_scan "../data/systemC.teppp" 20 100 1 100 5 10 5
Copyright (c) 2021, Tom Herschberg, Kyle Pifer y Eleni Panagiotou
Reservados todos los derechos.