주요 콘텐츠

segmentCells3D

Cellpose를 사용하여 3차원 영상 볼륨 분할

R2023b 이후

설명

labels = segmentCells3D(cp,im)cellpose 객체 cp로 지정된 모델과 옵션을 사용하여 3차원 숫자형 명암 영상 볼륨을 분할합니다.

예제

labels = segmentCells3D(cp,im,Name=Value)는 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어, im의 세포 지름이 약 50 복셀인 경우 ImageCellDiameter=50을 지정합니다.

참고

이 기능을 사용하려면 Deep Learning Toolbox™, Computer Vision Toolbox™ 및 Medical Imaging Toolbox™ Interface for Cellpose Library가 필요합니다. 애드온 탐색기에서 Medical Imaging Toolbox Interface for Cellpose Library를 설치할 수 있습니다. 애드온 설치에 대한 자세한 내용은 애드온을 받고 관리하기 항목을 참조하십시오.

예제

모두 축소

40×40×40 복셀 크기의 시뮬레이션된 3차원 현미경 영상 볼륨(세포 1개가 포함됨)을 만듭니다. 시뮬레이션된 세포의 지름은 약 30 복셀입니다.

vol = zeros(40,40,40,"uint8");
vol(15,23,21) = 255;
disk = strel("sphere",12);
vol = imfilter(vol,double(disk.Neighborhood));

시뮬레이션된 세포의 대략적인 지름(단위: 복셀)을 지정합니다.

averageCellDiameter = 30;

Cellpose Library의 사전 훈련된 cyto2 모델을 구성하는 cellpose 객체를 만듭니다.

cp = cellpose(Model="cyto2");

평균 세포 지름과 세포 임계값을 지정하여 영상을 분할합니다.

labels = segmentCells3D(cp,vol, ...
    ImageCellDiameter=averageCellDiameter, ...
    CellThreshold=-6);

시뮬레이션된 영상 볼륨과 예측된 레이블을 겹쳐지게 표시합니다. 레이블 마스크가 시뮬레이션된 세포를 정확하게 덮고 있으므로, 모델이 성공적임을 알 수 있습니다.

volshow(vol,RenderingStyle="SlicePlanes", ...
    OverlayData=labels, ...
    OverlayAlpha=0.5);

입력 인수

모두 축소

Cellpose 모델 구성으로, cellpose 객체로 지정됩니다. cellpose 객체 속성은 사용할 모델을 지정하고 모델 앙상블과 GPU 사용 여부와 같은 옵션을 정의합니다.

분할할 명암 영상 볼륨으로, 3차원 숫자형 배열로 지정됩니다. Cellpose Library는 영상 볼륨을 분할하기 전에 im의 값을 single 데이터형으로 변환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: segmentCells3D(cp,im,ImageCellDiameter=50)im의 세포 지름을 약 50 복셀로 지정합니다.

보조 채널 영상 볼륨으로, im과 크기와 데이터형이 같은 3차원 숫자형 배열로 지정됩니다. 모델이 핵 채널을 받는 경우 선택적으로 이 인수를 지정할 수 있습니다. 이 값을 지정하지 않으면 함수는 im과 같은 크기의 0으로 구성된 배열을 모델에 전달합니다. Cellpose Library는 보조 채널 영상 볼륨을 single 데이터형으로 변환합니다. 이 인수는 Cellpose Library의 chan2 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

입력 영상 볼륨 im의 세포 지름으로, 양의 숫자형 스칼라(단위: 복셀)로 지정됩니다. 기본적으로 함수는 im이 훈련 데이터 세트와 같은 크기의 세포를 포함하고 cpTrainingCellDiameter 속성으로 지정된 지름을 사용한다고 가정합니다. 이 인수는 Cellpose Library의 diameter 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

세포 확률 임계값으로, 숫자형 스칼라로 지정됩니다. 모델은 이 임계값을 신경망 출력값에 적용하고, 해당 임계값보다 높은 복셀을 레이블 예측에 포함합니다. -66 사이의 값이 대부분의 영상에 적합합니다. 이 인수는 Cellpose Library의 cellprob_threshold 파라미터에 대응됩니다.

  • 이 값을 높이면 모델이 더 깔끔한 경계를 생성할 수 있지만, 일부 세포를 놓칠 수 있습니다.

  • 이 값을 낮추면 모델이 더 많은 세포를 검출할 수 있지만, 세포 간의 경계가 덜 정확할 수 있습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

입력 영상 볼륨 정규화 여부로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. true로 설정하면 함수는 입력 영상 볼륨과 보조 채널 영상 볼륨(지정된 경우)의 크기를 [0, 1] 범위로 다시 스케일링합니다. 함수는 각 영상 볼륨의 명암 값 중 하위 1%를 0으로 매핑하고 상위 1%를 1로 매핑합니다. 이 인수는 Cellpose Library의 normalize 파라미터에 대응됩니다.

데이터형: logical

인접한 복셀 간의 간격으로, 요소를 3개 가진 숫자형 행 벡터로 지정됩니다. 처음 두 요소는 같아야 하며, 이는 처음 두 차원의 간격이 같다는 의미입니다. 간격 값은 밀리미터나 미터와 같은 모든 단위가 가능하지만, 세 차원 모두 단위가 같아야 합니다. 이 인수는 Cellpose Library의 anisotropy 파라미터를 계산하는 데 사용됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

타일 간 중첩으로, 양의 숫자형 스칼라로 지정됩니다. 이 인수는 인접한 타일 간에 중첩되는 비율을 지정합니다. 중첩되는 영역의 각 복셀에 대해 함수는 타일 전체의 결과에 대한 평균을 구하여 해당 복셀의 최종 값을 얻습니다. 0.050.5 사이의 값이 대부분의 영상에 적합합니다. 이 인수는 Cellpose Library의 tile_overlap 파라미터에 대응됩니다.

참고

Cellpose Library가 3차원 영상 볼륨에 대해 tile 파라미터를 true로 자동 설정하기 때문에 segmentCells3D 함수는 항상 타일 형식 배열을 사용합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

영상 증강 여부로, 숫자형 또는 논리값 0(false) 또는 1(true)로 지정됩니다. true로 설정하면 함수는 TileOverlap0.5로 설정하여 50% 중첩되는 타일을 생성합니다. 함수는 각 타일의 여러 복사본을 세로와 가로로 뒤집어 모든 방향에서의 결과에 대한 평균을 구합니다. 증강은 일반적으로 정확도는 높이지만, 처리 속도를 떨어뜨립니다. 이 인수는 Cellpose Library의 augment 파라미터에 대응됩니다.

데이터형: logical

GPU 배치(batch)의 크기로, 양의 정수로 지정됩니다. 이 인수는 GPU에서 영상을 처리할 때만 효력이 있습니다. 배치 크기는 배치별 타일 개수를 지정합니다. 배치 크기를 늘리면 속도는 빨라지지만, 더 많은 메모리가 필요합니다. 이 인수는 Cellpose Library의 batchsize 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

영상을 그 원래 크기에서 후처리할지 여부로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. true로 설정하면 함수는 쌍선형 보간을 사용하여 후처리 전에 입력 영상의 크기에 맞게 신경망 출력값의 크기를 조정합니다. ImageCellDiameter가 모델이 검출할 수 있는 세포 지름보다 클 경우 후처리 전에 크기를 조정하면 경계를 더 매끄럽게 만들 수 있습니다. false로 설정하면 함수는 후처리 후에 최근접이웃 보간을 사용하여 입력 크기에 맞게 레이블 영상의 크기를 조정합니다. 이 인수는 Cellpose Library의 no_resample 파라미터와 반비례 관계에 있습니다.

데이터형: logical

각 세포의 최소 크기로, 양의 숫자형 스칼라(단위: 복셀)로 지정됩니다. 모델은 이 값보다 작은 영역을 최종 레이블에서 제외하며, 이를 통해 잡음을 줄일 수 있습니다. 이 인수는 Cellpose Library의 min_size 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

출력 인수

모두 축소

분할 레이블 영상으로, double 데이터형의 3차원 배열로 반환됩니다. 복셀 값은 모델에서 반환되는 레이블에 매핑됩니다. 예를 들어, 모델이 세포 두 개를 검출하는 경우 labels의 값 범위는 [0, 2]입니다. 여기서 0은 배경 복셀 값이고 첫 번째 세포의 복셀 값은 1, 두 번째 세포의 복셀 값은 2입니다.

참고 문헌

[1] Stringer, Carsen, Tim Wang, Michalis Michaelos, and Marius Pachitariu. “Cellpose: A Generalist Algorithm for Cellular Segmentation.” Nature Methods 18, no. 1 (January 2021): 100–106. https://doi.org/10.1038/s41592-020-01018-x.

[2] Pachitariu, Marius, and Carsen Stringer. “Cellpose 2.0: How to Train Your Own Model.” Nature Methods 19, no. 12 (December 2022): 1634–41. https://doi.org/10.1038/s41592-022-01663-4.

버전 내역

R2023b에 개발됨