Deep Neural Networks สำหรับการวิเคราะห์ข้อมูลโดเมนเวลา NMR ดู:
นี่เป็นเวอร์ชันสั้นของ README นี้ สำหรับรายละเอียดเพิ่มเติม ดูคำอธิบายโดยละเอียดเพิ่มเติมด้านล่าง
git clone https://github.com/gogulan-k/FID-Net.git
cd FID-Net
# Following two command only if you don't have NMRPipe installed:
chmod +x install_nmrpipe.sh
install_nmrpipe.sh
mamba env update -f environment.yml
mamba activate fidnet
fidnet run-examples
ขั้นแรก โคลนพื้นที่เก็บข้อมูล:
git clone https://github.com/gogulan-k/FID-Net.git
วิธีที่ง่ายที่สุดในการรับสภาพแวดล้อมการทำงานพร้อมแพ็คเกจทั้งหมดที่ FID-Net ต้องการ ใช้ conda หรือ mamba และไฟล์ environment.yml ที่ให้มา:
cd FID-Net
mamba env update -f environment.yml
และเปิดใช้งานสภาพแวดล้อม:
mamba activate fidnet
การติดตั้งสภาพแวดล้อมจะติดตั้งแพ็คเกจ "fidnet" ด้วย ทำให้เครื่องมือบรรทัดคำสั่ง fidnet พร้อมใช้งาน (ดูด้านล่าง)
น้ำหนักของโครงข่ายประสาทเทียมไม่รวมอยู่ในแพ็คเกจ Python นี้ แต่จะดาวน์โหลดได้ทันทีเมื่อจำเป็น
หากคุณต้องการทริกเกอร์การดาวน์โหลดตุ้มน้ำหนักสำหรับรุ่นต่างๆ ทั้งหมดพร้อมกันด้วยตนเอง ให้พิมพ์:
fidnet download-weights
น้ำหนักจะถูกดาวน์โหลดตามค่าเริ่มต้นไปยังไดเร็กทอรี gitignored:
/data/weights
คุณสามารถเปลี่ยนการตั้งค่าเช่นนี้ได้โดยการเพิ่มไฟล์ .env หรือการตั้งค่าตัวแปรสภาพแวดล้อมโดยระบุ FIDNET_DATA_DIR หรือ FIDNET_WEIGHTS_DIR:
# .env
FIDNET_WEIGHTS_DIR=/path/to/directory/with/weights.hd5
หากต้องการดูประเภทการตั้งค่าดังกล่าวทั้งหมด:
fidnet settings
หากคุณมีสภาพแวดล้อมการทำงาน (และติดตั้ง NMRPipe หากไม่เห็นหัวข้อถัดไป) คุณสามารถทดสอบว่าสิ่งต่าง ๆ ทำงานได้หรือไม่โดยการรันตัวอย่างทั้งหมดในครั้งเดียว:
fidnet run-examples
การดำเนินการนี้จะดาวน์โหลดข้อมูลตัวอย่าง เรียกใช้ฟังก์ชัน FID-Net ต่างๆ ทั้งหมด (ยกเว้นตัวแยก 3D HNCA ซึ่งใช้เวลานานกว่ามากในการรัน) หากคุณเพียงต้องการดาวน์โหลดข้อมูลตัวอย่าง โดยไม่ต้องประมวลผลโดยโมเดล:
fidnet download-example-data
ไม่สามารถติดตั้ง NMRPipe โดยใช้ conda หากคุณยังไม่ได้ติดตั้ง คุณสามารถใช้สคริปต์ที่ให้มาเพื่อติดตั้งได้
chmod +x install_nmrpipe.sh
install_nmrpipe.sh
NMRPipe ให้คำแนะนำเกี่ยวกับวิธีการแก้ไข .cshrc ของคุณ มันจะมีลักษณะดังนี้:
if (-e < REPO_DIR > /bin/NMRPipe/com/nmrInit.linux212_64.com) then
source < REPO_DIR > /bin/NMRPipe/com/nmrInit.linux212_64.com
endif
ทำตามคำแนะนำเหล่านั้น เพื่อให้สามารถค้นหาคำสั่ง NMRPipe ได้
โปรดดู --help ในเครื่องมือบรรทัดคำสั่ง แต่ละคำสั่งจะมีความช่วยเหลือของตัวเอง โดยอธิบายว่าอาร์กิวเมนต์อินพุตคืออะไร
(fidnet) ➜ ~ fidnet --help
Usage: fidnet [OPTIONS] COMMAND [ARGS]...
Deep Neural Networks for Analysing NMR time domain data.
https://github.com/gogulan-k/FID-Net
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to │
│ copy it or customize the installation. │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────╮
│ ca_detect FID-Net 2D CA detect │
│ con_decouple FID-Net 2D CON decoupling │
│ ctcp_decouple FID-Net 2D CTCP decoupling │
│ methyl FID-Net Decouple and improve resolution │
│ of spectra for uniformly 13C-1H labelled │
│ proteins. │
│ hnca FID-Net 3D HNCA decoupling. │
│ reconstruct FID-Net 2D Non-Uniform Sampling (NUS) reconstruction |
| aromatic FID-Net2 for spectra for Aromatic Sidechains │
│ run-examples Run all the examples in one go. │
│ download-example-data Download example data to try out the different │
│ FID-Net functions. │
│ download-weights Download the weights for all FID-Net models. Running │
│ this is not strictly necessary as the weights are │
│ downloaded on the fly for individual models when │
│ they are not present yet. │
│ settings │
│ version Show the version of the nucleotides library. │
╰─────────────────────────────────────────────────────────────────────────────╯
Thanks !
(fidnet) ➜ ~ fidnet ca_detect --help
Usage: fidnet ca_detect [OPTIONS]
FID-Net 2D CA detect
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Help text in the original was the same as for │
│ con_decouple │
│ [default: None] │
│ [required] │
│ --outfile PATH Path to the output file. │
│ [default: fidnet_ca_detect.ft1] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
หมายเหตุ: ตัวแยกส่วนสามารถทำงานได้กับจุดที่ซับซ้อนสูงสุด 512 จุดในมิติ 13C เท่านั้น สเปกตรัมที่มีจุดมากกว่านี้จะถูกตัดทอนที่จุดที่ซับซ้อน 512 จุด
ตัวอย่างสเปกตรัม antiphase, in-phase (AP-IP) ของ T4L99A (test.ft1) มีอยู่ในโฟลเดอร์ตัวอย่าง
อินพุตไปยัง DNN ต้องอยู่ในรูปแบบ nmrPipe หากใช้สเปกโตรมิเตอร์ Bruker ไฟล์ดิบ FID (ser) จะต้องถูกแปลงเป็นรูปแบบ nmrpipe โดยใช้แฟล็ก DMX เพื่อให้การแยก FID-Net ทำงานได้อย่างถูกต้อง
ก่อนที่จะป้อนข้อมูลลงใน FID-Net มิติทางตรงของสเปกตรัมจะแบ่งเป็นระยะ แต่ส่วนจินตภาพจะไม่ถูกลบ จากนั้นสเปกตรัมจะถูกย้าย, อะพอไดซ์, เติมศูนย์, แบ่งเฟส และแปลงฟูริเยร์ในมิติทางอ้อม เพื่อผลลัพธ์ที่ดีที่สุด ควรหลีกเลี่ยงการเติมศูนย์มากเกินไปในมิติทางอ้อม โดยทั่วไปเราจะใช้ 'ZF -auto' ใน nmrPipe ควรย้ายคลื่นความถี่ก่อนเข้าสู่ FID-Net
ข้อมูลเข้าไปยัง DNN ต้องเป็นอินเตอร์เฟอโรแกรม 2 มิติในเฟส (เช่น ประมวลผลในมิติทางอ้อม แต่ไม่ใช่มิติโดยตรงตามที่อธิบายไว้ข้างต้น)
จากนั้นจึงสามารถประมวลผลเอาต์พุตของ DNN ได้ (apodized, zero-filled, การแปลงฟูริเยร์ และส่วนจินตภาพถูกลบ) เพื่อให้ผลลัพธ์สุดท้าย ตัวอย่าง (final_proc.com) มีอยู่ในโฟลเดอร์ตัวอย่าง
(fidnet) ➜ ~ fidnet con_decouple --help
Usage: fidnet con_decouple [OPTIONS]
FID-Net 2D CON decoupling
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 2D in phase CON spectra with │
│ the 13C dimension in the time domain. The 13C │
│ dimension should be phased but the imaginary part │
│ retained and should not be apodized, zero-filled or │
│ Fourier transformed. The 15N dimension should be │
│ apodized, zero-filled, phased (the imaginary part │
│ deleted) then Fourier transformed. The order of the │
│ input dimensions must be 15N, 13C. │
│ [default: None] │
│ [required] │
│ --outfile PATH Path to the output file. │
│ [default: fidnet_con_decoupled.ft1] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
หมายเหตุ: ตัวแยก 2D CON สามารถทำงานได้กับจุดที่ซับซ้อนสูงสุด 512 จุดในมิติ 13C เท่านั้น สเปกตรัมที่มีจุดมากกว่านี้จะถูกตัดทอนที่จุดที่ซับซ้อน 512 จุด
ตัวอย่างสเปกตรัมในเฟสของ ubiquitin (test001.ft1) มีอยู่ในโฟลเดอร์ตัวอย่าง
อินพุตไปยัง DNN ต้องอยู่ในรูปแบบ nmrPipe หากใช้สเปกโตรมิเตอร์ Bruker ไฟล์ดิบ FID (ser) จะต้องถูกแปลงเป็นรูปแบบ nmrpipe โดยใช้แฟล็ก DMX เพื่อให้การแยก FID-Net ทำงานได้อย่างถูกต้อง
ก่อนที่จะป้อนข้อมูลลงใน FID-Net มิติทางตรงของสเปกตรัมจะแบ่งเป็นระยะ แต่ส่วนจินตภาพจะไม่ถูกลบ จากนั้นสเปกตรัมจะถูกย้าย, อะพอไดซ์, เติมศูนย์, แบ่งเฟส และแปลงฟูริเยร์ในมิติทางอ้อม เพื่อผลลัพธ์ที่ดีที่สุด ควรหลีกเลี่ยงการเติมศูนย์มากเกินไปในมิติทางอ้อม โดยทั่วไปเราจะใช้ 'ZF -auto' ใน nmrPipe ควรย้ายคลื่นความถี่ก่อนเข้าสู่ FID-Net
ข้อมูลเข้าไปยัง DNN ต้องเป็นอินเทอร์เฟอโรแกรมในเฟส 2 มิติ (เช่น ประมวลผลในมิติทางอ้อม แต่ไม่ใช่มิติโดยตรงตามที่อธิบายไว้ข้างต้น) หากข้อมูลเป็นแบบ 3 มิติ จะต้องแปลงเป็นชุดของระนาบ 2 มิติโดยใช้ยูทิลิตี้ pipe2xyz หรือที่คล้ายกัน อินพุตตัวอย่างมีให้ในโฟลเดอร์ตัวอย่าง (test001.ft1)
จากนั้นจึงสามารถประมวลผลเอาต์พุตของ DNN ได้ (apodized, zero-filled, การแปลงฟูริเยร์ และส่วนจินตภาพที่ถูกลบ) เพื่อให้ผลลัพธ์สุดท้าย ตัวอย่าง (final_proc.com) มีอยู่ในโฟลเดอร์ตัวอย่าง
(fidnet) ➜ ~ fidnet ctcp_decouple --help
Usage: fidnet ctcp_decouple [OPTIONS]
FID-Net 2D CTCP decoupling
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 2D in-phase Ct-Cp spectra │
│ with the 13Ct dimension in the time domain. The 13Ct │
│ dimension should be phased but the imaginary part │
│ retained and should not be apodized, zero-filled or │
│ Fourier transformed. The 13Cp dimension should be │
│ apodized, zero-filled, phased (the imaginary part │
│ deleted) then Fourier transformed. The order of the │
│ input dimensions must be 13Cp, 13Ct. │
│ [default: None] │
│ [required] │
│ --outfile PATH Path to the output file. │
│ [default: fidnet_ctcp_decoupled.ft1] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
หมายเหตุ: ตัวแยกส่วน 2D 13Ct-13Cp สามารถทำงานได้กับจุดที่ซับซ้อนสูงสุด 512 จุดในมิติ 13C เท่านั้น สเปกตรัมที่มีจุดมากกว่านี้จะถูกตัดทอนที่จุดที่ซับซ้อน 512 จุด
ตัวอย่างสเปกตรัมในเฟสของ ubiquitin (test001.ft1) มีอยู่ในโฟลเดอร์ตัวอย่าง
อินพุตไปยัง DNN ต้องอยู่ในรูปแบบ nmrPipe หากใช้สเปกโตรมิเตอร์ Bruker ไฟล์ดิบ FID (ser) จะต้องถูกแปลงเป็นรูปแบบ nmrpipe โดยใช้แฟล็ก DMX เพื่อให้การแยก FID-Net ทำงานได้อย่างถูกต้อง
ก่อนที่จะป้อนข้อมูลลงใน FID-Net มิติทางตรงของสเปกตรัมจะแบ่งเป็นระยะ แต่ส่วนจินตภาพจะไม่ถูกลบ จากนั้นสเปกตรัมจะถูกย้าย, อะพอไดซ์, เติมศูนย์, แบ่งเฟส และแปลงฟูริเยร์ในมิติทางอ้อม เพื่อผลลัพธ์ที่ดีที่สุด ควรหลีกเลี่ยงการเติมศูนย์มากเกินไปในมิติทางอ้อม โดยทั่วไปเราจะใช้ 'ZF -auto' ใน nmrPipe ควรย้ายคลื่นความถี่ก่อนเข้าสู่ FID-Net
ข้อมูลเข้าไปยัง DNN จะต้องเป็นอินเทอร์เฟอโรแกรมในเฟส 2 มิติ (เช่น ประมวลผลในมิติทางอ้อม แต่ไม่ใช่มิติโดยตรงตามที่อธิบายไว้ข้างต้น) หากข้อมูลเป็นแบบ 3 มิติ จะต้องแปลงเป็นชุดของระนาบ 2 มิติโดยใช้ยูทิลิตี้ pipe2xyz หรือที่คล้ายกัน อินพุตตัวอย่างมีให้ในโฟลเดอร์ตัวอย่าง (test001.ft1)
จากนั้นจึงสามารถประมวลผลเอาต์พุตของ DNN ได้ (apodized, zero-filled, การแปลงฟูริเยร์ และส่วนจินตภาพที่ถูกลบ) เพื่อให้ผลลัพธ์สุดท้าย ตัวอย่าง (final_proc.com) มีอยู่ในโฟลเดอร์ตัวอย่าง
(fidnet) ➜ ~ fidnet reconstruct --help
Usage: fidnet reconstruct [OPTIONS]
FID-Net 2D Non-Uniform Sampling (NUS) reconstruction
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH this is the measured 2D │
│ non-uniformly sampled spectra. │
│ It should be processed in the │
│ direct dimension, phased and │
│ transposed. The indirect │
│ dimension should not be │
│ processed in any way. The │
│ unsampled points in the │
│ indirect dimension should not │
│ be replaced with zeros (for │
│ example by using the nusExpand │
│ tool) this is taken care of by │
│ the program itself. The │
│ maximum number of complex │
│ points in the indirect │
│ dimension that can be included │
│ in the network is 256. │
│ Thespectrum will be truncated │
│ after this. │
│ [default: None] │
│ [required] │
│ * --sampling-schedule PATH this is the sampling schedule │
│ used. This is simply a list │
│ ofintegers (oneinteger per │
│ line) giving the complex │
│ points that are measured in │
│ the NUS experiment. │
│ [default: None] │
│ [required] │
│ * --max-points INTEGER this is the number of complex │
│ points in the final output. │
│ I.e.the sparsity is given by │
│ the number of values in the │
│ samplingschedule divided by │
│ this value. │
│ [default: None] │
│ [required] │
│ --outfile PATH name of the output file │
│ [default: │
│ fidnet_nus_reconstructed.ft1] │
│ --f1180 --no-f1180 f1180 flag (y/n) only │
│ important for matplotlib │
│ output and │
│ fidnet_reconstructed.ft2 │
│ [default: f1180] │
│ --shift --no-shift frequency shift flag (y/n) │
│ only important for matplotlib │
│ output and std.ft2 │
│ [default: no-shift] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
รหัสนี้ใช้สำหรับสร้างสเปกตรัม 2D NUS NMR ใหม่โดยใช้สถาปัตยกรรม FID-Net หากต้องการใช้รหัส จะต้องดาวน์โหลดไฟล์ที่มีน้ำหนักสำหรับเครือข่ายที่ได้รับการฝึกอบรม
ผลลัพธ์ของเครือข่ายคือไฟล์ nmrPipe ที่มีมิติทางอ้อมที่สร้างขึ้นใหม่ในโดเมนเวลา ขณะนี้สามารถประมวลผลมิติทางอ้อมได้ (apodized, zero-filled, Phased และ Fourier Transformed) เพื่อให้ได้สเปกตรัมที่สร้างขึ้นใหม่ขั้นสุดท้าย การวิเคราะห์ยังส่งออก std.ft2 อีกด้วย ซึ่งจะช่วยวัดความมั่นใจในผลลัพธ์ นอกจากนี้ยังอยู่ในรูปแบบ nmrPipe และได้รับการประมวลผลล่วงหน้าและการแปลงฟูเรียร์ตามพารามิเตอร์เริ่มต้น หากสิ่งเหล่านี้ไม่ถูกต้อง สามารถใช้การแปลงฮิลแบร์ตและการแปลงฟูริเยร์ผกผันเพื่อนำสิ่งนี้กลับเข้าไปในโดเมนเวลาก่อนที่จะประมวลผลใหม่
มีไฟล์ตัวอย่างสำหรับ HDAC อยู่ในโฟลเดอร์ตัวอย่าง พร้อมด้วยกำหนดการสุ่มตัวอย่าง
(fidnet) ➜ ~ fidnet hnca --help
Usage: fidnet hnca [OPTIONS]
FID-Net 3D HNCA decoupling.
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 3D HNCA orHN(CO)CA spectra │
│ with the 13C dimension in the time domain.The 15N and │
│ 1H dimensions should be phased and Fourier │
│ transformed.The order of the input dimensions must be │
│ 1H,15N, 13C. │
│ [default: None] │
│ [required] │
│ --outfile PATH out file [default: fidnet_hnca_decoupled.ft2] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
รหัสนี้ใช้สำหรับการแยกสเปกตรัม 3D HNCA และ HN(COCA) โดยใช้สถาปัตยกรรม FID-Net หมายเหตุ: ตัวแยก 3D HNCA สามารถทำงานได้กับจุดที่ซับซ้อนสูงสุด 256 จุดในมิติ 13C เท่านั้น สเปกตรัมที่มีจุดมากกว่านี้จะถูกตัดทอนที่จุดที่ซับซ้อน 256 จุด
(fidnet) ➜ ~ fidnet methyl --help
Usage: fidnet methyl [OPTIONS]
FID-Net Decouple and improve resolution of spectra for uniformly 13C-1H labelled
proteins.
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 2D 13C-1Hspectra │
│ (time domain data) fora uniformly labelled │
│ 13C-1H labelled protein.If using literally │
│ ' example ' ,an example file is used │
│ [default: None] │
│ [required] │
│ --outdir PATH folder where resultswill be saved. │
│ [default: fidnet_out] │
│ --outfile PATH filename for finalprocessed spectrum. │
│ [default: fidnet_methyl_CH.ft2] │
│ --min-1h FLOAT minimum 1H ppm [default: -1.0] │
│ --max-1h FLOAT maximum 1H ppm [default: 2.5] │
│ --p0 FLOAT 1H phase correction [default: 0.0] │
│ --alt --no-alt NMRPipe: dimension is left/right swapped │
│ [default: no-alt] │
│ --neg --no-neg NMRPipe: dimension is reversed │
│ [default: no-neg] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
รหัสนี้มีไว้เพื่อปรับปรุงความละเอียดของสเปกตรัมโปรตีนจากโปรตีน 13C-1H ที่สม่ำเสมอ รหัสต้องใช้ DNN สองตัวตามสถาปัตยกรรม FID-Net เครือข่ายแรกจะลบการเชื่อมต่อแบบสเกลาร์ 13C-13C ออกหนึ่งตัว และเพิ่มความคมชัดของพีคในมิติ 13C เครือข่ายที่สองทำให้จุดสูงสุดคมชัดขึ้นในมิติ 1H
โฟลเดอร์ตัวอย่างประกอบด้วยข้อมูลสำหรับ 13C-1H ที่มีป้ายกำกับ HDAC8 สม่ำเสมอ
(fidnet) ➜ ~ fidnet aromatic --help
Usage: fidnet aromatic [OPTIONS]
FID-Net2 ransforms NMR spectra recorded on simple uniformly 13C labelled samples to
yield high-quality 1H-13C correlation spectra of the aromatic side chains.
Spectra should be recorded with the dedicated pulse programme
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This should be a pseudo-3D │
│ NMR pipe file that has been recorded using │
│ the dedicated pulse sequence (see folder) │
│ │
│ [default: None] │
│ [required] │
│ --outfile PATH filename for final processed spectrum. │
│ [default: aromatic_output.ft2] │
│ --UseGPU BOOL True to use GPU. │
| [default: True] |
│ --GPUIDX INT GPU number to use │
| [default: None] |
│ --offset1h FLOAT Set the offset for the sine-squared window |
| function in the 1H dimension. Default is |
| 0.40, which was used during training │
│ [default: 0.4] |
│ --offset13c FLOAT Set the offset for the sine-squared window |
| function in the 1H dimension. Default is |
| 0.40, which was used during training │
│ [default: 0.4] |
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
คุณสามารถติดตั้ง hooks ที่คอมมิตล่วงหน้าซึ่งจะตรวจสอบบางอย่างก่อนที่จะคอมมิตโค้ดของคุณ:
pip install -e ".[dev]"
pre-commit install