Skip to content

Commit 95dc2db

Browse files
committed
refactor: do not drop na values, keep as much data for as long as possible
Signed-off-by: Josh Loecker <joshloecker@icloud.com>
1 parent 60a883a commit 95dc2db

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

main/como/rnaseq_gen.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -166,18 +166,18 @@ async def _build_matrix_results(
166166
Returns:
167167
A dataclass `ReadMatrixResults`
168168
"""
169-
matrix.dropna(subset="ensembl_gene_id", inplace=True)
170169
conversion = await ensembl_to_gene_id_and_symbol(ids=matrix["ensembl_gene_id"].tolist(), taxon=taxon)
171170

172-
# If any one column was
173-
if any(conversion[col].eq("-").all() for col in conversion.columns):
171+
# If all columns are empty, it is indicative that the incorrect taxon id was provided
172+
if all(conversion[col].eq("-").all() for col in conversion.columns):
174173
logger.critical(f"Conversion of Ensembl Gene IDs to Entrez IDs and Gene Symbols was empty - is '{taxon}' the correct taxon ID for this data?")
175174

176-
conversion["ensembl_gene_id"] = conversion["ensembl_gene_id"].str.split(",")
177-
conversion = conversion.explode("ensembl_gene_id")
178-
conversion.reset_index(inplace=True, drop=True)
179-
conversion = conversion[conversion["entrez_gene_id"] != "-"] # drop missing entrez IDs
180-
conversion["entrez_gene_id"] = conversion["entrez_gene_id"].astype(int) # float32 is needed because np.nan is a float
175+
# 2025-NOV-3: commented out `conversion` types to evaluate if it can be skipped
176+
# conversion["ensembl_gene_id"] = conversion["ensembl_gene_id"].str.split(",")
177+
# conversion = conversion.explode("ensembl_gene_id")
178+
# conversion.reset_index(inplace=True, drop=True)
179+
# conversion = conversion[conversion["entrez_gene_id"] != "-"] # drop missing entrez IDs
180+
# conversion["entrez_gene_id"] = conversion["entrez_gene_id"].astype(int) # float32 is needed because np.nan is a float
181181

182182
# merge_on should contain at least one of "ensembl_gene_id", "entrez_gene_id", or "gene_symbol"
183183
merge_on: list[str] = list(set(matrix.columns).intersection(conversion.columns))
@@ -195,11 +195,11 @@ async def _build_matrix_results(
195195
matrix = matrix.merge(conversion, on=merge_on, how="left")
196196

197197
# drop rows that have `0` in `entrez_gene_id` column
198-
matrix = matrix[matrix["entrez_gene_id"] != 0].reset_index(drop=True, inplace=False)
199-
gene_info = gene_info[gene_info["entrez_gene_id"] != 0].reset_index(drop=True, inplace=False)
198+
# matrix = matrix[matrix["entrez_gene_id"] != 0].reset_index(drop=True, inplace=False)
199+
# gene_info = gene_info[gene_info["entrez_gene_id"] != 0].reset_index(drop=True, inplace=False)
200200

201201
gene_info = gene_info_migrations(gene_info)
202-
gene_info["entrez_gene_id"] = gene_info["entrez_gene_id"].astype(int)
202+
# gene_info["entrez_gene_id"] = gene_info["entrez_gene_id"].astype(int)
203203

204204
counts_matrix = matrix.merge(
205205
gene_info[["entrez_gene_id", "ensembl_gene_id"]],

0 commit comments

Comments
 (0)