© ลิขสิทธิ์ 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
คือความยาวของด้านหนึ่งของกล่องธาตุหากระบบใช้เงื่อนไขขอบเขตแบบคาบ หากระบบไม่ใช้เงื่อนไขขอบเขตเป็นระยะ ให้ป้อน 0 สำหรับ BOX_DIM
- โปรดทราบว่ารองรับเฉพาะไฟล์ .teppp เท่านั้น ไฟล์ข้อมูลอื่นๆ ทั้งหมดจะต้องถูกแปลงเป็น .teppp โดยผู้ใช้หรือโดยใช้ยูทิลิตี้ตัวแปลง เฉพาะไฟล์ .read_data (ที่มีพิกัดทั้งหมดในรูปแบบที่ไม่ได้ห่อ) เท่านั้นที่ได้รับการสนับสนุนโดยยูทิลิตี้ตัวแปลงในขณะนี้ เมื่อรันคำสั่งตัวแปลงแล้ว ไฟล์ที่มีข้อมูลที่แปลงแล้วจะอยู่ในไดเร็กทอรี
TEPPP/converted
เพื่อใช้งานต่อไป
เมื่อสร้างไฟล์ .teppp ด้วยพิกัดที่ต้องการแล้ว คำสั่งซอฟต์แวร์ใดๆ ก็สามารถใช้ร่วมกับไฟล์เพื่อสร้างผลลัพธ์ได้ คำสั่ง base
ที่มีอยู่ในปัจจุบันคือ:
โจนส์ | คำนวณพหุนามโจนส์ของแต่ละเชนในระบบ
lk | คำนวณหมายเลขการเชื่อมโยงระหว่างแต่ละคู่ของ chain ในระบบ Linking Numbers
wr | คำนวณ 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
ที่มีอยู่ในปัจจุบันคือ:
jones_scan | คำนวณพหุนามโจนส์ตามแต่ละห่วงโซ่ตามความยาวการสแกนที่กำหนด
lk_scan | คำนวณหมายเลขการเชื่อมโยงตามแต่ละคู่ของโซ่ตามความยาวการสแกนที่กำหนด
wr_scan | คำนวณ Writhe ในแต่ละห่วงโซ่ตามความยาวการสแกนที่กำหนด
การเรียกคำสั่ง scan
ต้องใช้พารามิเตอร์ 4 ตัว ซึ่งจะต้องระบุในบรรทัดคำสั่งตามลำดับที่แสดงด้านล่าง:
ชื่อไฟล์ (รวมถึงเส้นทาง) ของไฟล์ข้อมูลที่มีพิกัดของระบบที่จะวิเคราะห์ ตามด้วย CHAIN_LENGTH NUM_CHAINS ARCHITECTURE (NUM_PROJECTIONS)
ความยาวของช่วงเวลาเริ่มต้นที่จะสแกน
ความยาวของช่วงเวลาสุดท้ายที่จะสแกน
จำนวนที่จะเพิ่มช่วงเวลาหลังจากการสแกนเสร็จสิ้น
BOX_DIM (ไม่จำเป็น)
คำสั่ง mpi
เป็นเวอร์ชันคู่ขนานของคำสั่ง base
, periodic
และ scan
ที่กล่าวถึงข้างต้น พวกเขาใช้ประโยชน์จาก MPI เพื่อแบ่งภาระงานระหว่างโปรเซสเซอร์ตามจำนวนที่กำหนด แทนที่จะทำงานตามลำดับ คำสั่ง mpi
ที่มีอยู่ในปัจจุบันคือ:
jones_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
แทนที่จะรันคำสั่งเอง
วิธีคำนวณอินทิกรัลที่เชื่อมโยงเกาส์ระหว่างเชนแต่ละคู่ในระบบที่พบใน "../data/systemA.teppp" โดยมีเชนเชิงเส้น 100 เส้นแต่ละเส้นยาว 20 เส้นในกล่องลูกบาศก์เป็นระยะความยาว 13.35315:
./lk "../data/systemA.teppp" 20 100 1 13.35315
ใช้ MPI เพื่อแบ่งงานระหว่าง 4 กระบวนการที่แตกต่างกัน:
mpirun -np 4 ./lk_mpi "../data/systemA.teppp" 20 100 1 13.35315
วิธีคำนวณการหมุนตามระยะของแต่ละเชนในระบบที่พบใน "../data/systemA.teppp" โดยมี 100 เชน แต่ละเชนยาว 20 ในกล่องลูกบาศก์เป็นระยะความยาว 13.35315:
./ periodic_wr "../data/systemA.teppp" 20 100 1 13.35315
ในการคำนวณพหุนามโจนส์ของแต่ละเชนในระบบที่พบใน "../data/systemA.teppp" โดยมี 100 เชนแต่ละอันยาว 20 ในกล่องลูกบาศก์เป็นระยะความยาว 13.35315:
./jones "../data/systemA.teppp" 20 100 1 100 13.35315
เพื่อสแกนตามแต่ละเชนและคำนวณพหุนามโจนส์ของแต่ละเชนย่อยในระบบที่พบใน "../data/systemA.teppp" โดยมี 100 เชนแต่ละอันยาว 20 เริ่มต้นด้วยความยาวการสแกน 5 จนถึงความยาวการสแกน 10 ด้วยขั้นตอนที่ 5 : :
./jones_scan "../data/systemC.teppp" 20 100 1 100 5 10 5
ลิขสิทธิ์ (c) 2021, Tom Herschberg, Kyle Pifer และ Eleni Panagiotou
สงวนลิขสิทธิ์.