Ontology for Biomedical Investigations (OBI) ช่วยให้คุณสื่อสารอย่างชัดเจนเกี่ยวกับการสืบสวนทางวิทยาศาสตร์ด้วยการกำหนดคำศัพท์มากกว่า 2,500 คำสำหรับการทดสอบ อุปกรณ์ วัตถุประสงค์ และอื่นๆ
นี่คือพื้นที่เก็บข้อมูลของนักพัฒนาซอฟต์แวร์สำหรับ OBI คุณสามารถดาวน์โหลดผลิตภัณฑ์ OBI ล่าสุดได้ที่นี่ และเรียนรู้เพิ่มเติมเกี่ยวกับ OBI ผ่านเอกสารประกอบของเรา
คำศัพท์ ontology ของเรามีสามกลุ่ม ขึ้นอยู่กับประเภทของคำที่คุณต้องการแก้ไขหรือเพิ่ม คุณต้องไปตามเส้นทางที่แตกต่างกัน:
ข้อกำหนดภายนอก (จากออนโทโลจีอื่น ๆ ): เราใช้ OntoFox สำหรับการนำเข้า แก้ไขไฟล์ src/ontology/OntoFox_inputs/
ที่เกี่ยวข้อง
ข้อกำหนดเทมเพลต: เราใช้เทมเพลต ROBOT เพื่อแปลงสเปรดชีตเป็น OWL แก้ไขไฟล์ src/ontology/templates/
ที่เกี่ยวข้อง:
obsolete.tsv
สำหรับคำที่ล้าสมัยassays.tsv
สำหรับการตรวจทั่วไปepitope-assays.tsv
สำหรับการตรวจวิเคราะห์ epitope ภูมิคุ้มกันโดยเฉพาะvalue-specifications.tsv
specimens.tsv
สำหรับตัวอย่างmedical-history.tsv
สำหรับการจำแนกประวัติทางการแพทย์และเกณฑ์การคัดเลือกที่เกี่ยวข้องstudy-designs.tsv
สำหรับการออกแบบการศึกษาdata-sets.tsv
สำหรับชุดข้อมูล ข้อกำหนดอื่น ๆ : แก้ไข src/ontology/obi-edit.owl
ใน Protege
ดูรายการไฟล์ทั้งหมด คำแนะนำในการสร้าง และคำแนะนำเกี่ยวกับการใช้ Git และ GitHub สำหรับ OBI ด้านล่าง
หากคุณต้องการนำเข้าคำศัพท์จาก ontology ที่ OBI ไม่มีไฟล์นำเข้า OntoFox ในปัจจุบัน ( src/ontology/OntoFox_inputs/
) ให้ทำตามขั้นตอนเหล่านี้:
catalog-v001.xml
เพื่อแสดงรายการไฟล์อิมพอร์ตใหม่เหมือนกับรายการไฟล์อิมพอร์ตที่มีอยู่obi-edit.owl
src/ontology/OntoFox_outputs/
เช่น เพื่อสร้างเอาต์พุตปลอมสำหรับการนำเข้า foo.owl: touch src/ontology/OntoFox_outputs/foo_imports.owl
make imports
make obi.owl
หากคุณต้องการแก้ไขเทมเพลตใน Excel แทนที่จะคัดลอกและวางเทมเพลต เราขอให้คุณปฏิบัติตามขั้นตอนการทำงานนี้เพื่อรักษาคำพูดไว้ การกลับไปกลับมาด้วย Excel อาจทำให้เกิดการเปลี่ยนแปลงเครื่องหมายคำพูดคู่ภายในเทมเพลตโดยไม่ได้ตั้งใจ
ขั้นแรก ให้ติดตั้งข้อกำหนดของ Python:
python3 -m pip install -r requirements.txt
จากนั้นทำแผ่นงาน Excel ในไดเร็กทอรี OBI git ในเครื่องของคุณ ให้รันคำสั่งต่อไปนี้เพื่อสร้างไฟล์ชื่อ obi.xlsx
:
make obi.xlsx
จากนั้น เปิด obi.xlsx
ใน Excel (หรือโปรแกรมแก้ไขอะไรก็ได้ที่คุณต้องการ) สเปรดชีตนี้มีแท็บสำหรับเทมเพลต OBI แต่ละรายการ (เช่น "study-design", "assays" ฯลฯ) ค้นหาแท็บที่ตรงกับเทมเพลตที่คุณต้องการแก้ไข ทำการเปลี่ยนแปลง และบันทึกสเปรดชีต Excel ในตำแหน่งเดียวกัน ( obi.xlsx
) สุดท้าย ให้เรียกใช้สิ่งต่อไปนี้เพื่ออัปเดตเวอร์ชัน TSV ของเทมเพลต:
make update-tsv
การดำเนินการนี้จะแปลงแท็บใน obi.xlsx
กลับเป็น TSV และเขียนทับ TSV ที่มีอยู่ในไดเร็กทอรี src/ontology/templates/
ด้วยการเปลี่ยนแปลงของคุณ ตรวจสอบการเปลี่ยนแปลงของคุณ ( git diff
) และทำการดึงคำขอของคุณ
หากต้องการค้นหาว่าคำนั้นอยู่ที่ใด คุณสามารถใช้ src/scripts/locate.py
จากนั้น คุณสามารถเรียกใช้สคริปต์เพื่อค้นหาคำศัพท์ตาม ID หรือป้ายกำกับโดยส่งเป็นรายการที่คั่นด้วยช่องว่าง เช่น
src/scripts/locate.py OBI:0000070 CHMO:0000087 GO:0000785
ป้ายกำกับควรอยู่ในเครื่องหมายคำพูดคู่:
src/scripts/locate.py "assay" "fluorescence microscopy" "chromatin"
ที่เก็บ OBI มีสคริปต์ Python บางตัวเพื่อช่วยให้นักพัฒนาแก้ไขทั้งเทมเพลต obi-edit.owl
และ OBI ได้อย่างมีประสิทธิภาพ สคริปต์เหล่านี้ต้องใช้ Python 3
สคริปต์ยังต้องการให้คุณสร้างฐานข้อมูลสองฐานข้อมูลก่อน (หนึ่งฐานข้อมูลจากการแก้ไข OBI และอีกหนึ่งฐานข้อมูลจาก OBI เวอร์ชันที่รวมเข้าด้วยกัน):
make obi-dbs
เนื่องจากมีการใช้ป้ายกำกับในเทมเพลต การค้นหาและแทนที่การใช้คำทั้งหมดด้วยตนเองอาจเป็นเรื่องยากและน่าเบื่อ แต่คุณสามารถใช้ src/scripts/relabel.py
เพื่ออัปเดตป้ายกำกับของคำและการใช้งานโดยอัตโนมัติได้
คุณสามารถดำเนินการนี้ได้โดยส่งคำที่คุณต้องการอัปเดตและป้ายกำกับใหม่:
src/scripts/relabel.py CHMO:0000087 "microscopy with fluorescence"
คุณยังสามารถส่งป้ายกำกับเก่าเป็นอาร์กิวเมนต์แรกได้ ตราบใดที่ป้ายกำกับนั้นอยู่ในเครื่องหมายคำพูดคู่:
src/scripts/relabel.py "fluorescence microscopy" "microscopy with fluorescence"
ตรวจสอบให้แน่ใจว่าได้คอมมิตไฟล์ที่เปลี่ยนแปลงทั้งหมดเพื่อให้แน่ใจว่าการใช้งานทั้งหมดได้รับการอัปเดต
README.md
เอกสารภาพรวมนี้obi.owl
เวอร์ชันล่าสุดของ OBIMakefile
สำหรับการสร้าง OBIviews/
มุมมองเฉพาะด้านต่างๆ ของ OBIobi.obo
OBI รุ่นล่าสุดในรูปแบบไฟล์ .obo
obi_core.owl
เวอร์ชันล่าสุดของ OBI Core: ~100 คำศัพท์สำคัญsrc/
ontology/
ไฟล์ต้นฉบับสำหรับ OBIobi-edit.owl
เป็นไฟล์ OBI OWL หลักcore.txt
รายการคำศัพท์ OBI Coreexternal-byhand.owl
การนำเข้าแบบกำหนดเองบางส่วนจากออนโทโลยีอื่น ๆcatalog-v001.xml
รายการดั้งเดิมของการแทนที่การนำเข้า OWLtemplates/
ไฟล์เทมเพลต ROBOT สำหรับสาขาต่างๆ ของ OBImodules/
ผลลัพธ์ของเทมเพลต ROBOTOntoFox_inputs/
ไฟล์คอนฟิกูเรชัน OntoFox สำหรับการนำเข้าจากออนโทโลจีอื่นๆOntoFox_outputs/
ไฟล์ผลลัพธ์ OntoFoxsparql/
SPARQL สำหรับการสร้างและตรวจสอบ OBIscripts/
สคริปต์ยูทิลิตี้views/
การกำหนดค่าสำหรับมุมมอง Makefile
มีสคริปต์สำหรับการสร้าง OBI บน macOS หรือ Linux คุณควรจะสามารถเรียกใช้ make
หรืองานใดงานหนึ่งด้านล่างนี้ได้ บน Windows ให้พิจารณาใช้เครื่องเสมือน Linux บางประเภท เช่น Docker หรือ Vagrant ผลลัพธ์ส่วนใหญ่จะอยู่ในไดเร็กทอรี build/
หากคุณมีปัญหาโปรดติดต่อเจมส์
make test
ผสานและรันการทดสอบ SPARQL (ซึ่งทำงานทุกครั้งที่กดไปที่ GitHub)make sort
และแก้ไขเครื่องหมายคำพูดและการสิ้นสุดบรรทัดmake imports
เข้า การนำเข้า OntoFoxmake modules
อัปเดตเทมเพลต ROBOTmake obi.owl
สร้างไฟล์ release; การให้เหตุผลอาจใช้เวลาประมาณ 10 นาทีmake views
อัปเดตเทมเพลต ROBOTmake all
เตรียมพร้อมสำหรับการเปิดตัว รัน imports
, modules
, test
, obi.owl
และ views
make build/obi_merged.owl
รวม obi-edit.owl
ให้เป็นไฟล์เดียว ไม่ต้องให้เหตุผลmake clean
ลบไฟล์ชั่วคราวเราใช้ git และ GitHub เพื่อพัฒนา OBI มีเอกสารที่ดีมากมายเกี่ยวกับทั้งสอง:
ก่อนที่คุณจะเริ่มพัฒนาด้วย OBI คุณจะต้องตั้งค่าเริ่มต้นบางอย่าง:
ลงทะเบียนสำหรับบัญชี GitHub
ติดตั้งเครื่องมือบรรทัดคำสั่ง Git, แอป GitHub Desktop หรือไคลเอนต์ Git อื่นที่คุณเลือก
กำหนดค่า Git ด้วยชื่อและอีเมลของคุณ
โคลนที่เก็บ OBI
หากคุณใช้ macOS และ Excel ให้ตั้งค่าการเชื่อมต่อล่วงหน้า (ดูรายละเอียดด้านล่าง):
ln -s ../../src/scripts/check-line-endings.sh .git/hooks/pre-commit
การเปลี่ยนแปลงควรทำในส่วนที่สามารถจัดการได้ เช่น เพิ่มคำศัพท์หนึ่งคำหรือแก้ไขคำศัพท์ที่เกี่ยวข้องสองสามคำ การเปลี่ยนแปลงส่วนใหญ่ควรสอดคล้องกับปัญหาเดียวในตัวติดตาม
เริ่มจากสำเนาในเครื่องของสาขา master
ของที่เก็บ OBI ตรวจสอบให้แน่ใจว่าสำเนาในเครื่องของคุณเป็นข้อมูลล่าสุด ทำการเปลี่ยนแปลงในสาขาใหม่ โปรดใช้เอกสารการจอง ID ระยะเวลาของ OBI เพื่อจัดการ ID ใหม่
เมื่อคุณพร้อมแล้ว ให้ส่งสาขาของคุณไปที่พื้นที่เก็บข้อมูล OBI และทำการ Pull Request (PR) บนเว็บไซต์ GitHub PR ของคุณคือการร้องขอให้รวมสาขาของคุณกลับเข้าสู่ master
PR ของคุณจะได้รับการทดสอบ หารือ ปรับเปลี่ยนหากจำเป็น จากนั้นจึงรวมเข้าด้วยกัน จากนั้นวงจรสามารถเกิดขึ้นซ้ำได้สำหรับการเปลี่ยนแปลงครั้งต่อไปที่คุณหรือนักพัฒนารายอื่นจะทำ
นี่คือขั้นตอนด้วยคำสั่ง CLI เมื่อใช้แอปพลิเคชัน GUI ขั้นตอนจะเหมือนกัน
git fetch
ตรวจสอบให้แน่ใจว่าสำเนาในเครื่องของคุณเป็นข้อมูลล่าสุดgit checkout master
เริ่มต้นที่สาขา master
git checkout -b your-branch-name
สร้างสาขาใหม่ตั้งชื่อตามการเปลี่ยนแปลงที่คุณกำลังทำmake sort
ลำดับและทำให้ตารางเป็นมาตรฐานเพื่อความแตกต่างที่สะอาดยิ่งขึ้นgit status
และ git diff
ตรวจสอบการเปลี่ยนแปลงของคุณgit add --update src/
เพิ่มไฟล์ที่อัพเดตทั้งหมดในไดเร็กทอรี src/
เพื่อจัดเตรียมgit commit --message "Description, issue #123"
คอมมิตการเปลี่ยนแปลงแบบเป็นฉากพร้อมข้อความ เป็นการดีที่จะรวมหมายเลขปัญหาไว้ด้วยgit push --set-upstream origin your-branch-name
ผลักดันความมุ่งมั่นของคุณไปที่ GitHubคำขอดึงของคุณจะถูกทดสอบโดยอัตโนมัติ หากมีปัญหาเราจะอัปเดตสาขาของคุณ เมื่อการทดสอบทั้งหมดผ่านไป PR ของคุณจะได้รับการตรวจสอบโดยนักพัฒนา OBI เมื่อการตรวจสอบเสร็จสิ้น นักพัฒนา OBI อาวุโสจะรวม PR ล้างแล้วทำซ้ำ!
วิธีที่ง่ายที่สุดในการแก้ไขไฟล์ src/ontology/template/
คือการใช้ Excel น่าเสียดายที่ Excel มีกฎแปลกๆ บางประการในการเสนอราคาเซลล์ และบน macOS จะใช้การลงท้ายบรรทัดแบบเก่า ทั้งสองสิ่งนี้ทำให้ความแตกต่างของเรายุ่งและสับสน
สำหรับความแตกต่างที่ชัดเจน เรายังต้องการไม่ให้เทมเพลตเรียงลำดับตาม ID คำสั่ง make sort
จะแก้ไขการสิ้นสุดบรรทัดและการเรียงลำดับโดยการรันเทมเพลตทั้งหมดผ่านสคริปต์ Python