This function conducts an mclust analysis of the PCA results of a
`Spectra`

object and displays the results in 3D. Classical or
robust confidence ellipses can be added if desired. Improperly classified
data points can be marked. The interactive plot is made via `plotly`

and appears in a browser window. Note that the confidence ellipses computed
here are generated independently of the `Mclust`

results - they do not
correspond to the ellipses seen in 2D plots from `Mclust`

.

```
mclust3dSpectra(
spectra,
pca,
pcs = 1:3,
ellipse = TRUE,
rob = FALSE,
cl = 0.95,
frac.pts.used = 0.8,
truth = NULL,
...
)
```

- spectra
An object of S3 class

`Spectra()`

.- pca
An object of class

`prcomp`

.- pcs
An integer vector describing which PCs to use.

- ellipse
Logical indicating if confidence ellipses should be drawn.

- rob
Logical; if

`ellipse = TRUE`

, indicates that robust confidence ellipses should be drawn. If`FALSE`

, classical confidence ellipses are drawn.- cl
A number indicating the confidence interval for the ellipse.

- frac.pts.used
If

`ellipse = TRUE`

and`rob = TRUE`

, a number indicating the fraction of the data points to be considered "good" and thus used to compute the robust confidence ellipse.- truth
A character vector indicating the known group membership for reach row of the PC scores. Generally this would be

`spectra$groups`

.- ...
Arguments to be passed to

`mclust`

.

The mclust model is returned invisibly, and a plot is produced.

`Mclust`

for background on the method.
Additional documentation at https://bryanhanson.github.io/ChemoSpec/

```
if (FALSE) {
require(mclust)
data(metMUD1)
pca <- c_pcaSpectra(metMUD1)
mclust3dSpectra(metMUD1, pca)
# show mis-classified points
mclust3dSpectra(metMUD1, pca, truth = metMUD1$groups)
}
```