SMR (요약 데이터 기반 멘델리안 무작위화) C++ 코드베이스 스킬은(는) 무엇을 하나요?
AI 코딩 에이전트가 SMR (요약 데이터 기반 멘델리안 무작위화) C++ 코드베이스와 효과적으로 작업할 수 있도록 가르칩니다. 아키텍처, 데이터 형식, 빌드 시스템, 통계 방법 및 일반적인 함정을 다룹니다.
개요
이 문서는 AI 코딩 에이전트가 JianYang-Lab/SMR 저장소에서 작업할 때 참조해야 할 가이드입니다. SMR은 유전 연관성 데이터를 통합하고 멘델리안 무작위화 분석을 수행하는 데 널리 사용되는 도구입니다. 코드베이스는 C++로 작성되었으며, 주로 CMake를 통해 빌드됩니다.
주요 아키텍처
- 주요 실행 파일:
smr및smr-plot - 코어 모듈:
src/ReadBinary.cpp: 바이너리 플랫폼 데이터 (.besd 등) 읽기src/SMR.cpp: SMR 및 HEIDI 분석 수행src/EPI.cpp: 에피스토시스 (epistasis) 분석src/Data.cpp: 데이터 구조 및 I/O 처리src/Sort.cpp: 데이터 정렬 및 인덱싱src/Output.cpp: 결과 출력
- 헤더 파일:
src/디렉토리 내에*.h파일로 분산
빌드 시스템
- CMake 기반:
CMakeLists.txt가 루트 디렉토리에 있음 - 의존성: Eigen3, zlib 및 기타 표준 라이브러리
- 빌드 명령:
mkdir build && cd build cmake .. make
데이터 형식
- BESD: 플랫폼 데이터를 위한 바이너리 형식.
src/ReadBinary.cpp에서 처리 - EPI: 에피스토시스 데이터 형식.
src/EPI.cpp에서 처리 - TAR: 압축된 출력 형식 지원 (
src/ReadBinary.cpp에 TAR 파서 포함) - MA, MQ, MG: 요약 데이터 형식 변형
주요 통계 방법
- SMR (Summary-data-based Mendelian Randomization)
- HEIDI (Heterogeneity in Instruments) 테스트
- GWAS 요약 데이터 통합
- 다중 SNP 및 유전자 기반 분석
일반적인 함정
- 데이터 정렬 누락: 복수 데이터셋을 작업할 때 반드시
Sort함수를 호출하여 인덱스를 재정렬해야 합니다. - 메모리 사용량: 대규모 플랫폼 데이터는 메모리 부족을 유발할 수 있으므로 적절한 버퍼 크기를 선택해야 합니다.
- Endianness: 바이너리 파일 I/O에서 시스템의 바이트 순서를 확인하세요.
- Eigen 호환성: 최신 Eigen 버전과의 호환성을 유지하세요.