smoove
simplifica e acelera a chamada e a genotipagem de SVs para leituras curtas. Também melhora a especificidade, removendo muitos sinais de alinhamento espúrios que são indicativos de ruído de baixo nível e muitas vezes contribuem para chamadas espúrias.
Há uma postagem no blog descrevendo smoove
com mais detalhes aqui
Ele oferece suporte a pequenas coortes em um único comando e chamadas em nível de população com 4 etapas no total, 2 das quais são paralelas por amostra.
Há uma tabela sobre a precisão e recuperação de smoove e duphold (que é usada por smoove) aqui
Requer:
E opcionalmente (mas todos altamente recomendados):
Executar smoove
sem nenhum argumento mostrará quais deles foram encontrados para que possam ser adicionados ao PATH conforme necessário.
smoove
irá:
lumpy_filter
para extrair leituras divididas e discordantes exigidas por lumpylumpy_filter
para remover regiões falsas e de alta cobertura e cromos especificados pelo usuário, como 'hs37d5'; também removerá leituras que descobrimos serem sinais provavelmente falsos. depois disso, ele removerá leituras singleton (onde o mate foi removido por um dos filtros anteriores) dos bams discordantes. Isso torna lumpy
muito mais rápido e com menos consumo de memória. você pode obter smoove
e todas as dependências por meio de uma imagem docker (grande):
docker pull brentp/smoove
docker run -it brentp/smoove smoove -h
Ou você pode baixar um binário smoove
aqui: https://github.com/brentp/smoove/releases Quando executado sem nenhum argumento, smoove
mostrará quais dependências ele pode encontrar para que você possa ajustar seu $PATH e instalar de acordo.
para coortes pequenas, é possível obter um VCF genotipado e chamado em conjunto em um único comando .
smoove call -x --name my-cohort --exclude $bed --fasta $reference_fasta -p $threads --genotype /path/to/*.bam
a saída irá para ./my-cohort-smoove.genotyped.vcf.gz
o --exclude $bed
é altamente recomendado, pois pode ser usado para ignorar leituras que se sobrepõem a regiões problemáticas.
Um bom conjunto de regiões para GRCh37 está aqui.
E para hg38 aqui
Para chamadas em nível populacional (grandes coortes), as etapas são:
smoove call --outdir results-smoove/ --exclude $bed --name $sample --fasta $reference_fasta -p 1 --genotype /path/to/$sample.bam
Para coortes grandes, é melhor paralelizar entre amostras em vez de usar grandes $threads por amostra. smoove
só pode paralelizar até 2 ou 3 threads em uma única amostra e é mais eficiente usar 1 thread.
a saída irá para `results-smoove/$sample-smoove.genotyped.vcf.gz``
# this will create ./merged.sites.vcf.gz
smoove merge --name merged -f $reference_fasta --outdir ./ results-smoove/*.genotyped.vcf.gz
smoove genotype -d -x -p 1 --name $sample-joint --outdir results-genotped/ --fasta $reference_fasta --vcf merged.sites.vcf.gz /path/to/$sample.$bam
smoove paste --name $cohort results-genotyped/*.vcf.gz
smoove annotate --gff Homo_sapiens.GRCh37.82.gff3.gz $cohort.smoove.square.vcf.gz | bgzip -c > $cohort.smoove.square.anno.vcf.gz
Isso adiciona uma tag SHQ
(Smoove Het Quality) a cada formato de amostra). Um valor de 4 é uma chamada de alta qualidade e o valor de 1 é de baixa qualidade. -1 não é het. Ele também adiciona um MSHQ
para Mean SHQ ao campo INFO, que é a pontuação média do SHQ em todas as amostras heterozigotas para essa variante.
Como primeira etapa, os usuários podem procurar variantes com MSHQ > 3. Se você adicionou anotações duphold, também será útil verificar exclusões com DHFFC < 0.7
e duplicações com DHFFC > 1.25
.
Um pânico com uma mensagem como Segmentation fault (core dumped) | bcftools view -O z -c 1 -o
provavelmente significa que você tem uma versão antiga do bcftools. veja #10
smoove
escreverá no sistema TMPDIR. Para grupos grandes, certifique-se de definir algo com muito espaço. por exemplo, export TMPDIR=/path/to/big
smoove
requer uma versão recente de lumpy
e lumpy_filter
então construa-os a partir do código-fonte ou obtenha a versão mais recente do bioconda.
ferramentas