사용자 가이드
이 가이드는 Modan2를 사용한 기하학적 형태계측 분석에 대한 종합적인 지침을 제공합니다.
시작하기
Modan2 실행하기
Windows: 시작 메뉴 → Modan2
macOS: 응용 프로그램 → Modan2.app
Linux: AppImage 실행
각 패키지를 받는 방법은 설치 을 참조하세요.
메인 창 개요
Modan2 메인 창은 여러 주요 구성 요소로 이루어져 있습니다:
메뉴 바: 파일(File), 편집(Edit), 보기(View), 데이터(Data), 도움말(Help)
툴바: 일반 작업에 대한 빠른 접근
데이터셋 트리 뷰 (왼쪽): 데이터셋의 계층적 뷰
객체 테이블 (중앙): 선택한 데이터셋의 객체 목록. LM Count(랜드마크 개수)와 Curve(곡선) 열이 함께 표시됩니다
객체 미리보기 (오른쪽): 선택한 객체의 시각적 미리보기 (
Ctrl+P로 켜고 끄기)상태 바 (하단): 정보 및 진행 표시기
데이터셋 다루기
새 데이터셋 만들기
“새 데이터셋” 버튼을 클릭하거나
Ctrl+N을 누르세요데이터셋 정보를 입력하세요:
이름: 데이터셋의 설명적인 이름
차원: 2D 또는 3D
설명: 선택적 상세 설명
상위 데이터셋: 선택사항 - 계층 구조 생성
확인 을 클릭하여 데이터셋을 생성하세요
참고
계층적 데이터셋을 사용하여 관련 연구를 구성할 수 있습니다. 예를 들어:
Study_2024 (상위)
Subspecies_A (하위)
Subspecies_B (하위)
데이터셋 대화상자는 탭으로 구성되어 있습니다. 위의 기본 정보 외에 다음 항목도 담고 있습니다:
와이어프레임 / 베이스라인 / 폴리곤: 표시할 때 랜드마크를 어떻게 연결할지 정의합니다.
랜드마크 이름: 각 랜드마크 인덱스에 이름/약어와 설명을 지정하는 표입니다 (랜드마크 이름 참조).
곡선 구성(curve scheme): 데이터셋의 준랜드마크 곡선 목록으로, 각 곡선은 이름과 점 개수
N을 가집니다 (준랜드마크 곡선 참조).
이 구성들은 데이터셋의 모든 객체가 공유하므로, 랜드마크 이름이나 곡선을 한 번 정의하면 모든 표본에 적용됩니다.
데이터셋 변수
변수는 분석의 기준이 되는 표본별 데이터를 담습니다 — CVA와 MANOVA에 쓰이는 그룹 구분, 그리고 형상과 함께 보관하고 싶은 측정값들입니다.
변수는 데이터셋 수준에서 정의하는 이름 일 뿐입니다. Modan2는 타입이나 허용 값 목록을 선언하라고 요구하지 않습니다. 각 객체는 입력한 텍스트를 그대로 저장하고, 분석을 실행할 때 어떤 변수로 그룹을 나눌지 고르게 됩니다.
변수 추가:
데이터셋 대화상자를 열고 Variables 탭으로 이동합니다
“Add Variable” 을 클릭하고 이름을 입력합니다(예: “Species”, “Sex”, “Age”)
목록에서 이름을 더블클릭하면 이름을 바꿀 수 있고, 선택한 뒤 “Delete Variable” 을 클릭하면 삭제됩니다
메인 창에도 “Add variable” 동작이 있습니다. 이름을 물은 뒤 선택한 데이터셋에 변수를 추가합니다.
객체 변수 설정:
객체를 엽니다(Ctrl+Shift+O 또는 더블클릭). 데이터셋의 각 변수가 객체 대화상자에 이름표가 붙은 별도 입력칸으로 나타납니다. 여기에 값을 입력하고 저장하세요. 값은 자유 텍스트이므로 범주(“male”)든 숫자(“2.5”)든 똑같이 담을 수 있습니다.
예제 워크플로우:
Dataset: Bird Wings
Variables: Species, Sex, Age
Objects:
- wing_001.jpg → Species: sparrow, Sex: male, Age: 2.5
- wing_002.jpg → Species: sparrow, Sex: female, Age: 1.8
Analysis: group CVA by Species, MANOVA by Sex
데이터셋 편집과 정리
데이터셋 이름 변경: 데이터셋 대화상자를 열어 이름을 바꾸고 OK를 클릭합니다.
상위 데이터셋 변경: 트리에서 다른 데이터셋 위로 끌어다 놓으면 해당 데이터셋의 하위가 됩니다.
객체를 다른 데이터셋으로 이동: 객체 테이블에서 객체를 선택한 뒤 트리의 대상 데이터셋 위로 끌어다 놓습니다.
경고
데이터셋을 삭제하면 그 아래의 모든 것이 삭제됩니다 — 모든 객체, 모든 분석, 그리고 해당 객체들이 가지고 있던 이미지와 3D 모델 파일까지 디스크에서 제거됩니다. 되돌릴 수 없습니다.
데이터 가져오기
2D 이미지 가져오기
지원 형식: JPG, PNG, BMP, TIFF, GIF
방법 1: 드래그 앤 드롭
트리 뷰에서 데이터셋을 선택하세요
파일 관리자에서 이미지 파일을 드래그하세요
데이터셋이나 객체 테이블에 드롭하세요
이미지는 파일 이름을 객체 이름으로 자동 가져오기됩니다
방법 2: 가져오기 대화상자
데이터셋 선택 → 파일 → 객체 가져오기
“이미지 추가” 를 클릭하세요
하나 이상의 이미지 파일을 선택하세요
목록을 검토하세요
“가져오기” 를 클릭하세요
팁
일관된 이름 사용: specimen_001.jpg, specimen_002.jpg 등으로 쉬운 정렬을 위해
3D 모델 가져오기
지원 형식: OBJ, PLY, STL
방법 1: 드래그 앤 드롭
3D 데이터셋을 선택하세요
3D 모델 파일을 애플리케이션으로 드래그하세요
모델은 자동 스케일링과 함께 가져오기됩니다
방법 2: 가져오기 대화상자
파일 → 객체 가져오기 → 3D 모델 추가
파일 선택
검토 및 가져오기
3D 모델 요구사항:
메시는 다양체여야 합니다 (닫힌 표면)
적절한 폴리곤 수 (<100k 면 권장)
최상의 시각화를 위해 원점에 중심 배치
랜드마크 파일 가져오기
지원 형식: TPS, NTS, X1Y1, Morphologika, 그리고 JSON+ZIP 데이터셋 패키지.
File → Import (Ctrl+I) 을 엽니다. Modan2는 파일 확장자로 형식을 자동 감지하지만(.tps, .nts, Morphologika는 .txt, JSON+ZIP 패키지는 .zip), 형식 라디오 버튼으로 직접 지정할 수도 있습니다. Invert Y 옵션은 좌하단을 원점으로 쓰는 파일을 위해 Y축을 뒤집습니다.
참고
결측 랜드마크 표시값. 가져오는 파일에 형태측정학에서 관례적으로 쓰이는 표시값 -999 가 있으면, Modan2는 해당 좌표를 결측 랜드마크로 처리할지 묻습니다(권장). “항상” 옵션을 체크하면 답을 기억합니다. Invert Y 옵션은 이 검사 전에 먼저 반영됩니다.
참고
TPS 파일의 준랜드마크 곡선. TPS 파일의 CURVES= / POINTS= 블록은 준랜드마크 곡선으로 읽어들입니다 (준랜드마크 곡선 참조).
TPS 형식 예제:
LM=5
12.5 34.2
45.6 78.9
23.1 56.4
67.8 12.3
89.0 45.6
IMAGE=specimen_001.jpg
ID=1
LM=5
15.2 32.8
...
랜드마크 파일 가져오기:
File → Import (
Ctrl+I)파일을 선택합니다 (TPS, NTS, X1Y1 또는 Morphologika)
Modan2는 다음을 수행합니다:
각 표본에 대한 객체 생성
이미지 파일에 연결 (
IMAGE=필드가 있는 경우)랜드마크 좌표를 가져옵니다 (TPS의 경우 곡선도 함께)
“가져오기” 를 클릭하세요
데이터셋 패키지 가져오기 (JSON+ZIP)
JSON+ZIP 패키지 (.zip)는 Modan2 고유의 완전 백업 형식입니다. 데이터셋의 메타데이터, 랜드마크 이름, 곡선 구성, 변수, 그리고 선택적으로 이미지와 3D 모델 파일까지 하나로 묶습니다. 이 패키지를 가져오면 추적한 준랜드마크 곡선과 결측 랜드마크까지 포함해 데이터셋 전체가 복원됩니다.
File → Import (
Ctrl+I).zip패키지를 선택합니다“가져오기” 를 클릭하세요
패키지는 트랜잭션 안에서 가져오며 오류가 발생하면 전부 되돌립니다. 압축 해제 과정은 경로 탈출(“Zip Slip”) 아카이브에 대해 보호되어 있습니다. 이전 버전 패키지(스키마 1.1)도 계속 가져올 수 있으며, 이 경우 곡선은 비어 있는 상태가 됩니다.
객체 다루기
객체 보기
테이블에서 객체를 더블클릭 하여 객체 대화상자 를 여세요.
객체 대화상자는 다음을 보여줍니다:
객체 메타데이터 (이름, ID, 생성 날짜)
연결된 이미지 또는 3D 모델
랜드마크 테이블
랜드마크가 시각화된 2D/3D 뷰어
객체 대화상자에는 클릭이 어떤 동작을 할지 결정하는 모드 버튼이 있습니다: Landmark(랜드마크 배치/이동, 기본값), Curve(준랜드마크 곡선 추적), Calibration(이미지 축척 설정). 한 번에 하나만 활성화됩니다.
랜드마크 배치 (2D)
2D 객체의 객체 대화상자를 엽니다 (Landmark 모드가 기본으로 활성화되어 있습니다)
이미지를 클릭하여 랜드마크를 배치하세요
랜드마크는 순차적으로 번호가 매겨집니다 (1, 2, 3, …)
기존 랜드마크를 클릭한 뒤 드래그하면 이동합니다
랜드마크를 우클릭하여 삭제하세요
2D 뷰어에서의 마우스 조작:
마우스 휠 - 확대/축소
빈 공간에서 오른쪽 버튼 드래그 - 이미지 이동
Ctrl+W- 대화상자 닫기
랜드마크 배치 (3D)
3D 객체에 대한 객체 대화상자 열기
모델 회전:
왼쪽 마우스 드래그: 회전
오른쪽 마우스 드래그: 이동
마우스 휠: 확대/축소
표면을 클릭하여 랜드마크를 배치하세요
랜드마크는 색상이 있는 구체로 나타납니다
랜드마크를 우클릭하여 삭제하세요
3D 뷰어 컨트롤:
왼쪽 버튼 드래그: 회전
가운데 버튼 드래그: 이동
오른쪽 버튼 드래그 또는 마우스 휠: 확대/축소
3D Model / Rotate 체크박스: 메시를 표시하고 자동으로 회전시킵니다
랜드마크 좌표 편집
랜드마크 테이블에서:
좌표 셀을 더블클릭하세요
새 값을 입력하세요
Enter를 눌러 저장하세요뷰어가 자동으로 업데이트됩니다
수동 좌표 입력이 유용한 경우:
정밀한 조정
디지타이징 오류 수정
외부 소스에서 좌표 가져오기
결측 랜드마크
랜드마크를 배치할 수 없는 경우(표본 손상, 특징이 가려짐 등)에는 건너뛰지 말고 랜드마크 표에서 결측으로 표시하세요 — 이렇게 하면 데이터셋 전체에서 랜드마크 개수가 일관되게 유지됩니다. 랜드마크를 결측으로 표시하는 방법:
“결측 추가”(Add Missing)를 클릭해 결측 랜드마크를 끝에 덧붙이거나, 또는
먼저 행을 선택하면 버튼이 “결측 삽입”(Insert Missing)으로 바뀌며, 선택한 행 앞에 빈 자리를 삽입합니다(제자리에 들어가도록). 또는
좌표 셀에
MISSING을 입력하거나 셀을 비워 둡니다.
셀에는 숫자 또는 MISSING 만 입력할 수 있습니다(빈 칸은 결측으로 간주). 그 외의 값을 넣으면 설명 툴팁과 함께 저장되어 있던 값으로 되돌아갑니다.
결측 랜드마크 시각화: “추정값 보기”(Show Estimated) 체크박스(기본 켜짐)는 각 결측 랜드마크의 추정 위치에 빈 원을 그립니다. 체크를 해제하면 추정값이 숨겨집니다.
추정 방식: Modan2는 데이터셋의 평균 형상을 해당 표본이 실제로 가진 랜드마크에 맞춰 정합합니다 — 회전, 크기, 위치를 맞추는 상사변환(similarity transform)입니다 — 그리고 정합된 평균 형상에서 결측 위치를 읽어옵니다. 표본을 비스듬히 촬영한 경우에도 정확도가 유지됩니다.
참고
분석 중에도 같은 방법으로 결측 랜드마크를 채우며, 정렬이 수렴해 가면서 추정값도 함께 정밀해집니다. 결측 랜드마크 처리 를 참조하세요.
랜드마크 이름
각 랜드마크에 이름/약어와 설명을 데이터셋 수준에서 지정할 수 있으며, 이는 모든 표본에 적용됩니다.
객체 대화상자에서 “Landmark Names” 를 클릭합니다(또는 데이터셋 대화상자의 랜드마크 이름 탭을 사용합니다)
각 랜드마크 인덱스에 대해 Name(이름)과 Description(설명) 열을 채웁니다
Save(저장)를 클릭합니다
디지타이징 중에는 Show 체크박스와 Index / Name 라디오 버튼으로 레이블 모드를 바꿀 수 있습니다. Name 을 선택하면 번호 대신 랜드마크 이름이 표시되고, 설명은 툴팁으로 나타납니다.
준랜드마크 곡선
준랜드마크(semi-landmark)를 쓰면 낱개의 점이 아니라 곡선(윤곽선이나 능선)을 기록할 수 있습니다. 각 표본에서 곡선을 추적하면 Modan2가 그 길이를 따라 균등한 간격의 고정된 개수의 점으로 재표본화합니다. 분석에서는 이 점들을 일반 랜드마크처럼 다룹니다 — 고정(해부학적) 랜드마크는 위치와 인덱스를 그대로 유지하고, 준랜드마크가 그 뒤에 이어집니다. 고정 랜드마크 없이 준랜드마크만으로 데이터셋을 분석할 수도 있습니다.
추적한 원본 경로는 표본과 함께 보관되므로 언제든지 다시 추적하거나 점 개수를 바꿀 수 있습니다. 준랜드마크 곡선은 2D 전용 기능입니다.
곡선 추적하기:
2D 객체의 객체 대화상자를 열고 Curve 모드 버튼을 클릭합니다 (툴팁: Trace a curve (semi-landmarks))
곡선을 따라 클릭하여 점을 찍습니다
Enter 또는 더블클릭 으로 추적을 확정하고, Esc 또는 오른쪽 클릭 으로 취소합니다
새로 만드는 곡선에서는 “이 곡선의 준랜드마크 개수”(Number of semi-landmarks on this curve)를 묻습니다(기본값 10). 이 개수는 데이터셋 전체에 적용되므로 모든 표본의 해당 곡선에 동일하게 쓰입니다.
곡선에 스냅(라이브와이어 경계 검출) — Curve 모드에서 기본으로 켜져 있습니다. 추적선이 클릭한 점들 사이에서 이미지의 가장 강한 경계를 따라가므로, 깔끔한 윤곽선을 몇 번의 클릭만으로 얻을 수 있습니다(완만한 곡선은 시작점과 끝점만, 급하게 꺾이는 곡선은 중간에 점 몇 개를 더). 손으로 그대로 그리려면 “Snap to curve” 체크를 해제하세요.
곡선 부드럽게(Smooth curve) — 기본으로 켜져 있습니다. 스냅된 추적선의 픽셀 계단 현상을 제거해 준랜드마크가 매끄러운 곡선 위에 놓이게 하며, 사용자가 직접 클릭한 점은 그대로 유지합니다. “Smooth curve” 체크박스로 켜고 끕니다. (스냅과 부드럽게는 Curve 모드에서만 사용할 수 있습니다.)
추적한 곡선 편집하기:
곡선을 클릭하면 선택됩니다(더 굵게 그려지고 사각형 앵커 핸들이 표시됩니다)
점을 드래그하면 이동하고, 선을 클릭하면 점이 추가됩니다. 점에서 오른쪽 클릭하면 Delete Point, 곡선 전체를 지우려면 Delete Curve 를 사용합니다
스냅된 곡선은 클릭했던 앵커로 편집하며, 드래그하는 동안 경계에 실시간으로 다시 스냅됩니다
곡선 표(객체 대화상자 내)는 각 곡선을 Name(이름), N(점 개수), Traced(추적 여부 ✓)와 함께 나열합니다. N 을 수정하면 곡선을 다시 재표본화합니다. 행에서 오른쪽 클릭 → “Delete Curve (all specimens)” 를 선택하면 데이터셋 전체에서 그 곡선이 삭제됩니다.
곡선은 작업하는 동안 메모리에 보관되며 Save(저장) 시 데이터베이스에 기록됩니다.
캘리브레이션 (축척 설정)
랜드마크 좌표는 이미지 픽셀 단위입니다. 크기를 실제 단위로 표시하고 싶다면, 알고 있는 거리를 기준으로 객체를 캘리브레이션하세요 — 사진 속 자, 또는 직접 측정한 해부학적 거리를 쓰면 됩니다.
객체 대화상자에서 Calibration 모드 버튼을 클릭합니다.
이미지에서 알고 있는 거리만큼 드래그 합니다: 한쪽 끝에서 누르고 반대쪽 끝에서 뗍니다. 드래그하는 동안 선이 커서를 따라옵니다.
나타나는 대화상자에 실제 길이를 입력하고 단위를 고릅니다(nm, um, mm, cm, m). 대화상자에는 드래그한 픽셀 수가 표시됩니다.
OK를 클릭한 뒤 객체를 저장합니다.
Modan2는 결과를 mm당 픽셀 수로 해당 객체에 저장합니다. 즉 캘리브레이션은 표본별로 적용되므로, 서로 다른 배율로 촬영한 사진은 각자의 축척을 가집니다. 설정하고 나면 중심 크기가 픽셀이 아니라 실제 단위로 표시됩니다.
참고
일괄 캘리브레이션은 없습니다. 객체마다 개별적으로 설정합니다. 마지막에 고른 단위는 다음 객체의 기본값으로 기억됩니다.
디지타이징 보조 기능
Show Expected (2D): 새 표본에 랜드마크를 두 개 이상 배치하면, 나머지 위치를 데이터셋 평균 형상에서 예측해 안내선으로 보여주므로 각 랜드마크가 대략 어디쯤인지 알 수 있습니다. 기본은 꺼짐입니다.
“원본 보기”(Show Original) (2D): 가져올 때 표본 이미지가 축소된 경우(긴 변이 2560 px를 초과), 원본 해상도 파일이 따로 보관됩니다. “원본 보기” 를 체크하면 뷰어를 그 원본으로 렌더링해 디지타이징 시 더 세밀하게 볼 수 있습니다. 이는 표시에만 영향을 주며 좌표는 작업본 픽셀 좌표계를 유지합니다. 원본이 있을 때만 이 체크박스가 나타납니다.
표시 옵션
객체 대화상자에서 시각화를 사용자 정의하세요:
Show + Index / Name: 랜드마크 레이블을 켜고 끄며, 레이블을 인덱스 번호로 할지 랜드마크 이름으로 할지 선택합니다
와이어프레임: 데이터셋 와이어프레임에 따라 랜드마크를 연결합니다
폴리곤: 정의된 폴리곤을 채웁니다
베이스라인: 베이스라인 랜드마크를 강조합니다
추정값 보기(Show Estimated): 결측 랜드마크의 추정 위치를 빈 원으로 표시합니다
Show Expected: 아직 배치하지 않은 랜드마크의 예측 위치 (디지타이징 보조 기능 참조)
Curve: 추적한 원본 곡선을 표시합니다
Semi-LM: 곡선에서 유도된 준랜드마크를 표시합니다
3D Model / Rotate (3D 객체): 메시를 표시하고 자동으로 회전시킵니다
랜드마크 크기, 와이어프레임 두께, 레이블 크기는 환경 설정(Preferences)에서 2D와 3D 각각 따로 지정합니다.
통계 분석
개요
Modan2는 세 가지 주요 통계 분석을 제공합니다:
주성분 분석 (PCA): 형태 변이 탐색
정준 판별 분석 (CVA): 그룹 간 판별
MANOVA: 그룹 차이 검정
모든 분석은 전처리 단계로 Procrustes 중첩 을 필요로 합니다.
분석 실행
한 번의 분석 실행에서 중첩정렬을 수행한 뒤 PCA, CVA, MANOVA를 모두 함께 계산합니다 — 종류를 골라서 하는 것이 아닙니다. 결과는 데이터셋과 함께 저장되어 나중에 다시 열 수 있습니다.
트리 뷰에서 데이터셋을 선택하세요
분석(Analyze,
Ctrl+G)을 클릭하거나 Data 메뉴를 사용합니다분석 대화상자에서 다음을 지정합니다:
분석 제목 (고유한 이름이 자동으로 제안됩니다)
중첩정렬방식: 프로크루스테스(Procrustes), 북스틴(Bookstein), 강건적합(Resistant Fit)
CVA 그룹화 변수: CVA의 그룹을 정의하는 범주형 변수
MANOVA 그룹화 변수: MANOVA에 사용할 범주형 변수
“OK” 를 클릭해 실행합니다. 진행 상황이 표시되며, CVA/MANOVA를 계산할 수 없는 경우(예: 그룹 수가 너무 적음)에는 조용히 건너뛰지 않고 실패를 알려줍니다.
결과는 데이터 탐색(Data Exploration) 대화상자에서 살펴봅니다.
Procrustes 중첩
수행 작업:
모든 형태를 공통 좌표계에 정렬합니다
위치, 회전 및 스케일로 인한 차이를 제거합니다
형태 변이만 남깁니다
결측 랜드마크 처리:
데이터셋에 결측 랜드마크가 있으면 프로크루스테스가 EM 방식의 반복 정밀화 루프로 이를 채웁니다 (결측 랜드마크 처리 참조).
중첩정렬방식:
프로크루스테스(Procrustes, 일반화 프로크루스테스 분석): 기본값이며 결측 랜드마크도 함께 대치합니다.
북스틴(Bookstein, 베이스라인 정합): 데이터셋의 베이스라인 랜드마크를 표준 위치에 고정하여 각 형상을 북스틴 형상좌표로 다시 표현합니다(2D: 양 끝점을 (-0.5, 0)과 (0.5, 0)에 고정, 3D는 3점 베이스라인 사용). 데이터셋에 베이스라인이 정의되어 있어야 하며, 결측 랜드마크는 (프로크루스테스와 마찬가지로) 먼저 대치합니다.
강건적합(Resistant Fit, RFTRA): 랜드마크 쌍 관계의 반복 중앙값(repeated median)을 이용하는 강건한 정렬로, 몇 개의 이탈(이상치) 랜드마크가 프로크루스테스처럼 전체 정합을 끌어당기지 않습니다. 2D와 3D 모두 지원하며, 결측 랜드마크는 먼저 대치합니다.
Procrustes 실행 시점:
모든 분석 실행의 첫 단계로 자동 수행됩니다
정렬된 형상이 PCA, CVA, MANOVA의 입력이 됩니다
주성분 분석 (PCA)
목적: 형태 변이의 주요 축 식별
사용 시기:
형태 다양성 탐색
형태 공간 시각화
이상치 식별
차원 축소
PCA 실행: PCA는 모든 분석 실행에서 자동으로 계산됩니다(Running an Analysis 참조). 완료된 분석을 데이터 탐색(Data Exploration) 대화상자에서 열어 주성분을 살펴보세요.
결과 해석:
데이터 탐색 대화상자 가 다음과 함께 열립니다:
스크리 플롯: 각 PC에 의해 설명되는 분산 표시
X축: PC 번호
Y축: % 분산
의미 있는 PC 수를 결정하기 위해 “엘보”를 찾으세요
PC 점수 플롯: 표본의 산점도
X축: PC1 (일반적으로 가장 높은 분산)
Y축: PC2 (두 번째로 높은)
그룹별로 색상이 지정된 점들 (변수가 정의된 경우)
형태 변이 와이어프레임:
각 PC를 따른 형태 변화 표시
PC 축의 극단에서 최소/최대 형태
PC 점수 테이블: 각 표본의 수치 점수
PCA 결과 내보내기:
PC 점수 내보내기: 각 객체의 점수가 포함된 CSV 파일
로딩 내보내기: 각 PC에 대한 랜드마크 기여도
플롯 내보내기: 산점도를 PNG/PDF로 저장
예제 워크플로우:
Dataset: Skull shapes (50 specimens, 20 landmarks)
PCA Results:
PC1: 45% variance → Overall size (allometry)
PC2: 23% variance → Skull width
PC3: 12% variance → Jaw length
Interpretation:
- Most variation is size-related
- PC2 separates species A (narrow) vs. B (wide)
- PC3 shows sexual dimorphism within species
정준 판별 분석 (CVA)
목적: 사전 정의된 그룹 간 분리 최대화
사용 시기:
종/집단 간 판별
분류 정확도 테스트
진단적 특징 식별
요구사항:
데이터셋 변수를 통해 정의된 최소 2개 그룹
그룹당 최소 2개 표본
CVA 실행: CVA는 모든 분석 실행의 일부로 계산됩니다. 분석 대화상자에서 CVA 그룹화 변수 를 그룹을 정의하는 범주형 변수(예: “Species”)로 지정한 뒤, 결과를 데이터 탐색 에서 엽니다.
결과 해석:
CV 점수 플롯: CV 축에 표시된 표본
이상적으로는 그룹이 뚜렷한 클러스터를 형성합니다
중첩은 유사성을 나타냅니다
분류 테이블: CVA가 얼마나 잘 판별하는지 표시
행: 실제 그룹
열: 예측된 그룹
대각선 = 올바른 분류
비대각선 = 오분류
판별 함수: 통계적 세부사항
Wilks’ Lambda: 작을수록 더 나은 분리 (0-1 척도)
P-값: 그룹 차이의 유의성
예제:
Dataset: Bird beaks, Variable: Species (A, B, C)
CVA Results:
CV1: 78% discrimination
CV2: 15% discrimination
Classification Table:
Predicted A Predicted B Predicted C
Actual A 18 2 0
Actual B 1 19 0
Actual C 0 1 19
Overall accuracy: 93.3%
MANOVA
목적: 그룹이 형태에서 유의하게 다른지 검정
사용 시기:
공식적인 가설 검정
여러 그룹을 동시에 비교
효과 크기 평가
MANOVA 실행: MANOVA는 모든 분석 실행의 일부로 계산됩니다. 분석 대화상자에서 MANOVA 그룹화 변수 를 검정하려는 범주형 변수로 지정합니다.
결과 해석:
Wilks’ Lambda: 검정 통계량 (0-1)
작을수록 = 더 많은 그룹 분리
0 = 완벽한 분리
1 = 분리 없음
F-통계량: 그룹 간 변이 대 그룹 내 변이의 비율
P-값: 그룹 차이가 우연으로 인한 것일 확률
P < 0.05: 유의한 차이 (귀무가설 기각)
P ≥ 0.05: 유의한 차이 없음
효과 크기 (부분 η²): 그룹에 의해 설명되는 분산의 비율
예제:
Hypothesis: Male and female skulls differ in shape
MANOVA Results:
Wilks' Lambda: 0.234
F(40, 18) = 3.45
P-value: 0.002
Partial η²: 0.766
Conclusion: Significant sex-related shape differences (P < 0.05)
76.6% of shape variation explained by sex
결측 랜드마크 처리
Modan2는 분석 중에 결측 랜드마크를 자동으로 채웁니다. 정렬과 대치를 번갈아 수행하는 EM 방식의 반복 정밀화 루프를 사용합니다:
결측 랜드마크를 빈 자리로 남긴 채 모든 표본을 정렬합니다(평균 형상은 빈 자리를 무시하고 계산하며, 각 표본은 실제로 가지고 있는 랜드마크만으로 정렬합니다).
결측이 있는 각 표본에 대해, 현재 평균 형상을 그 표본의 관측된 랜드마크에 상사변환(회전, 크기, 이동)으로 정합한 뒤, 정합된 평균 형상에서 결측 위치를 읽어옵니다.
채워 넣은 값으로 다시 정렬한 다음, 원래의 빈 자리를 다시 열어 개선된 평균 형상으로부터 재추정합니다.
3단계를 몇 번 반복하여, 정렬이 수렴해 가면서 추정값이 계속 개선되도록 합니다(이전 추정값에 다시 맞추는 일은 결코 없습니다).
대치된 값은 분석용 작업 사본에만 존재하며 데이터베이스에 다시 기록되지 않습니다. 이후 PCA, CVA, MANOVA가 정렬된 좌표를 대상으로 수행됩니다.
참고
이는 객체 대화상자의 “추정값 보기”(Show Estimated)와 “Show Expected” 미리보기에 쓰이는 것과 동일한 형상 정합 방법입니다. 정답을 알고 있는 합성 시험 형상에서는 오차가 사실상 0입니다.
모범 사례:
데이터셋에서 <10% 결측 랜드마크를 목표로 하세요
완전한(또는 거의 완전한) 표본을 충분히 확보하세요
추정 위치가 타당한지 생물학적 지식을 사용하여 확인하세요
시각화
2D 뷰어
기능:
확대/축소: 마우스 휠
이동: 빈 공간에서 오른쪽 버튼 드래그
랜드마크 오버레이: 인덱스 또는 이름 레이블이 붙은 색상 원
준랜드마크 곡선과 그로부터 유도된 점들 (Curve 및 Semi-LM 체크박스로 켜고 끄기)
3D 뷰어
컨트롤:
회전: 왼쪽 버튼 드래그
이동: 가운데 버튼 드래그
확대/축소: 오른쪽 버튼 드래그 또는 마우스 휠
랜드마크 표시:
랜드마크를 구체로 렌더링
크기는 환경 설정(Preferences)에서 조정할 수 있습니다
인덱스/이름 레이블은 선택 사항입니다
통계 플롯
사용 가능한 플롯:
스크리 플롯 (PCA): PC당 설명되는 분산
PC 점수 플롯 (PCA): PC 축의 표본
CV 점수 플롯 (CVA): CV 축의 표본
형태 변이 플롯: PC/CV 극단의 와이어프레임
사용자 정의:
그룹 색상: 변수별 자동 할당
점 크기: 조정 가능
축 레이블: 분산 %와 함께 자동
범례: 그룹 이름 및 색상 표시
플롯 내보내기:
플롯에서 우클릭 → “플롯 내보내기”
형식: PNG, SVG, PDF
해상도: 300 DPI 기본값 (조정 가능)
데이터 내보내기
데이터셋 내보내기
데이터셋을 선택하고 내보내기(Export, Ctrl+E)를 선택합니다.
내보낼 형식 을 선택합니다:
TPS: TPS 형식의 랜드마크 좌표
X1Y1: 단순 좌표 열
Morphologika: Morphologika 형식 (이미지 및 메타데이터 포함)
JSON+ZIP: 완전한 데이터셋 패키지 (아래 참조)
내보낼 때 적용할 중첩정렬 을 선택합니다: None(원좌표) 또는 Procrustes(정렬됨). 원좌표 TPS로 내보내면 추적한 준랜드마크 곡선이
CURVES=/POINTS=블록으로 기록되고, 프로크루스테스로 내보내면 병합된 정렬 랜드마크가 기록됩니다.객체 목록에서 포함할 객체를 선택합니다.
“Export”(내보내기)를 클릭합니다.
데이터셋 패키지 내보내기 (JSON+ZIP)
JSON+ZIP 형식은 Modan2의 완전 백업 형식입니다. 데이터셋 메타데이터, 랜드마크 이름, 곡선 구성, 변수, 랜드마크, 추적한 곡선을 JSON 매니페스트에 담고, 이미지와 3D 모델 파일도 함께 묶을 수 있습니다.
미디어를 함께 묶으려면 “Include image and model files” 를 체크하세요. 옵션을 바꿀 때마다 Estimated size(예상 크기) 값이 갱신됩니다.
결과물은
<dataset>_<timestamp>.zip파일로, 보관하거나 공유할 수 있고 다른 컴퓨터에서 손실 없이 다시 가져올 수 있습니다(Importing a Dataset Package (JSON+ZIP) 참조).
분석 결과 내보내기
데이터 탐색 대화상자 에서:
PC 점수 내보내기: 표본당 점수가 포함된 CSV
형태 데이터 내보내기: 정렬된 랜드마크 좌표 (Procrustes 이후)
통계 내보내기: 요약 통계 (평균, 표준편차 등)
키보드 단축키
메인 창
Ctrl+N- 새 데이터셋Ctrl+Shift+N- 새 객체Ctrl+Shift+O- 객체 편집Ctrl+S- 변경사항 저장Ctrl+I- 가져오기Ctrl+E- 내보내기Ctrl+G- 분석Ctrl+P- 객체 미리보기 켜기/끄기Ctrl+W- 종료F1- 정보
객체 대화상자 (Curve 모드)
Enter / 더블클릭 - 현재 추적 확정
Esc / 오른쪽 클릭 - 현재 추적 취소
곡선의 점에서 오른쪽 클릭 - Delete Point / Delete Curve
Ctrl+W- 대화상자 닫기
환경설정
Edit → Preferences(편집 → 환경 설정)를 엽니다.
일반
언어: English 또는 Korean (한국어). 즉시 적용됩니다
Remember Geometry: 세션 간에 창 크기/위치를 복원합니다 (예/아니오)
Toolbar Icon Size: 작게 / 중간 / 크게
뷰어 외형
2D 와 3D 에 대해 각각 설정합니다:
랜드마크 크기: 작게 / 중간 / 크게
와이어프레임 두께: 얇게 / 중간 / 굵게
인덱스(레이블) 크기: 작게 / 중간 / 크게
그 외:
배경 색상: 뷰어 배경
플롯 외형
데이터 점 크기: 작게 / 중간 / 크게
데이터 점 색상 과 데이터 점 표식: 데이터 탐색 플롯에서 그룹별 기본값으로 사용됩니다
팁 및 모범 사례
데이터 구성
일관된 이름 사용:
species_ID_number.jpg(예:sparrow_001.jpg)계층적으로 구성: 관련 데이터셋 그룹화
메타데이터 문서화: 설명 필드 사용
정기적으로 백업하세요: 데이터셋을 JSON+ZIP 패키지로 내보내거나, Modan2를 종료한 상태에서
~/PaleoBytes/Modan2/를 복사하세요
랜드마크 배치
랜드마크를 신중하게 정의: 해부학적으로 의미 있는 점 사용
일관성 유지: 모든 표본에 동일한 랜드마크
고해상도 이미지 사용: 더 나은 정밀도
모호한 점 피하기: 명확하고 반복 가능한 특징 선택
랜드마크 문서화: 정의를 기록 (예: “부리 끝”)
통계 분석
가정 확인: 정규 분포, 분산의 동질성
표본 크기: PCA는 최소 30개 표본, CVA는 그룹당 10개 이상
결과 검증: 교차 검증, 부트스트랩 재표본추출
신중하게 해석: 통계적 유의성 ≠ 생물학적 유의성
먼저 시각화: 공식 검정 전에 PCA로 탐색
성능 최적화
3D 폴리곤 수 제한: 가져오기 전에 메시 단순화
큰 사진은 축소되도록 두기: 과도하게 큰 이미지(긴 변 > 2560 px)는 자동으로 더 작은 작업본으로 저장되고 원본은 따로 보관됩니다. 세밀하게 봐야 할 때만 원본 보기(Show Original)를 사용하세요
하위 집합에서 분석 실행: 먼저 작은 샘플로 시험해 보세요
일반적인 워크플로우
워크플로우 1: 2D 형태계측 연구
1. Collect images (photographs, scans)
2. Create dataset in Modan2
3. Import images
4. Define landmarks (e.g., 15 points on butterfly wing)
5. Place landmarks on all specimens
6. Define variables (species, sex, location)
7. Run Procrustes + PCA
8. Explore shape variation
9. Run CVA if groups exist
10. Export results for publication
워크플로우 2: 3D 형태계측 연구
1. Acquire 3D scans (CT, laser, photogrammetry)
2. Clean/process meshes (MeshLab, Blender)
3. Import OBJ/PLY files to Modan2
4. Place 3D landmarks
5. Run Procrustes
6. Perform PCA/CVA
7. Export shape data for further analysis (R, Python)
워크플로우 3: 결측 데이터 연구
1. Import dataset with incomplete specimens
2. Mark missing landmarks ("Add/Insert Missing", or type MISSING in a cell)
3. Verify estimation: Object Dialog -> "Show Estimated" checkbox
4. Run the analysis (missing landmarks are imputed automatically)
5. Explore PCA/CVA/MANOVA results in Data Exploration
6. Validate results against a complete-specimen-only analysis
문제 해결
분석 실패
오류: Not enough complete specimens for Procrustes
해결책: 결측 랜드마크가 없는 최소 2개의 완전한 표본 필요
오류: CVA requires at least 2 groups
해결책: 여러 값을 가진 그룹화 변수 정의
랜드마크가 표시되지 않음
문제: 랜드마크를 배치했지만 보이지 않음
해결책:
“Show” 체크박스가 켜져 있는지 확인하세요(Index 또는 Name 중 하나가 선택된 상태로)
환경 설정에서 랜드마크 크기를 키우세요
확대 - 랜드마크가 너무 작을 수 있음
느린 성능
문제: 분석 중 애플리케이션 멈춤
해결책:
데이터셋 크기 축소 (더 작은 데이터셋으로 분할)
다른 애플리케이션 닫기
3D 메시 단순화 (폴리곤 수 축소)
파일 형식 레퍼런스
Modan2의 리더가 실제로 기대하는 형식입니다. 빈 줄은 어디서든 무시됩니다.
TPS
객체 하나는 LM=<n> 헤더와 n 개의 좌표 줄, 그리고 선택적인 KEY=VALUE 줄로 이루어집니다. 인식하는 키는 ID, IMAGE, COMMENT, SCALE 입니다. #, ", ' 로 시작하는 줄은 주석입니다.
LM=4
1.5 2.3
2.1 3.4
3.2 4.1
4.0 2.8
ID=specimen_001
IMAGE=specimen_001.jpg
LM=4
...
준랜드마크 곡선은 랜드마크 뒤에 CURVES=<k> 헤더로 시작해 k 개의 블록이 이어집니다. 각 블록은 POINTS=<m> 헤더와 m 개의 좌표 줄입니다:
LM=4
1.5 2.3
...
CURVES=1
POINTS=3
5.0 6.0
5.4 6.6
5.9 7.1
ID=specimen_001
Modan2는 이 블록을 읽고 쓰는 것 모두 지원합니다(준랜드마크 곡선 참조).
NTS
NTSYS 방식의 행렬 파일입니다. 따옴표로 시작하는 선택적 주석 줄, 헤더 줄, 그리고 데이터 순으로 옵니다.
"Bird wing landmarks
1 24L 20 0 DIM=2
specimen_001
1.5 2.3 2.1 3.4 ...
specimen_002
...
헤더 필드는 순서대로 행렬 종류, 행 이름 플래그가 붙은 객체 수, 열 이름 플래그가 붙은 변수 수, 결측값 표시, 그리고 차원을 나타내는 DIM=<d> 입니다.
행 이름 플래그는 객체 이름이 어디에 있는지를 나타냅니다 — L 은 별도의 줄, B 는 각 데이터 행의 앞, E 는 뒤입니다. 랜드마크 개수는 변수 수를 DIM 으로 나눈 값입니다.
Morphologika
섹션으로 나뉜 텍스트 파일입니다. [names] 와 [rawpoints] 는 필수이고 나머지는 선택입니다.
[individuals]
2
[landmarks]
4
[dimensions]
2
[names]
specimen_001
specimen_002
[rawpoints]
1.5 2.3
2.1 3.4
...
Modan2가 읽는 선택 섹션: [labels] 와 [labelvalues](변수), [wireframe], [polygons], [images], [pixelspermm].
X1Y1
단순 좌표 열이며, 객체당 한 행입니다.
용어집
- 랜드마크(Landmark)
형상 분석에 사용하는, 표본 위의 한 점입니다. Modan2에서 랜드마크는 인덱스와 (선택적으로) 이름, 그리고 이미지(2D) 또는 모델(3D) 공간의 좌표를 가집니다.
- 준랜드마크(Semi-landmark)
뚜렷한 특징점이 아니라 곡선 을 따라 놓이는 점입니다. 곡선을 추적하면 Modan2가 균등한 간격의 점들로 재표본화합니다(준랜드마크 곡선 참조).
- Type I / II / III 랜드마크
관례적인 분류입니다. Type I 은 진정한 상동점(예: 봉합선 교차점), Type II 는 기하학적으로 정의되는 점(예: 곡률이 최대인 점), Type III 은 곡선이나 윤곽선 위의 임의의 점 — 준랜드마크가 담아내는 것 — 입니다.
- 중첩정렬(Superimposition)
형상 차이만 남도록 표본들을 정렬하는 것입니다. Modan2는 프로크루스테스, 북스틴, 강건적합을 제공합니다(Procrustes Superimposition 참조).
- 프로크루스테스 중첩정렬
각 배열을 이동·회전·크기 조정하여 서로 가장 잘 맞게 함으로써 위치, 방향, 크기를 제거하는 중첩정렬입니다.
- 중심 크기(Centroid size)
크기의 척도로, 모든 랜드마크에서 배열의 중심까지의 제곱 거리 합의 제곱근입니다. 객체가 캘리브레이션되어 있으면 실제 단위로, 그렇지 않으면 픽셀 단위로 표시됩니다.
- 프로크루스테스 거리(Procrustes distance)
중첩정렬 후 두 형상이 얼마나 다른지를 나타내는 척도입니다.
- 형상 공간(Shape space)
각 점이 하나의 형상에 대응하는 수학적 공간입니다. PCA와 CVA는 이 공간의 투영으로 이해할 수 있습니다.
- PCA (주성분 분석)
데이터셋의 변이가 가장 큰 축들을 찾아, 몇 개의 성분으로 형상 변이의 주요 패턴을 요약합니다.
- CVA (정준변량 분석)
변수로 정의한 그룹들을 가장 잘 분리하는 축을 찾습니다.
- MANOVA (다변량 분산 분석)
그룹 간 차이가 통계적으로 유의한지 검정합니다.
- 결측 랜드마크(Missing landmark)
기록할 수 없었던 랜드마크입니다. 랜드마크 개수를 일관되게 유지하도록 명시적으로 표시하며, 분석 중에 형상 정합으로 채워집니다(결측 랜드마크 처리 참조).
다음 단계
Modan2에 기여하거나 확장하려면 개발자 가이드 를 탐색하세요
최신 기능 및 버그 수정 사항은 Changelog 를 확인하세요
예제 데이터셋은 GitHub repository 를 방문하세요