Skip to content

Commit 29b7247

Browse files
authored
Remove typo in PC (#308)
* removing the A in 'PCA' for when we save the embeddings. * renaming pc from pca
1 parent 8c6a2ff commit 29b7247

File tree

4 files changed

+21
-20
lines changed

4 files changed

+21
-20
lines changed

applications/contrastive_phenotyping/evaluation/imagenet_pretrained_features.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
"""Use pre-trained ImageNet models to extract features from images."""
22

33
# %%
4+
from pathlib import Path
5+
6+
import numpy as np
47
import pandas as pd
58
import seaborn as sns
69
import timm
7-
import numpy as np
810
import torch
911
from sklearn.decomposition import PCA
12+
from sklearn.linear_model import LogisticRegression
1013
from sklearn.preprocessing import StandardScaler
1114
from tqdm import tqdm
12-
from pathlib import Path
13-
from sklearn.linear_model import LogisticRegression
1415

1516
from viscy.data.triplet import TripletDataModule
1617
from viscy.transforms import ScaleIntensityRangePercentilesd
@@ -62,7 +63,7 @@
6263
tracks[f"feature_{i}"] = feature
6364
# add pca features to dataframe naming each column with pca_i
6465
for i, feature in enumerate(pca_features.T):
65-
tracks[f"pca_{i}"] = feature
66+
tracks[f"pc_{i}"] = feature
6667

6768
# # save the dataframe as csv
6869
# tracks.to_csv("/hpc/projects/comp.micro/infected_cell_imaging/Single_cell_phenotyping/ContrastiveLearning/code/ALFI/imagenet_pretrained_features.csv", index=False)
@@ -83,13 +84,13 @@
8384

8485
# %%
8586
ax = sns.scatterplot(
86-
x=tracks["pca_0"],
87-
y=tracks["pca_1"],
87+
x=tracks["pc_0"],
88+
y=tracks["pc_1"],
8889
hue=tracks["division"],
8990
legend="full",
9091
)
91-
ax.set_xlabel("PCA1")
92-
ax.set_ylabel("PCA2")
92+
ax.set_xlabel("PC1")
93+
ax.set_ylabel("PC2")
9394

9495
# %% compute the accuracy of the model using a linear classifier
9596

@@ -117,8 +118,8 @@
117118
"id",
118119
"parent_id",
119120
"parent_track_id",
120-
"pca_0",
121-
"pca_1",
121+
"pc_0",
122+
"pc_1",
122123
]
123124
)
124125
y_train = data_train_val["division"]
@@ -137,8 +138,8 @@
137138
"id",
138139
"parent_id",
139140
"parent_track_id",
140-
"pca_0",
141-
"pca_1",
141+
"pc_0",
142+
"pc_1",
142143
]
143144
)
144145
y_test = data_test["division"]

viscy/representation/embedding_writer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def write_embedding_dataset(
159159
_logger.debug("Computing PCA")
160160
PCA_features, _ = compute_pca(features, **pca_kwargs)
161161
for i in range(PCA_features.shape[1]):
162-
ultrack_indices[f"PCA{i + 1}"] = PCA_features[:, i]
162+
ultrack_indices[f"PC{i + 1}"] = PCA_features[:, i]
163163
except Exception as e:
164164
_logger.warning(f"PCA computation failed: {str(e)}")
165165

viscy/representation/evaluation/dimensionality_reduction.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def compute_pca(embedding_dataset, n_components=None, normalize_features=True):
122122

123123
# Add PCA components for features
124124
for i in range(pc_features.shape[1]):
125-
pca_dict[f"PCA{i + 1}"] = pc_features[:, i]
125+
pca_dict[f"PC{i + 1}"] = pc_features[:, i]
126126

127127
# Create DataFrame with all components
128128
pca_df = pd.DataFrame(pca_dict)

viscy/representation/evaluation/visualization.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,15 @@ def _prepare_data(self):
112112
dim_options = []
113113

114114
# Check for PCA and compute if needed
115-
if not any(col.startswith("PCA") for col in self.features_df.columns):
115+
if not any(col.startswith("PC") for col in self.features_df.columns):
116116
# PCA transformation
117117
scaled_features = StandardScaler().fit_transform(features.values)
118118
pca = PCA(n_components=self.num_PC_components)
119119
pca_coords = pca.fit_transform(scaled_features)
120120

121121
# Add PCA coordinates to the features dataframe
122122
for i in range(self.num_PC_components):
123-
self.features_df[f"PCA{i + 1}"] = pca_coords[:, i]
123+
self.features_df[f"PC{i + 1}"] = pca_coords[:, i]
124124

125125
# Store explained variance for PCA
126126
self.pca_explained_variance = [
@@ -130,8 +130,8 @@ def _prepare_data(self):
130130

131131
# Add PCA options
132132
for i, pc_label in enumerate(self.pca_explained_variance):
133-
dim_options.append({"label": pc_label, "value": f"PCA{i + 1}"})
134-
existing_dims.append(f"PCA{i + 1}")
133+
dim_options.append({"label": pc_label, "value": f"PC{i + 1}"})
134+
existing_dims.append(f"PC{i + 1}")
135135

136136
# Check for UMAP coordinates
137137
umap_dims = [col for col in self.features_df.columns if col.startswith("UMAP")]
@@ -153,8 +153,8 @@ def _prepare_data(self):
153153
self.dim_options = dim_options
154154

155155
# Set default x and y axes based on available dimensions
156-
self.default_x = existing_dims[0] if existing_dims else "PCA1"
157-
self.default_y = existing_dims[1] if len(existing_dims) > 1 else "PCA2"
156+
self.default_x = existing_dims[0] if existing_dims else "PC1"
157+
self.default_y = existing_dims[1] if len(existing_dims) > 1 else "PC2"
158158

159159
# Process each FOV and its track IDs
160160
all_filtered_features = []

0 commit comments

Comments
 (0)