© Copyright 2021 Tom Herschberg, Kyle Pifer und Eleni Panagiotou
Wenn Sie diesen Code verwenden, müssen Sie auf das folgende Dokument verweisen:
Herschberg, T., Pifer, K. und Panagiotou, E., 2022, Ein Rechenpaket zur Messung der topologischen Verschränkung in Polymeren, Proteinen und Periodensystemen (TEPPP), Comp. Physik. Komm. 286 108639
Besuchen Sie www.elenipanagiotou.com für aktuelle Informationen
Was ist TEPPP?
Erste Schritte
Gebäude
Verwendung
Beispiele
Gauß-Verknüpfungsintegral
Periodisches Winden
Jones-Polynom
Scannen Sie das Jones-Polynom
Lizenz
Mitwirkende
TEPPP ist ein Softwarepaket, das die Berechnung mehrerer topologischer Verschränkungswerte in molekularen Systemen unterstützen soll. Es ist so konzipiert, dass es in Verbindung mit einer funktionierenden MPI-Installation sowohl seriell als auch parallel funktioniert.
TEPPP erfordert einen Compiler, der C++17 (GCC 10 und höher) vollständig unterstützt. Wenn eine parallele Ausführung gewünscht wird, muss in der PATH-Variablen eine funktionierende MPI-Installation vorhanden sein.
Um nur die serielle Version der Software zu erstellen, führen Sie den folgenden Befehl aus:
seriell machen
Um nur die parallele Version der Software zu erstellen, führen Sie den folgenden Befehl aus:
mpi machen
Um beide Versionen der Software zu erstellen, geben Sie den folgenden Befehl ein:
alles machen
Die aktuelle Version von TEPPP unterstützt nur die Ausführung einzelner Befehle über die Befehlszeile, um die gewünschten Ergebnisse zu erzielen. Liegen die Koordinaten des zu analysierenden Systems in einer Datei mit einer anderen Endung als .teppp, müssen diese in eine für TEPPP lesbare Datei umgewandelt werden. Führen Sie dazu den folgenden Befehl im Installationsverzeichnis der obersten Ebene aus:
./convertor „/path/to/filename.ext“ CHAIN_LENGTH NUM_CHAINS BOX_DIM
Dabei ist CHAIN_LENGTH
die Anzahl der Atome in jeder Kette, NUM_CHAINS
die Anzahl der Ketten im System und BOX_DIM
die Länge einer Seite des periodischen Kastens, wenn das System periodische Randbedingungen verwendet. Wenn das System keine periodischen Randbedingungen verwendet, geben Sie für BOX_DIM
den Wert 0 ein.
? Beachten Sie, dass nur .teppp-Dateien unterstützt werden. Alle anderen Datendateien müssen entweder vom Benutzer oder mithilfe des Konverter-Dienstprogramms in .teppp konvertiert werden. Derzeit werden vom Konverter-Dienstprogramm nur .read_data-Dateien (mit allen Koordinaten in entpackter Form) unterstützt. Sobald der Konverterbefehl ausgeführt wurde, befindet sich die Datei mit den konvertierten Daten zur weiteren Verwendung im Verzeichnis
TEPPP/converted
.
Sobald eine .teppp-Datei mit den gewünschten Koordinaten erstellt wurde, können alle Softwarebefehle in Verbindung mit der Datei verwendet werden, um Ergebnisse zu generieren. Die derzeit verfügbaren base
sind:
jones | Berechnet das Jones-Polynom jeder Kette im System
lk | Berechnet die Verbindungszahl zwischen jedem Kettenpaar im System „Linking Numbers“.
wr | Berechnet die Krümmung jeder Kette im System
Alle base
werden mit derselben Syntax aufgerufen:
Der Dateiname (einschließlich Pfad) der Datendatei mit den Koordinaten des zu analysierenden Systems, gefolgt von CHAIN_LENGTH NUM_CHAINS ARCHITECTURE (NUM_PROJECTIONS) BOX_DIM, wobei CHAIN_LENGTH: die Länge der Ketten im System (vorausgesetzt, sie haben alle die gleiche Länge) NUM_CHAINS: die Anzahl der Ketten im System ARCHITEKTUR: derzeit unterstützender Ring oder linear, bezeichnet mit 0, 1, jeweils. NUM_PROJECTIONS: gilt nur für Jones – es handelt sich um die Anzahl der Projektionen, die für die Berechnung des Jones-Polynoms verwendet werden sollen. Wenn Sie mit Ringketten arbeiten, verwenden Sie 1. BOX_DIM: periodische Kastenabmessungen, vorausgesetzt, es wird ein kubischer Kasten angenommen
Zusätzlich zu diesen base
sind in TEPPP auch verschiedene Arten von Variantenbefehlen enthalten. periodic
Befehle analysieren die topologische Verschränkung eines bestimmten Systems und berücksichtigen dabei periodische Randbedingungen. Die derzeit verfügbaren periodic
Befehle sind:
periodic_wr | Berechnet die periodische Windung jeder Kette im System
periodic_lk | Berechnet die periodische Verknüpfungszahl zwischen jedem Kettenpaar im System
Die Syntax zum Aufrufen periodic
Befehle ist dieselbe wie die Syntax zum Aufrufen von base
.
scan
-Befehle werden verwendet, um die topologische Verflechtung bestimmter Teile von Ketten und nicht der gesamten Kette zu analysieren. Wenn ein Benutzer beispielsweise den Teil einer einzelnen Kette sehen möchte, der am meisten zum gesamten Writhe dieser Kette beiträgt, würde er einen scan
Befehl verwenden. Die derzeit verfügbaren scan
-Befehle sind:
jones_scan | Berechnet das Jones-Polynom entlang jeder Kette bei gegebenen Abtastlängen
lk_scan | Berechnet die Verknüpfungszahl entlang jedes Kettenpaars bei gegebenen Scanlängen
wr_scan | Berechnet die Windung entlang jeder Kette bei gegebenen Scanlängen
Für den Aufruf scan
-Befehlen sind 4 Parameter erforderlich, die in der unten angegebenen Reihenfolge in der Befehlszeile angegeben werden müssen:
Der Dateiname (einschließlich Pfad) der Datendatei, die die Koordinaten des zu analysierenden Systems enthält, gefolgt von CHAIN_LENGTH NUM_CHAINS ARCHITECTURE (NUM_PROJECTIONS)
Die Länge des anfänglichen Intervalls, in dem gescannt werden soll.
Die Länge des letzten Intervalls, in dem gescannt werden soll.
Der Betrag, um den das Intervall nach Abschluss eines Scans verlängert wird.
BOX_DIM (optional)
mpi
-Befehle sind parallele Versionen der oben besprochenen Befehle base
, periodic
und scan
. Sie nutzen MPI, um die Arbeitslast auf eine bestimmte Anzahl von Prozessoren aufzuteilen, anstatt die Arbeit seriell auszuführen. Die derzeit verfügbaren mpi
-Befehle sind:
jones_mpi | Berechnet das Jones-Polynom jeder Kette im System parallel
lk_mpi | Berechnet die Verbindungszahl zwischen jedem Kettenpaar im System parallel
wr_mpi | Berechnet die Windung jeder Kette im System parallel
periodic_wr_mpi | Berechnet die periodische Windung jeder Kette im System parallel
periodic_lk_mpi | Berechnet die periodische Verknüpfungszahl zwischen jedem Kettenpaar im System parallel
jones_scan_mpi | Berechnet das Jones-Polynom entlang jeder Kette in bestimmten Intervallen parallel
lk_scan_mpi | Berechnet die Verknüpfungszahl entlang jedes Kettenpaars in bestimmten Intervallen parallel
wr_scan_mpi | Berechnet die Windung entlang jeder Kette in bestimmten Intervallen parallel
mpi
-Befehle haben dieselbe Syntax wie ihre Gegenstücke base
, periodic
und scan
, müssen jedoch mit mpirun
aufgerufen werden, anstatt den Befehl selbst auszuführen.
So berechnen Sie das Gaußsche Verknüpfungsintegral zwischen jedem Kettenpaar in einem System aus „../data/systemA.teppp“ mit 100 linearen Ketten der Länge jeweils 20 in einem kubisch-periodischen Kasten der Länge 13,35315:
./lk "../data/systemA.teppp" 20 100 1 13.35315
Verwenden von MPI, um die Arbeit auf vier verschiedene Prozesse aufzuteilen:
mpirun -np 4 ./lk_mpi "../data/systemA.teppp" 20 100 1 13.35315
So berechnen Sie die periodische Krümmung jeder Kette in einem System aus „../data/systemA.teppp“ mit 100 Ketten mit jeweils einer Länge von 20 in einem kubischen periodischen Kasten mit der Länge 13,35315:
./periodic_wr "../data/systemA.teppp" 20 100 1 13.35315
Um das Jones-Polynom jeder Kette in einem System zu berechnen, das in „../data/systemA.teppp“ mit 100 Ketten der Länge jeweils 20 in einem kubisch-periodischen Kasten der Länge 13,35315 gefunden wird:
./jones "../data/systemA.teppp" 20 100 1 100 13.35315
Scannen entlang jeder Kette und Berechnen des Jones-Polynoms jeder Unterkette in einem System in „../data/systemA.teppp“ mit 100 Ketten mit jeweils einer Länge von 20, beginnend mit der Scanlänge 5 bis zur Scanlänge 10 mit einer Schrittweite von 5 :
./jones_scan "../data/systemC.teppp" 20 100 1 100 5 10 5
Copyright (c) 2021, Tom Herschberg, Kyle Pifer und Eleni Panagiotou
Alle Rechte vorbehalten.