Communitygithub.com

SMR (요약 데이터 기반 멘델리안 무작위화) C++ 코드베이스 스킬

AI 코딩 에이전트가 SMR (요약 데이터 기반 멘델리안 무작위화) C++ 코드베이스와 효과적으로 작업할 수 있도록 가르칩니다. 아키텍처, 데이터 형식, 빌드 시스템, 통계 방법 및 일반적인 함정을 다룹니다.

SMR (요약 데이터 기반 멘델리안 무작위화) C++ 코드베이스 스킬란 무엇인가요?

이 스킬은 AI 코딩 에이전트가 SMR (Summary-data-based Mendelian Randomization) C++ 코드베이스를 효과적으로 탐색하고 작업할 수 있도록 설계되었습니다. SMR은 유전 연관성 연구에서 멘델리안 무작위화 분석을 수행하는 데 사용되는 생물정보학 도구입니다. 이 스킬은 코드베이스의 아키텍처, 데이터 형식 (.besd, .epi, .tar 등), CMake 빌드 시스템, 통계적 방법론 (예: SMR, HEIDI, GWAS 요약 데이터 통합), 그리고 새로운 기능을 추가하거나 디버깅할 때 흔히 발생하는 함정을 설명합니다. 주로 Cursor, Claude Code, Codex와 같은 AI 코딩 에이전트에서 사용되며, 'SKILL.md' 문서를 참조하여 에이전트에게 프로젝트 구조, 파일 위치, 데이터 흐름, 의존성에 대한 맥락을 제공합니다. 이 스킬은 개발자가 코드베이스를 더 빠르게 이해하고, 올바른 리팩토링 또는 기능 추가를 수행하며, 기존 논리와의 비호환성을 피하도록 도와 생산성을 크게 향상시킵니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add JianYang-Lab/SMR

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

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 및 유전자 기반 분석

일반적인 함정

  1. 데이터 정렬 누락: 복수 데이터셋을 작업할 때 반드시 Sort 함수를 호출하여 인덱스를 재정렬해야 합니다.
  2. 메모리 사용량: 대규모 플랫폼 데이터는 메모리 부족을 유발할 수 있으므로 적절한 버퍼 크기를 선택해야 합니다.
  3. Endianness: 바이너리 파일 I/O에서 시스템의 바이트 순서를 확인하세요.
  4. Eigen 호환성: 최신 Eigen 버전과의 호환성을 유지하세요.

참고 자료

관련 스킬