빠른 정렬이 필요 없는 판게놈 생성 및 탐색
릴리스: 개발자: @master:
FindMyFriends는 미생물 게놈에 대한 범유전체 분석을 수행하기 위한 R 패키지입니다. 이는 Bioconductor 프로젝트의 일부로 출시되었으며 BiocManager::install()
함수를 사용하여 설치할 수 있습니다.
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
BiocManager :: install( " FindMyFriends " )
최신 버전을 얻으려면 GitHub에서 직접 설치하세요.
if ( ! require( devtools )) {
install.packages( ' devtools ' )
library( devtools )
}
install_github( ' thomasp85/FindMyFriends ' )
비교 미생물 유전체학에서 범유전체(pangenome)는 일종의 유사성을 기반으로 게놈 전반에 걸쳐 유전자를 그룹화한 것으로 정의됩니다. 이 유사성 측정은 고정된 것이 아니지만 종종 각 유전자 쌍을 서로 BLASTing하여 파생됩니다. 이것은 여러 가지 이유로 나쁜 생각입니다. 모든 것을 모두에 대해 비교하면 유전자 수가 증가함에 따라 계산 시간이 끔찍하게 확장되고 BLAST는 일반적으로 매우 느리며 서열 유사성만으로는 상동 유전자와 파라로그를 구별할 수 없습니다. 마지막 요점은 PanOCT 및 Roary와 같은 최신 도구로 해결되었지만 처음 두 가지는 여전히 유효합니다(Roary는 문제를 덜기 위해 영리한 조치를 취했지만).
FindMyFriends를 입력하세요...
또 다른 알고리즘이기도 합니다. 그러나 더 중요한 것은 처음에 범유전체를 어떻게 도출했는지에 대해 완전히 불가지론적인 범유전체 분석을 수행하기 위한 프레임워크입니다. FindMyFriends는 투명하게 팬게놈 데이터를 처리하기 위한 확장 가능한 클래스 목록을 정의하고 Bioconductor에서 제공하는 광범위한 게놈 도구 배열에 직접 연결됩니다.
좋아, 다시 알고리즘으로 돌아가자. FindMyFriends는 CD-Hit을 사용하여 데이터 세트에 있는 유전자의 매우 대략적인 그룹화를 생성한 다음 추가 유사성 측정을 사용하여 두 번째 단계에서 이 그룹화를 구체화하는 방식으로 작동합니다. 이는 CD-Hit을 사용하지만 BLAST를 실행하기 전에 가장 유사한 유전자를 함께 그룹화하는 Roary와는 대조적입니다. FindMyFriends의 두 번째 단계는 모든 마법이 일어나는 곳입니다. 각 큰 그룹의 유전자는 서열 유사성(kmer 코사인 유사성 사용), 서열 길이, 게놈 구성원 및 이웃 유사성을 기준으로 비교됩니다. 이러한 비교를 기반으로 각 그룹에 대한 그래프가 생성되며, 가장자리는 유전자 간의 특정 임계값 이상의 유사성을 정의합니다. 이 그래프에서 파벌은 최고 품질의 파벌이 먼저 추출되는 방식으로 점진적으로 추출됩니다. 이 파벌은 유전자의 최종 그룹을 정의합니다. 그들은 파벌이기 때문에 사용자는 생성된 유전자 그룹의 모든 구성원이 서로 정의된 유사성을 공유하고 어떤 유전자도 한 구성원에 대한 높은 유사성을 기반으로 엄숙하게 다른 그룹과 그룹화될 수 없음을 확신할 수 있습니다.
음, 속도보다 높은 품질의 결과가 더 중요합니다! 하지만 이것은 케이크를 갖고 먹을 수도 있는 드문 경우 중 하나입니다. FindMyFriends는 가장 빠른 알고리즘입니다.
FindMyFriends는 수천 개의 게놈으로 확장되며 큰 다양성을 처리할 수 있습니다(즉, 종 수준에 제한되지 않음). 예를 들어 Lactobacillales(유산균) 목에서 ~1,200개 균주를 기반으로 하는 팬게놈은 단일 코어를 사용하여 c3x8.large AWS 인스턴스에서 약 8시간 만에 생성되었습니다.
프레임워크가 되면 할 수 있는 일이 많고 이를 수행하는 방법도 다양합니다. 다음은 팬게놈 계산에 권장되는 접근 방식입니다.
library( FindMyFriends )
# We expect here that your genomes are stored in amino acid fasta files in the
# working directory.
genomes <- list.files( pattern = ' .fasta ' )
# First we create our pangenome object
pg <- pangenome( genomes , translated = TRUE , geneLocation = ' prodigal ' )
# Then we make the initial grouping
pg <- cdhitGrouping( pg )
# And lastly we refine the groups
pg <- neighborhoodSplit( pg )
다양한 단계에 대한 자세한 내용과 유전자 그룹화를 마친 후 데이터로 수행할 수 있는 작업에 대한 예를 보려면 삽화를 참조하세요.
다음은 작업 중이거나 고려 중인 일부 기능입니다.