I neither see outliers here. There looks to be good separation between B6, ET, and GF along both PC1 and PC2, in fact. Proceed with your analysis as it is.
Cook's Distance is one of the chief metrics used to assess outliers.
Going by a PCA bi-plot, one would look are various things:
- % variation explained along axes
- each sample's value to each PC (a true outlier may have a value of, e.g., -200, while all other samples are 'scrunched up' between -20 and +20 [along PC1])
- Z-score of each sample's value (for example, a Z-score >3 along PC1 can be assumed outlier)
Edit: you pasted your code just as I was typing. Although there are outlier genes in that sample, the sample itself is not an outlier. In addition, there are most likely outlier genes in the other samples, too. Biology doesn't follow the rules that we'd like it [to follow]. Whilst we desperately would like everything to fit neatly into our statistical models, things never do. I see minimal justification for removing any sample from your study based on the information that you've provided. If you wanted to re-do normalisation and set a harder threshold for filtering low count transcripts, then that may work.
Note Bene: it looks like you've used the PCA function that's in-built into DESeq2. That function automatically removes a large proportion of your genes based on low variance without even informing the user (it should inform because all users would naturally assume that all transcripts are being used). If you wanted to perform an entirely unbiased PCA analysis, then use my code that utilises base R functions: A: PCA plot from read count matrix from RNA-Seq (start from your regularised log expression levels)




For future reference : How to add images to a Biostars post