저자 및 관리자 : Huang Lin : [email protected]
ANCOMBC는 미생물 데이터에 대한 차동성 풍부 (DA) 및 상관 관계 분석을 포함하는 패키지입니다. 구체적으로,이 패키지에는 바이어스 보정 2 (ANCOM-BC2)를 갖는 미생물 군집 조성의 분석, 바이어스 보정 (ANCOM-BC)을 갖는 미생물의 조성 및 DA 분석을위한 미생물 (ANCOM)의 구성 분석 및 희소 한 추정치가 포함됩니다. 상관 관계 분석을위한 미생물 (SECOM) 간의 상관 관계. 미생물체 데이터는 일반적으로 두 가지 바이어스 소스의 적용을받습니다 : 불평등 한 샘플링 분획 (샘플-특이 적 바이어스) 및 차동 시퀀싱 효율 (분류 특이 적 바이어스). ANCOMBC 패키지에 포함 된 방법론은 이러한 바이어스를 수정하고 통계적으로 일관된 추정기를 구성하도록 설계되었습니다.
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
BiocManager :: install( " ANCOMBC " )
library( ANCOMBC )
? ancombc2
? ancombc
? ancom
? secom_linear
? secom_dist
1. 우리는 지금 상호 작용 테스트를 지원합니다!
새로운 버전의 ancom
, ancombc
및 ancombc2
분석에 상호 작용 용어를 포함하는 것을 지원합니다. 자세한 지침은 최신 비네팅을 확인하십시오.
2. 민감도 분석이 필수적입니다!
사용자의 경우 : 연구의 주요 초점이 Power가 아닌 한, 거짓 긍정을 크게 줄이기 때문에 민감도 분석을 켜는 (기본 설정)를 켜는 것이 좋습니다.
연구원들에게 : 우리는 허위 양성을 적절하게 통제하지 않는 것에 대해 ANCOM-BC2를 비판하는 최근의 논문에 주목했다. 그러나 이러한 비판은 민감도 분석 기능을 설명하지 못했습니다. Comparing ANCOM-BC2 without utilizing its embedded features, such as sensitivity analysis, is not a fair evaluation. We emphasize this point in our latest update.
1. Q: What are the differences between the formula
and group
arguments in ancombc
and ancombc2
?
A : formula
및 group
인수는 ancombc
및 ancombc2
기능에서 다른 목적을 제공합니다. 다음은 차이점의 고장입니다.
formula
:이 인수는 미생물 풍부도에 잠재적으로 영향을 줄 수있는 실험의 변수를 지정하는 데 사용됩니다. 적절한 조정과 정확한 결과를 보장하기 위해 모든 관련 변수를 formula
에 포함시켜야합니다. 예를 들어, 관심의 주요 변수로서 age
과 같은 연속 변수가 있고 조정이 필요하지만 연구 질문과 직접 관련이없는 추가 범주 형 변수가있는 경우 group
NULL로 남겨 두는 동안 formula
에 포함시킬 수 있습니다.
group
: group
인수는 선택 사항이며 구조적 0 (존재/부재 테스트)을 감지하거나 글로벌 테스트, 쌍별 방향 테스트, Dunnett의 테스트 유형 또는 트렌드 테스트와 같은 다중 그룹 비교를 수행하려는 경우에만 지정해야합니다. . 관심있는 변수가 3 단계 이상의 범주 형 변수이고 다중 그룹 비교를 수행하려면 group
인수를 포함해야합니다. It is important to note that group
is not the same as main_var
in ancom
. ancombc
및 ancombc2
에서 group
다중 비교를위한 다중 그룹 비교 및 P- 값의 수정에 사용됩니다.
ancom
의 adj_formula
에 main_var
포함시키지 말고 group
null이 아닌 경우 항상 formula
또는 fix_formula
(각각 ancombc
및 ancombc2
)에 group
포함하십시오. 이를 통해 분석에서 적절한 조정 및 비교가 이루어집니다.
2. Q : 왜 일부 분류군이 1 차 결과에 결석됩니까?
A : ancombc
또는 ancombc2
의 1 차 결과에서 특정 분류군이 없을 수있는 몇 가지 이유가 있습니다. 설명은 다음과 같습니다.
유병률 제외 : 지정된 임계 값 ( prv_cut
) 미만의 유병률이있는 분류군은 분석에서 제외됩니다. prv_cut
값은 분석에서 분류를 고려하는 데 필요한 최소 유병률을 결정합니다. 분류군의 유병률 이이 임계 값 아래로 떨어지면 기본 결과에는 포함되지 않습니다.
구조적 0 : 구조적 0을 나타내는 분류군은 모든 샘플에서 일관되게 카운트를 가지고 있으며, 존재/부재 테스트에 의해서만 유의 한 것으로 간주됩니다. ANCOM-BC 및 ANCOM-BC2 방법론은 구조적 제로와 분류의 상당한 차이를 감지하도록 설계되지 않았습니다. 결과적으로, 이러한 분류군은 별도로 요약되며 ancombc
또는 ancombc2
의 주요 결과에는 포함되지 않습니다.
Prosess/ABSECT 테스트 결과에 액세스하려면 zero_ind
출력을 참조하십시오. 이것은 구조적 0을 나타내는 분류군에 대한 정보를 제공합니다.
3. Q : 기본 결과에서, lfc_(Intercept)
, lfc_groupB
및 lfc_groupC
카테고리 A
, B
및 C
를 가진 group
변수가 있으면 무엇을 나타내나요?
A : 기본 결과에서 lfc_groupB
및 lfc_groupC
라는 용어는 기본적으로 그룹 A
인 참조 그룹에 대한 로그 폴드 변경 (LOGFC)을 나타냅니다. 이들 LOGFC 값은 그룹 B
와 그룹 A
사이의 풍부도 차이를 나타내며, 각각 그룹 C
와 그룹 A
사이의 차이를 나타낸다.
한편, lfc_(Intercept)
그랜드 평균의 로그 폴드 변화를 말하며,이 맥락에서 특별한 관심의 매개 변수가 아닐 수 있습니다.
참조 그룹을 변경하려면 R의 factor
함수를 사용하여 group
변수의 레벨을 그에 따라 재 배열 할 수 있습니다.
4. Q : " '랭크'가 'alconomyranks ()'의 값이어야한다는 오류 메시지가 발생했습니다. 무엇을 의미하며 어떻게 해결할 수 있습니까?
A : 오류 메시지 tax_table
'Rank'는 'alconomyranks ()'의 값이어야합니다. 이 문제를 해결하기 위해서는 taxonomyRanks(se)
기능을 사용하는 것이 좋습니다. 여기서 se
는 tse
객체입니다.
첫째, tax_table
의 순위 이름이 "Kingdom", "Phylum", "Class", "Order", "Family", "Genus"또는 "Species"와 같은 표준 분류 학적 순위 중 하나로 올바르게 명명되었는지 확인하십시오. ". 순위 이름이 현재 "ta1", "ta2", "ta3"등과 같은 다른 것으로 표시되면 그에 따라 업데이트해야합니다.
이 문제는 일반적으로 matrix
대신 data.frame
에서 tax_table
형성 할 때 발생합니다. 따라서 분석을 진행하기 전에 순위 이름이 올바르게 할당되도록하는 것이 중요합니다.
tax_table
에서 순위 이름을 업데이트 한 후에는 ancombc2
함수를 활용하여 tax_level
인수 (예 : "Genus")를 사용하여 원하는 분류 수준을 지정할 수 있습니다. 이를 통해 지정된 분류 학적 수준에서 미생물 데이터에 대한 통계 분석을 수행 할 수 있습니다.
5. Q : ancombc2
에서 rand_formula
사용하는 동안 문제가 발생했습니다. 랜덤 효과를 지정하기위한 올바른 구문은 무엇입니까?
A : ancombc2
에서 rand_formula
사용하여 랜덤 효과를 지정할 때 lmerTest
패키지에 사용 된 구문 규칙을 따르는 것이 중요합니다. Pay close attention to the placement of parentheses and vertical bars .
임의의 대상 효과를 올바르게 지정하려면 구문은 "(1|subjid)"
형식이어야하며, 여기서 subjid
주제 식별자의 변수 이름을 나타냅니다. This syntax ensures that the random subject effect is properly accounted for in the analysis.
반면에, 랜덤 효과를 지정하기 위해 rand_formula
"1|subjid"
또는 "(subjid)"
로 사용하는 것이 부정확합니다. 올바른 구문에는 항상 랜덤 효과 주위의 괄호와 수직 막대가 포함되어 고정 효과와 분리되어야합니다.
By using the correct syntax for specifying random effects, you will be able to accurately incorporate these effects into your ancombc2
analysis.
6. Q : ANCOM-BC2에서 1 차 결과와 Dunnett의 테스트 유형의 결과의 차이점은 무엇입니까?
A : ANCOM-BC2에서 Dunnett의 테스트 유형의 주요 결과와 결과는 차별적으로 풍부한 분류군에 대한 정보를 제공하지만 p- 값의 수정에는 차이가 있습니다.
기본 결과에서, p- 값은 분류군에 걸쳐 수정되므로 다른 분류군 간의 다중 비교를 설명한다. 이 보정은 개별 분류의 중요성을 결정할 때 잘못된 양의 속도를 제어하는 데 도움이됩니다.
반면, Dunnett의 테스트 유형은 분류군의 p- 값을 수정할뿐만 아니라 그룹 간의 다중 비교를 수정합니다. 구체적으로, 그룹 B
및 C
에서 각 분류의 풍부함을 참조 그룹 A
와 비교합니다. Dunnett의 시험 유형의 다중 비교에 대한 보정은보다 보수적 인 결과를 초래하여 잘못된 긍정적 인 결과의 가능성을 줄입니다.
따라서 주요 결과와 Dunnett의 테스트 유형은 차별적으로 풍부한 분류군에 대한 정보를 제공하지만 Dunnett의 테스트 유형은 다중 비교를위한 추가 제어를 제공하여보다 보수적이고 신뢰할 수 있습니다.
Q : ancombc
또는 ancombc2
기능이 분석에서 상호 작용 항을 처리 할 수 있습니까?
A : 그렇습니다. 새로운 버전의 ancom
, ancombc
및 ancombc2
분석에 상호 작용 용어를 포함하는 것을 지원합니다.
Q : ANCOM-BC 방법론을 기능적 풍부, RNA-SEQ 또는 단일 세포 RNA 데이터와 같은 다른 데이터 유형에 적용 할 수 있습니까?
A : ANCOM-BC 방법론은 구성으로 간주되는 한 다른 데이터 유형에 적용될 수 있습니다. 그러나 방법론이 주로 미생물 데이터를 사용하여 벤치마킹 및 검증되었음을 알고 있어야합니다. 자세한 내용은이 게시물을 참조하십시오.
9. Q : "긍정적 인 명확한 매트릭스가 아님"은 ancombc2
혼합 효과 모델을 맞추는 데 무엇을 의미합니까? 이 문제를 어떻게 디버그 할 수 있습니까?
A : "긍정적 인 명확한 행렬이 아님"오류 메시지는 혼합 효과 모델에 사용 된 상관 관계 행렬이 긍정적 인 명확성이 아님을 나타냅니다. 양의 명확한 매트릭스는 모든 고유 값이 양수 인 사각형 매트릭스입니다. 이 오류는 일반적으로 데이터 또는 모델 사양에 문제가있을 때 발생합니다.
이 문제를 디버깅하려면 R의 lmerTest
패키지를 사용하여 혼합 효과 모델을 원시 데이터에 장착하는 것이 좋습니다. ancombc2
기능에서 사용한 것과 동일한 고정 효과 및 랜덤 효과 사양을 사용하십시오. 모델을 직접 장착하면 문제를 진단하는 데 도움이되는보다 유익한 오류 메시지가 제공 될 수 있습니다.
문제를 디버깅하기 위해 따라갈 수있는 단계는 다음과 같습니다.
install.packages("lmerTest")
및 library(lmerTest)
에 lmerTest
패키지를 설치하고로드하십시오.ancombc2
에서 사용한 것과 유사한 모델 공식에서 고정 효과 및 랜덤 효과를 지정하십시오.lmerTest
패키지의 lmer()
함수를 사용하여 혼합 효과 모델을 맞추십시오.이 단계를 수행하면 "긍정적 인 명확한 행렬이 아님"오류를 일으키는 문제를 더 잘 이해하고이를 해결하기 위해 적절한 조치를 취할 수 있습니다.
계속 어려움을 겪거나 추가 지원이 필요한 경우 특정 연구 분야의 통계 학자 또는 전문가로부터 조언을 구하는 것이 도움이 될 수 있습니다.
10. Q : LFC 값이 높을수록 풍부함에 해당하는 경우 왜 내 OTU/ASV 수가 반대 방향을 보여 주었습니까?
A : ANCOM-BC 또는 ANCOM-BC2의 맥락에서 로그 폴드 변경 (LFC) 값은 상대적 풍부도 (예 : 비율) 또는 관찰 된 풍부 (예 : OTU 또는 ASV 카운트)를 직접 반영하지 않는다는 점에 유의해야합니다. . LFC 값은 그룹 간의 바이어스 수정 된 풍부도의 차이를 나타냅니다.
ANCOM-BC 또는 ANCOM-BC2에서, LFC 값이 높을수록 그룹 간의 바이어스 수정 된 풍부도의 차이가 더 크다. 그러나 이는 LFC가 더 높은 그룹이 특정 OTU 또는 ASV에 대해 더 높은 상대적 풍부 또는 더 많은 관측 수를 갖는다는 것을 의미하지는 않습니다.
11. Q : ANCOM-BC2 트렌드 테스트를 수행하는 더 복잡한 예를 들어 주시겠습니까?
A : 예를 들어, R에서 5 개의 순서 카테고리 ( A, B, C, D, E
)의 group
변수로 추세 테스트를 사용할 때는 실제로 ( BA, CA, DA, EA
)를 실제로 추정하고 있습니다. . A < B < C < D < E
의 추세를 테스트하는 것은 0 < B - A < C - A < D - A < E - A
테스트하는 것과 같습니다. Therefore, we can specify the contrast matrix as follows:
# B-A C-A D-A E-A
1 0 0 0
- 1 1 0 0
0 - 1 1 0
0 0 - 1 1
In R, it should be
matrix (c( 1 , 0 , 0 , 0 ,
- 1 , 1 , 0 , 0 ,
0 , - 1 , 1 , 0 ,
0 , 0 , - 1 , 1 ),
nrow = 4 ,
byrow = TRUE )
보다 심층적 인 토론을 보려면이 게시물을 참조하십시오.
12. Q : OMG, 나는 여전히 구조적 0에서 매우 혼란스러워합니다. What are they? struc_zero
및 neg_lb
인수는 무엇을합니까?
A : 분류군은 해당 그룹에 완전히 또는 거의 완전히없는 경우 일부 (> = 1) 그룹에서 구조적 0을 갖는 것으로 간주됩니다. 예를 들어, G1, G2 및 G3의 세 그룹이있는 경우, 분류 A의 수는 G1에서 0이지만 G2 및 G3에서는 0이 아닌 경우, 분류 A는 G1에 구조적 0을 포함하는 것으로 간주됩니다. 이 시나리오에서, 분류 A는 G1과 G2, G1 및 G3 사이에 차별적으로 풍부하다고 선언되며, 결과적으로 그룹 변수와 관련하여 전 세계적으로 차별적으로 풍부하다. 이러한 분류군은 ANCOM-BC 또는 ANCOM-BC2를 사용하여 더 이상 분석되지 않지만 결과는 zero_ind
에 요약되어 있습니다. 구조적 0의 탐지를 존재/부재 테스트를 수행하는 것으로 취급 할 수 있습니다.
구조적 0의 탐지는 별도의 논문 인 ANCOM-II를 기반으로합니다. 구체적으로, neg_lb = TRUE
설정하면 ANCOM-II의 섹션 3.2에 명시된 두 기준이 구조적 0을 감지하는 데 사용됨을 나타냅니다. 또는 neg_lb = FALSE
설정하면 ANCOM-II의 섹션 3.2에서 방정식 1 만 사용하여 구조적 0을 선언하여보다 보수적 인 접근 방식이됩니다. OTU/ASV 테이블은 일반적으로 매우 드물기 때문에 잘못된 발견을 방지하기 위해 neg_lb = FALSE
선택하는 것이 좋습니다. 그러나 샘플 크기가 충분히 큰 가족 수준 테이블과 같은 더 빽빽한 테이블이있는 경우 neg_lb = TRUE
사용하는 것이 더 나은 아이디어 일 수 있습니다. struc_zero
가 FALSE
로 설정된 경우 neg_lb
기능이 없음에 유의해야합니다. 따라서 세 가지 가능한 조합이 있습니다 : struc_zero = FALSE
( neg_lb
에 관계없이), struc_zero = TRUE, neg_lb = FALSE
또는 struc_zero = TRUE, neg_lb = TRUE
가 있습니다.