filter_nonorthologs
Takes the filenames of CellTypeData files,
loads them, drops any genes which don't have a 1:1 orthologs with humans,
and then convert the gene to human orthologs.
The new files are then saved to disk, appending
'_orthologs' to the file name.
filter_nonorthologs(
filenames,
input_species = NULL,
convert_nonhuman_genes = TRUE,
annot_levels = NULL,
suffix = "_orthologs",
method = "homologene",
non121_strategy = "drop_both_species",
verbose = TRUE,
...
)
List of file names for sct_data saved as .rda files.
Which species the gene names in exp
come from.
Whether to convert the exp
row names to human gene names.
[Optional] Names of each annotation level.
Suffix to add to the file name (right before .rda).
R package to use for gene mapping:
"gprofiler"
: Slower but more species and genes.
"homologene"
: Faster but fewer species and genes.
"babelgene"
: Faster but fewer species and genes.
Also gives consensus scores for each gene mapping based on a
several different data sources.
How to handle genes that don't have
1:1 mappings between input_species
:output_species
.
Options include:
"drop_both_species" or "dbs" or 1
:
Drop genes that have duplicate
mappings in either the input_species
or output_species
(DEFAULT).
"drop_input_species" or "dis" or 2
:
Only drop genes that have duplicate
mappings in the input_species
.
"drop_output_species" or "dos" or 3
:
Only drop genes that have duplicate
mappings in the output_species
.
"keep_both_species" or "kbs" or 4
:
Keep all genes regardless of whether
they have duplicate mappings in either species.
"keep_popular" or "kp" or 5
:
Return only the most "popular" interspecies ortholog mappings.
This procedure tends to yield a greater number of returned genes
but at the cost of many of them not being true biological 1:1 orthologs.
"sum","mean","median","min" or "max"
:
When gene_df
is a matrix and gene_output="rownames"
,
these options will aggregate many-to-one gene mappings
(input_species
-to-output_species
)
after dropping any duplicate genes in the output_species
.
Print messages.
Arguments passed on to orthogene::convert_orthologs
gene_df
Data object containing the genes
(see gene_input
for options on how
the genes can be stored within the object).
Can be one of the following formats:
matrix
:
A sparse or dense matrix.
data.frame
:
A data.frame
,
data.table
. or tibble
.
codelist :
A list
or character vector
.
Genes, transcripts, proteins, SNPs, or genomic ranges
can be provided in any format
(HGNC, Ensembl, RefSeq, UniProt, etc.) and will be
automatically converted to gene symbols unless
specified otherwise with the ...
arguments.
Note: If you set method="homologene"
, you
must either supply genes in gene symbol format (e.g. "Sox2")
OR set standardise_genes=TRUE
.
gene_input
Which aspect of gene_df
to
get gene names from:
"rownames"
:
From row names of data.frame/matrix.
"colnames"
:
From column names of data.frame/matrix.
<column name>
:
From a column in gene_df
,
e.g. "gene_names"
.
gene_output
How to return genes.
Options include:
"rownames"
:
As row names of gene_df
.
"colnames"
:
As column names of gene_df
.
"columns"
:
As new columns "input_gene", "ortholog_gene"
(and "input_gene_standard" if standardise_genes=TRUE
)
in gene_df
.
"dict"
:
As a dictionary (named list) where the names
are input_gene and the values are ortholog_gene.
"dict_rev"
:
As a reversed dictionary (named list)
where the names are ortholog_gene and the values are input_gene.
standardise_genes
If TRUE
AND
gene_output="columns"
, a new column "input_gene_standard"
will be added to gene_df
containing standardised HGNC symbols
identified by gorth.
output_species
Name of the output species (e.g. "human","chicken"). Use map_species to return a full list of available species.
drop_nonorths
Drop genes that don't have an ortholog
in the output_species
.
agg_fun
Aggregation function passed to
aggregate_mapped_genes.
Set to NULL
to skip aggregation step (default).
mthreshold
Maximum number of ortholog names per gene to show.
Passed to gorth.
Only used when method="gprofiler"
(DEFAULT : Inf
).
as_sparse
Convert gene_df
to a sparse matrix.
Only works if gene_df
is one of the following classes:
matrix
Matrix
data.frame
data.table
tibble
If gene_df
is a sparse matrix to begin with,
it will be returned as a sparse matrix
(so long as gene_output=
"rownames"
or "colnames"
).
as_DelayedArray
Convert aggregated matrix to DelayedArray.
sort_rows
Sort gene_df
rows alphanumerically.
gene_map
A data.frame that maps the current gene names to new gene names. This function's behaviour will adapt to different situations as follows:
gene_map=<data.frame>
:
When a data.frame containing the
gene key:value columns
(specified by input_col
and output_col
, respectively)
is provided, this will be used to perform aggregation/expansion.
gene_map=NULL
and input_species!=output_species
:
A gene_map
is automatically generated by
map_orthologs to perform inter-species
gene aggregation/expansion.
gene_map=NULL
and input_species==output_species
:
A gene_map
is automatically generated by
map_genes to perform within-species
gene gene symbol standardization and aggregation/expansion.
input_col
Column name within gene_map
with gene names matching
the row names of X
.
output_col
Column name within gene_map
with gene names
that you wish you map the row names of X
onto.
List of the filtered CellTypeData file names.
Note: This function replaces the original
filter_genes_without_1to1_homolog
function.
filter_genes_without_1to1_homolog
is
now a wrapper for filter_nonorthologs
.
# Load the single cell data
ctd <- ewceData::ctd()
#> see ?ewceData and browseVignettes('ewceData') for documentation
#> loading from cache
tmp <- tempfile()
save(ctd, file = tmp)
fNames_ALLCELLS_orths <- EWCE::filter_nonorthologs(filenames = tmp)
#> No input_species provided. Setting to 'mouse'
#> + Processing level 1 ...
#> Processing mean_exp
#> Processing median_exp
#> Processing specificity
#> Processing median_specificity
#> Processing specificity_quantiles
#> + Processing level 2 ...
#> Processing mean_exp
#> Processing median_exp
#> Processing specificity
#> Processing median_specificity
#> Processing specificity_quantiles