© 저작권 2021 Tom Herschberg, Kyle Pifer 및 Eleni Panagiotou
이 코드를 사용하는 경우 다음 문서를 참조해야 합니다.
Herschberg, T., Pifer, K. 및 Panagiotou, E., 2022, 고분자, 단백질 및 주기 시스템(TEPPP)의 위상 얽힘을 측정하기 위한 계산 패키지, Comp. 물리. 커뮤니케이터 286 108639
최신 정보를 보려면 www.elenipanagiotou.com을 방문하세요.
TEPPP란 무엇입니까?
시작하기
건물
용법
예
가우스 연결 적분
주기적인 몸부림
존스 다항식
스캔 존스 다항식
특허
기여자
TEPPP는 분자 시스템의 여러 위상적 얽힘 값 계산을 돕기 위해 설계된 소프트웨어 패키지입니다. 이는 작동하는 MPI 설치와 결합될 때 직렬 및 병렬로 모두 작동하도록 설계되었습니다.
TEPPP에는 C++17(GCC 10 이상)을 완벽하게 지원하는 컴파일러가 필요합니다. 병렬 실행을 원하는 경우 작동하는 MPI 설치가 PATH 변수에 있어야 합니다.
소프트웨어의 직렬 버전만 빌드하려면 다음 명령을 실행하십시오.
연재하다
소프트웨어의 병렬 버전만 빌드하려면 다음 명령을 실행하십시오.
mpi를 만들다
두 가지 버전의 소프트웨어를 모두 만들려면 다음 명령을 입력하십시오.
모두 만들다
현재 버전의 TEPPP는 원하는 결과를 얻기 위해 명령줄을 통해 개별 명령을 실행하는 것만 지원합니다. 분석할 시스템의 좌표가 .teppp 이외의 확장자를 가진 파일에 있는 경우 TEPPP에서 읽을 수 있는 파일로 변환해야 합니다. 이렇게 하려면 최상위 설치 디렉터리에서 다음 명령을 실행합니다.
./convertor "/path/to/filename.ext" CHAIN_LENGTH NUM_CHAINS BOX_DIM
여기서 CHAIN_LENGTH
는 각 체인의 원자 수이고, NUM_CHAINS
는 시스템의 체인 수이며, BOX_DIM
시스템이 주기 경계 조건을 사용하는 경우 주기 상자의 한쪽 길이입니다. 시스템이 주기 경계 조건을 사용하지 않는 경우 BOX_DIM
에 0을 입력합니다.
? .teppp 파일만 지원됩니다. 다른 모든 데이터 파일은 사용자가 또는 변환기 유틸리티를 사용하여 .teppp로 변환해야 합니다. 현재 변환기 유틸리티는 .read_data 파일(래핑되지 않은 형식의 모든 좌표 포함)만 지원합니다. 변환기 명령이 실행되면 변환된 데이터가 있는 파일은 나중에 사용할 수 있도록
TEPPP/converted
디렉토리에 위치하게 됩니다.
원하는 좌표가 포함된 .teppp 파일이 생성되면 파일과 함께 소프트웨어 명령을 사용하여 결과를 생성할 수 있습니다. 현재 사용할 수 있는 base
명령은 다음과 같습니다.
존스 | 시스템의 각 체인에 대한 존스 다항식을 계산합니다.
lk | 시스템 연결 번호의 각 체인 쌍 사이의 연결 번호를 계산합니다.
워 | 시스템의 각 체인의 Writhe를 계산합니다.
모든 base
명령은 동일한 구문을 사용하여 호출됩니다.
분석할 시스템의 좌표가 포함된 데이터 파일의 파일 이름(경로 포함), 그 뒤에 CHAIN_LENGTH NUM_CHAINS ARCHITECTURE (NUM_PROJECTIONS) BOX_DIM, 여기서 CHAIN_LENGTH: 시스템의 체인 길이(모두 동일한 길이를 갖는다고 가정) NUM_CHAINS: ARCHITECTURE 시스템의 체인 수: 현재 링 또는 선형을 지원하며 각각 0, 1로 표시됩니다. NUM_PROJECTIONS: 존스에만 적용됩니다. 존스 다항식 계산에 사용할 투영 수입니다. 링 체인으로 작업하는 경우 1을 사용하십시오. BOX_DIM: 주기적인 상자 크기, 큐빅 상자 가정
이러한 base
명령 외에도 TEPPP에는 여러 유형의 변형 명령이 포함되어 있습니다. periodic
명령은 주기적인 경계 조건을 고려하면서 주어진 시스템의 위상적 얽힘을 분석합니다. 현재 사용할 수 있는 periodic
명령은 다음과 같습니다.
periodic_wr | 시스템 내 각 체인의 주기적인 Writhe를 계산합니다.
periodic_lk | 시스템의 각 체인 쌍 사이의 주기적 연결 수를 계산합니다.
periodic
명령을 호출하는 구문은 base
명령을 호출하는 구문과 동일합니다.
scan
명령은 전체 체인이 아닌 체인의 특정 부분의 위상적 얽힘을 분석하는 데 사용됩니다. 예를 들어, 사용자가 해당 체인의 전체 Writhe에 가장 많이 기여하는 단일 체인의 일부를 원하는 경우 scan
명령을 사용합니다. 현재 사용할 수 있는 scan
명령은 다음과 같습니다.
존스_스캔 | 주어진 스캔 길이에서 각 체인을 따라 존스 다항식을 계산합니다.
lk_스캔 | 주어진 스캔 길이에서 각 체인 쌍을 따라 연결 수를 계산합니다.
wr_scan | 주어진 스캔 길이에서 각 체인을 따라 Writhe를 계산합니다.
scan
명령을 호출하려면 4개의 매개변수가 필요하며 아래 표시된 순서대로 명령줄에 제공해야 합니다.
분석할 시스템의 좌표가 포함된 데이터 파일의 파일 이름(경로 포함), 그 뒤에 CHAIN_LENGTH NUM_CHAINS ARCHITECTURE (NUM_PROJECTIONS)
스캔할 초기 간격의 길이입니다.
스캔할 최종 간격의 길이입니다.
스캔이 완료된 후 간격을 늘리는 양입니다.
BOX_DIM(선택사항)
mpi
명령은 위에서 설명한 base
, periodic
및 scan
명령의 병렬 버전입니다. 작업을 순차적으로 수행하는 대신 MPI를 활용하여 지정된 수의 프로세서 간에 작업 부하를 분할합니다. 현재 사용 가능한 mpi
명령은 다음과 같습니다.
존스_mpi | 시스템 내 각 체인의 존스 다항식을 병렬로 계산합니다.
lk_mpi | 시스템의 각 체인 쌍 간의 병렬 연결 수를 계산합니다.
wr_mpi | 시스템 내 각 체인의 Writhe를 병렬로 계산합니다.
periodic_wr_mpi | 시스템 내 각 체인의 주기적인 Writhe를 병렬로 계산합니다.
periodic_lk_mpi | 병렬로 시스템의 각 체인 쌍 사이의 주기적 연결 수를 계산합니다.
jones_scan_mpi | 주어진 간격으로 각 체인을 따라 존스 다항식을 병렬로 계산합니다.
lk_scan_mpi | 주어진 간격으로 각 체인 쌍을 따라 연결 수를 병렬로 계산합니다.
wr_scan_mpi | 주어진 간격으로 각 체인을 따라 Writhe를 병렬로 계산합니다.
mpi
명령은 base
, periodic
및 scan
명령과 동일한 구문을 갖지만 명령 자체를 실행하는 대신 mpirun
사용하여 호출해야 합니다.
길이가 13.35315인 입방 주기 상자에 각각 길이가 20인 100개의 선형 체인이 있는 "../data/systemA.teppp"에 있는 시스템의 각 체인 쌍 사이의 가우스 연결 적분을 계산하려면 다음을 수행하십시오.
./lk "../data/systemA.teppp" 20 100 1 13.35315
MPI를 사용하여 4개의 서로 다른 프로세스 간에 작업을 분할합니다.
mpirun -np 4 ./lk_mpi "../data/systemA.teppp" 20 100 1 13.35315
길이가 13.35315인 입방 주기 상자에 각각 길이가 20인 100개의 체인이 있는 "../data/systemA.teppp"에 있는 시스템에서 각 체인의 주기적 뒤틀림을 계산하려면 다음을 수행하십시오.
./ periodic_wr "../data/systemA.teppp" 20 100 1 13.35315
길이가 13.35315인 입방 주기 상자에 각각 길이가 20인 100개의 체인이 있는 "../data/systemA.teppp"에 있는 시스템에서 각 체인의 존스 다항식을 계산하려면 다음을 수행하십시오.
./jones "../data/systemA.teppp" 20 100 1 100 13.35315
각 체인을 따라 스캔하고 "../data/systemA.teppp"에 있는 시스템에서 각 길이 20의 스캔 길이 5부터 시작하여 스캔 길이 10까지 5단계로 스캔 길이 10인 100개의 체인이 있는 시스템에서 각 하위 체인의 존스 다항식을 계산합니다. :
./jones_scan "../data/systemC.teppp" 20 100 1 100 5 10 5
저작권 (c) 2021, Tom Herschberg, Kyle Pifer 및 Eleni Panagiotou
모든 권리 보유.