코어 게놈이 너무 짧음

Sep 03 2020

나는 M tuberculosis전송 네트워크를 시도하고 추론하기 위해 격리 에서 snp 거리 매트릭스를 만들려고합니다 . 내 계획은 snippy 를 사용하여 핵심 게놈 정렬을 만든 다음 snp-dists 를 사용하여 매트릭스를 만들었지 만 핵심 게놈 정렬을 만드는 데 어려움을 겪었 습니다. 내 모든 샘플 972 그것을하려고하면 실행하려고 할 때,가 정지를 날카로운 SNP-사이트를 말하고, Warning: No SNPs were detected so there is nothing to output.이 문제는 모든 샘플 포함하여, 핵심 게놈의 크기는 0 점이다.

snippy가 제공하는 정렬 통계를 살펴보면 일부 분리 균은 정렬 된 염기쌍 수가 매우 적은 것으로 보입니다 (낮은 범위 또는 오염으로 인해). 정렬 된 염기 쌍 수가 적은 샘플을 점진적으로 필터링 한 다음 snippy / snp-sites가 작동하도록 할 수 있습니다. 필터 엄격도를 높이면 결과 코어 게놈은 여전히 ​​짧습니다. 예를 들어 정렬 된 염기쌍이 참조의 90 % 미만인 염기쌍을 필터링하면 내 샘플 중 88 개 (9 %)를 제외하고는 5747bp (참조 기준 440 만 bp)에 불과한 코어 게놈이있었습니다.

snippy의 작성자는 출력 파일 core.txt을 사용하여 어떤 샘플이 "나쁜"이상 값인지 알아낼 것을 권장합니다 . 이 파일은 1) 참조의 길이, 2) 정렬 된 염기쌍의 수, 3) 정렬되지 않은 염기쌍의 수, 3) 변이 부위의 수, 4) 이종 부위의 수, 5)의 수를 제공합니다. 마스킹 된 사이트 및 6) 낮은 커버리지 사이트의 수.

#>   ID                        LENGTH ALIGNED UNALIGNED VARIANT   HET MASKED LOWCOV
#>   <chr>                      <dbl>   <dbl>     <dbl>   <dbl> <dbl>  <dbl>  <dbl>
#> 1 R15795_CATCAAGT_S34_L006 4411532 4192432      6818     755   428 209178   2676
#> 2 R15842_GTCTGTCA_S49_L006 4411532 4187344     10304     784   441 209178   4265
#> 3 R15876_CGCTGATC_S36_L006 4411532 4176662     18992    1292   660 209178   6040
#> 4 R15951_ATTGGCTC_S7_L002  4411532 4170649     14732    1281   980 209178  15993
#> 5 R16019_TGGAACAA_S78_L001 4411532 4190733      8132     712   715 209178   2774
#> 6 R16046_GACTAGTA_S6_L002  4411532 4186069      4309    1257  1084 209178  10892

제 질문은 핵심 게놈을 만들기 전에 샘플을 걸러 내기 위해 어떤 휴리스틱을 사용 하시겠습니까?

둘째, Mtb에 대한 합리적인 핵심 게놈 크기는 얼마입니까?

답변

2 Stuber Sep 04 2020 at 01:40

70X 이상의 커버리지 깊이로 Illumina 읽기를 타겟팅하는 것이 좋은 시작점입니다. 강력한 데이터베이스가 구축되면 낮은 커버리지 격리도 효과적으로 사용할 수 있습니다. 개별 SNP에 더 구체적으로 ... VCF QUAL 값, 맵 품질 및 / 또는 AC 값에 대한 필터링이 유용한 것으로 나타났습니다.

코어 게놈은 약 1,000 개의 SNP가 될 가능성이 있지만 참조가 속한 계통과 정렬 된 샘플 계통에 따라 달라집니다. 둘 다 동일한 혈통에서 나온다면 700 SNP 미만일 가능성이 높습니다. 다른 계보에서 SNP 수는 보이는 정렬 오류 외에도 분명히 더 높아질 것입니다.

개별 SNP 필터링 관련 ...

vSNP 는 SNP 분석을 위해 개발 된 도구입니다. 그것은 다른 종 유형에 적용될 수 있지만 원래 결핵 복합 분리 물과 함께 사용하기 위해 개발되었습니다. 코드 세부 사항은 여기에 있습니다 .

vSNP는 2 단계 프로세스입니다. 먼저 VCF 파일을 생성합니다. 둘째, 이러한 VCF 파일을 사용하여 SNP 테이블과 트리를 출력합니다. 스크립트의 목표는 최소한의 노력으로 검증 할 수있는 고해상도 유전형 분석을 달성하는 것입니다. 이를 위해 참조 선택, 자동 그룹화 및 위치 필터링과 같은 몇 가지 단계가 포함되어 있습니다.

의사 코드 :

동일한 참조에서 생성 된 VCF 파일 세트의 경우 ...

def find_positions()
    AC=2
    QUAL > 300 

발견 된 각 위치에 대해 ...

def get_snps()
    AC=2 (solid call)
    QUAL > 50
        THEN --> SNP
    AC=1 (mix call)
    QUAL > 150
        THEN --> AMBIGIOUS
    AC=2
    QUAL >= 50
       THEN --> REF
    QUAL < 50
       THEN --> N
    ALT == "None"
       THEN --> -

먼저 모든 샘플 / VCF 파일에서 정보가 될 수있는 가능한 모든 위치를 find_positions()찾은 다음 정렬에 포함 할 각 위치를 정의합니다 get_snps().

그러면 PPE / PGRS와 같이 지속적으로 불량한 정렬 영역을 필터링하는 것이 편리 할 수 ​​있습니다.