Repository: mne-tools/mne-python

Issue:
find_bads_muscle() can't find sensor positions
### Description of the problem

When using the newly introduced `ica.find_bads_muscle` it seems like the function cannot find the sensor positions, even though they should be included in the file and/or be accessible to MNE generally by default.

```Python
ValueError: The following electrodes have overlapping positions, which causes problems during visualization: [... list of all 306 channels]
```


### Steps to reproduce

```Python
import os
import mne
from mne.preprocessing import ICA

sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample',
                                    'sample_audvis_raw.fif')
raw = mne.io.read_raw_fif(sample_data_raw_file,  preload=True)
raw.resample(100)
ica =ICA(40, method='picard')
ica.fit(raw)

ica.find_bads_muscle(raw)
```

### Expected results

MNE automatically finds the channel montage, as is done when plotting the sensor positions via `raw.plot_sensors("3d")`

But may I'm also not applying the function correct. In this case, please let me know.

### Actual results

```Python

  File "Ü:\analysis\untitled1.py", line 19, in <module>
    ica.find_bads_muscle(raw)

  File "<decorator-gen-571>", line 12, in find_bads_muscle

  File "Ü:\\anaconda3\lib\site-packages\mne\preprocessing\ica.py", line 1790, in find_bads_muscle
    pos = _find_topomap_coords(inst.info, picks='data', sphere=sphere)

  File "Ü:\anaconda3\lib\site-packages\mne\channels\layout.py", line 677, in _find_topomap_coords
    pos = _auto_topomap_coords(

  File "Ü:\anaconda3\lib\site-packages\mne\channels\layout.py", line 776, in _auto_topomap_coords
    raise ValueError('The following electrodes have overlapping positions,'

ValueError: The following electrodes have overlapping positions, which causes problems during visualization: [... list of all 306 channels]
```


### Additional information
```
Platform:         Windows-10-10.0.19043-SP0
Python:           3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]
Executable:      Ü:\anaconda3\python.exe
CPU:              AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD: 24 cores
Memory:           31.9 GB

mne:              1.2.1
numpy:            1.23.3 {OpenBLAS 0.3.20 with 24 threads}
scipy:            1.9.2
matplotlib:       3.5.1 {backend=Qt5Agg}
```


Discussion:

Resolving patch:
diff --git a/mne/preprocessing/ica.py b/mne/preprocessing/ica.py
--- a/mne/preprocessing/ica.py
+++ b/mne/preprocessing/ica.py
@@ -1790,7 +1790,12 @@ def find_bads_muscle(self, inst, threshold=0.5, start=None,
 
         # compute metric #2: distance from the vertex of focus
         components_norm = abs(components) / np.max(abs(components), axis=0)
-        pos = _find_topomap_coords(inst.info, picks='data', sphere=sphere)
+        # we need to retrieve the position from the channels that were used to
+        # fit the ICA. N.B: picks in _find_topomap_coords includes bad channels
+        # even if they are not provided explicitly.
+        pos = _find_topomap_coords(
+            inst.info, picks=self.ch_names, sphere=sphere, ignore_overlap=True
+        )
         assert pos.shape[0] == components.shape[0]  # pos for each sensor
         pos -= pos.mean(axis=0)  # center
         dists = np.linalg.norm(pos, axis=1)


Test patch:
diff --git a/mne/preprocessing/tests/test_ica.py b/mne/preprocessing/tests/test_ica.py
--- a/mne/preprocessing/tests/test_ica.py
+++ b/mne/preprocessing/tests/test_ica.py
@@ -1436,6 +1436,12 @@ def test_ica_labels():
     assert ica.labels_['muscle'] == [0]
     assert_allclose(scores, [0.81, 0.14, 0.37, 0.05], atol=0.03)
 
+    ica = ICA(n_components=4, max_iter=2, method='fastica', allow_ref_meg=True)
+    with pytest.warns(UserWarning, match='did not converge'):
+        ica.fit(raw, picks="eeg")
+    ica.find_bads_muscle(raw)
+    assert 'muscle' in ica.labels_
+
 
 @requires_sklearn
 @testing.requires_testing_data