Questão:
Melhore o conjunto de dados scRNA-seq para análise posterior
Nikita Vlasenko
2018-01-06 06:10:02 UTC
view on stackexchange narkive permalink

Recebi um conjunto de dados de C.Elegans scRNA-seq papel:

GSM2599701_Gene.count .matrix.celegans.cell.Rdata em GSE98561_RAW.tar

O conjunto de dados é 40 000 x 68 000 , onde as linhas representam genes e colunas - células. Então, peguei e tentei me processar para construir um pipeline scRNA-seq . Aqui está o que eu fiz:

  1. Eu filtrei os genes que têm contagem zero em todas as células e o conjunto de dados foi reduzido para 29.000 x 68.000

  2. Eu removi todas as células com contagens < 100 em todos os genes - o conjunto de dados tornou-se 29 000 x 66 000

  3. Então, como o conjunto de dados era muito grande para executar a normalização, mesmo no cluster com 120 Gb RAM (porque existem vários tipos distintos de células, primeiro o agrupamento precisa ser feito), selecionei apenas as colunas pares e executei a normalização com o conjunto de dados 29 000 x 33 000 ( UMI_count ):

      library (scran) library (scater) sce <- newSCESet (countData = UMI_count) clusters <- quickCluster (sce) sce <- computeSumFactors (sce, clusters = clusters, positivo = TRUE)  

Depois de executar o código acima, decidi verificar se os dados estão corretos e então executei:

  > summa ry (sizeFactors (sce)) Min. 1º Qu. Mediana Média 3º Qu. Máx. 0,0000 0,0000 0,0000 0,0717 0,0000 33,3900 

Eu também executei PCA no conjunto de dados normalizado e parece assim:

enter image description here

Parece-me que o conjunto de dados normalizado é péssimo e preciso fazer mais alguns processamentos antes de fazer análises adicionais. O que mais eu poderia fazer para melhorá-lo? Como filtrar? Não existem genes mitocondriais spike-ins e talvez 200 . A abordagem descrita aqui não funciona, provavelmente porque a maioria das células tem baixo número de genes expressos:

enter image description here

Tentei remover genes de baixa abundância após a normalização, mas parece que a maioria deles será removida:

  >ave.counts <- rowMeans (contagens (sce)) >keep < - ave.counts > = 1>sum (manter) 109  

Devo filtrar todas as células - colunas - por até 500 contagem total de expressão gênica em vez de 100 ? É uma boa ideia? Não consigo pensar em mais nada.

Você olhou para os dados não normalizados (via PCA para verificar se a normalização não manipulou esses conjuntos de dados corretamente)? Que tipo de células existem? Eles são de várias linhagens celulares, estágios ou doenças?
Se você olhar a seção de amostras desse GSE, poderá descobrir que existem "células c.elegans (estágio L2)", "mistura de células HEK293T, HeLa S3 e NIH / 3T3" e "HEK293T fixo congelado e NIH / 3T3 mix de células ", então você pode precisar de
O que acontece se você soltar as células nas 25 ou 50% inferiores das leituras sequenciadas (e talvez em algumas das primeiras também)? Suspeito que qualquer coisa que restrinja a gama de fatores de tamanho levará a resultados mais limpos.
Várias linhas de células, várias dúzias talvez. É por isso que precisamos primeiro fazer o cluster. Estas são todas as células em C.Elegans. Se você olhar para o arquivo compactado bruto, lá você pode encontrar o conjunto de dados (veja o topo da questão). Antes da normalização, o PCA parecia da seguinte maneira: https://bioinformatics.stackexchange.com/questions/3115/filter-out-pca-outliers-automatically Definitivamente ficou melhor após a normalização, se você olhar para a variação% do PC1 e PC2 , mas ainda não é eficaz
@DevonRyan Não tenho certeza do que você quer dizer com relação aos fatores de tamanho. Você poderia explicar isso mais detalhadamente?
Você usou a função `sizeFactors ()` em sua postagem, quero dizer, sua saída.
Trzy respostas:
burger
2018-01-08 09:45:36 UTC
view on stackexchange narkive permalink

Não acho que você pode concluir que o conjunto de dados é terrível com base naquele PCA. Dependendo do protocolo específico, cada conjunto de dados scRNA-seq será muito diferente. Ao contrário do bulk RNA-seq, onde todas as amostras serão de qualidade muito semelhante, as células individuais serão altamente variáveis. Por exemplo, a métrica de QC mais básica é o número de leituras. Se algumas de suas amostras de RNA-seq em massa têm 10 vezes mais leituras do que outras amostras, isso é motivo de preocupação. Em experimentos de scRNA-seq, isso não é nada surpreendente. O PCA expõe as principais fontes de variação. No experimento scRNA-seq, eles provavelmente serão técnicos, em vez de biológicos, portanto, a saída pode não fazer muito sentido. Além disso, mesmo se todas as células forem de qualidade perfeita, o PCA não é realmente ideal para dados esparsos com muitas perdas, como você vê com scRNA-seq.

Independentemente do PCA, esses tamanhos de biblioteca parecem muito pequenos. Com base em seu gráfico, quase não existem células com mais de 10K leituras. Eu entendo que isso é C elegans, mas parece um pouco baixo. Pode ser por isso que você está tendo problemas com a normalização. Ajudaria a entender os dados se você alterasse o eixo X nesses gráficos para que pudesse realmente ver onde está o pico. No momento, parece 0, mas não pode ser o caso.

Patrick Roelli
2018-01-09 15:18:39 UTC
view on stackexchange narkive permalink

Normalmente uso um mínimo de 200 genes / célula para filtros relaxados (500 se possível). Para genes, uso a presença em pelo menos 10% das células.

Alguns outros filtros que você pode tentar são:

  • Alta porcentagem de leituras de apenas 50 genes principais. Isso significa que você não capturou muitos genes e a diversidade da célula não será útil.
  • Alta porcentagem de genes mitocondriais. Foi relatado que isso está relacionado a células de má qualidade. A ideia é que o mRNA é esgotado por causa da morte celular precoce (ou outra lesão da membrana externa) levando a ter apenas mRNA mito restante.
  • Mínimo UMI por células. Semelhante aos genes mínimos, mas mais dependente do protocolo usado.
  • UMI por gene / célula. Isso pode ser interessante para detectar um viés potencial da amplificação e também depende do protocolo.

O melhor seria comparar todas as suas amostras usando gráficos de violino com esses diferentes filtros e escolher seus limites a partir daí. Um exemplo rápido (usando Seurat):

Pré-filtragem: enter image description here

Filtragem de postagem: enter image description here

Eu gosto dessa métrica das 50 principais frações. Alguma ideia de por que é tão claramente bimodal? Está correlacionado com a porcentagem mitocondrial?
A maioria deles sim. Eu não olhei para eles especificamente, mas tenho certeza que algumas outras células também são filtradas com este.
gringer
2018-01-08 05:28:57 UTC
view on stackexchange narkive permalink

Dado que se trata de resultados de sequenciamento de célula única, você deve usar rowSums em vez de rowMeans para filtrar genes. A maioria dos genes não será expressa em um único nível de célula, mas deve haver muitos genes com alguma expressão. As contagens zero são provavelmente melhor representadas como "ausentes" em vez de zero.

Infelizmente, esse recurso torna a execução de PCAs difícil, porque os PCAs não funcionam com valores ausentes. Os valores ausentes podem precisar ser imputados a fim de gerar um PCA melhor.

isenção de responsabilidade: Eu [normalmente] não trabalho com dados de célula única, então não tenho um bom controle sobre os métodos para olhando para ele.



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...