@@ -350,7 +350,7 @@ def __str__(self) -> str:
350350 ######>> reduced_dims <<######
351351 ##############################
352352
353- def get_reduced_dims (self ) -> Dict [str , Any ]:
353+ def get_reduced_dimensions (self ) -> Dict [str , Any ]:
354354 """Access dimensionality embeddings.
355355
356356 Returns:
@@ -359,7 +359,11 @@ def get_reduced_dims(self) -> Dict[str, Any]:
359359 """
360360 return self ._reduced_dims
361361
362- def set_reduced_dims (self , reduced_dims : Dict [str , Any ], in_place : bool = False ) -> "SingleCellExperiment" :
362+ def get_reduced_dims (self ) -> Dict [str , Any ]:
363+ """Alias for :py:meth:`~get_reduced_dimensions`, for back-compatibility."""
364+ return self .get_reduced_dimensions ()
365+
366+ def set_reduced_dimensions (self , reduced_dims : Dict [str , Any ], in_place : bool = False ) -> "SingleCellExperiment" :
363367 """Set new reduced dimensions.
364368
365369 Args:
@@ -379,33 +383,55 @@ def set_reduced_dims(self, reduced_dims: Dict[str, Any], in_place: bool = False)
379383 output ._reduced_dims = reduced_dims
380384 return output
381385
386+ def set_reduced_dims (self , reduced_dims : Dict [str , Any ], in_place : bool = False ) -> "SingleCellExperiment" :
387+ """Alias for :py:meth:`~set_reduced_dimensions`, for back-compatibility."""
388+ return self .set_reduced_dimensions (reduced_dims = reduced_dims , in_place = in_place )
389+
382390 @property
383391 def reduced_dims (self ) -> Dict [str , Any ]:
384- """Alias for :py:meth:`~get_reduced_dims `."""
385- return self .get_reduced_dims ()
392+ """Alias for :py:meth:`~get_reduced_dimensions `."""
393+ return self .get_reduced_dimensions ()
386394
387395 @reduced_dims .setter
388396 def reduced_dims (self , reduced_dims : Dict [str , Any ]):
389- """Alias for :py:meth:`~set_reduced_dims `."""
397+ """Alias for :py:meth:`~set_reduced_dimensions `."""
390398 warn (
391- "Setting property 'reduced_dims' is an in-place operation, use 'set_reduced_dims ' instead" ,
399+ "Setting property 'reduced_dims' is an in-place operation, use 'set_reduced_dimensions ' instead" ,
392400 UserWarning ,
393401 )
394- self .set_reduced_dims (reduced_dims , in_place = True )
402+ self .set_reduced_dimensions (reduced_dims , in_place = True )
403+
404+ @property
405+ def reduced_dimensionss (self ) -> Dict [str , Any ]:
406+ """Alias for :py:meth:`~get_reduced_dimensions`."""
407+ return self .get_reduced_dimensions ()
408+
409+ @reduced_dimensionss .setter
410+ def reduced_dimensions (self , reduced_dims : Dict [str , Any ]):
411+ """Alias for :py:meth:`~set_reduced_dimensions`."""
412+ warn (
413+ "Setting property 'reduced_dimensions' is an in-place operation, use 'set_reduced_dimensions' instead" ,
414+ UserWarning ,
415+ )
416+ self .set_reduced_dimensions (reduced_dims , in_place = True )
395417
396418 ####################################
397419 ######>> reduced_dims_names <<######
398420 ####################################
399421
400- def get_reduced_dim_names (self ) -> List [str ]:
422+ def get_reduced_dimension_names (self ) -> List [str ]:
401423 """Access reduced dimension names.
402424
403425 Returns:
404426 List of reduced dimensionality names.
405427 """
406428 return list (self ._reduced_dims .keys ())
407429
408- def set_reduced_dim_names (self , names : List [str ], in_place : bool = False ) -> "SingleCellExperiment" :
430+ def get_reduced_dim_names (self ) -> Dict [str , Any ]:
431+ """Alias for :py:meth:`~get_reduced_dimension_names`, for back-compatibility."""
432+ return self .get_reduced_dimension_names ()
433+
434+ def set_reduced_dimension_names (self , names : List [str ], in_place : bool = False ) -> "SingleCellExperiment" :
409435 """Replace :py:attr:`~.reduced_dims`'s names.
410436
411437 Args:
@@ -431,29 +457,47 @@ def set_reduced_dim_names(self, names: List[str], in_place: bool = False) -> "Si
431457 output ._reduced_dims = new_reduced_dims
432458 return output
433459
460+ def set_reduced_dim_names (self , names : List [str ], in_place : bool = False ) -> "SingleCellExperiment" :
461+ """Alias for :py:meth:`~set_reduced_dimension_names`, for back-compatibility."""
462+ return self .set_reduced_dimension_names (names = names , in_place = in_place )
463+
434464 @property
435465 def reduced_dim_names (self ) -> List [str ]:
436- """Alias for :py:meth:`~get_reduced_dim_names `."""
437- return self .get_reduced_dim_names ()
466+ """Alias for :py:meth:`~get_reduced_dimension_names `."""
467+ return self .get_reduced_dimension_names ()
438468
439469 @reduced_dim_names .setter
440470 def reduced_dim_names (self , names : List [str ]):
441- """Alias for :py:meth:`~set_reduced_dim_names`."""
471+ """Alias for :py:meth:`~set_reduced_dimension_names`."""
472+ warn (
473+ "Renaming names of property 'reduced_dims' is an in-place operation, use 'set_reduced_dimension_names' instead" ,
474+ UserWarning ,
475+ )
476+ self .set_reduced_dimension_names (names , in_place = True )
477+
478+ @property
479+ def reduced_dimension_names (self ) -> List [str ]:
480+ """Alias for :py:meth:`~get_reduced_dimension_names`."""
481+ return self .get_reduced_dimension_names ()
482+
483+ @reduced_dimension_names .setter
484+ def reduced_dimension_names (self , names : List [str ]):
485+ """Alias for :py:meth:`~set_reduced_dimension_names`."""
442486 warn (
443- "Renaming names of property 'reduced_dims' is an in-place operation, use 'set_reduced_dim_names ' instead" ,
487+ "Renaming names of property 'reduced_dims' is an in-place operation, use 'set_reduced_dimension_names ' instead" ,
444488 UserWarning ,
445489 )
446- self .set_reduced_dim_names (names , in_place = True )
490+ self .set_reduced_dimension_names (names , in_place = True )
447491
448492 ####################################
449493 ######>> reduced_dim getter <<######
450494 ####################################
451495
452- def reduced_dim (self , dimension : Union [str , int ]) -> Any :
496+ def get_reduced_dimension (self , name : Union [str , int ]) -> Any :
453497 """Access an embedding by name.
454498
455499 Args:
456- dimension :
500+ name :
457501 Name or index position of the reduced dimension.
458502
459503 Raises:
@@ -465,21 +509,48 @@ def reduced_dim(self, dimension: Union[str, int]) -> Any:
465509 Returns:
466510 The embedding.
467511 """
468- if isinstance (dimension , int ):
469- if dimension < 0 :
512+ if isinstance (name , int ):
513+ if name < 0 :
470514 raise IndexError ("Index cannot be negative." )
471515
472- if dimension > len (self .reduced_dim_names ):
516+ if name > len (self .reduced_dim_names ):
473517 raise IndexError ("Index greater than the number of reduced dimensions." )
474518
475- return self ._reduced_dims [self .reduced_dim_names [dimension ]]
476- elif isinstance (dimension , str ):
477- if dimension not in self ._reduced_dims :
478- raise AttributeError (f"Reduced dimension: { dimension } does not exist." )
519+ return self ._reduced_dims [self .reduced_dim_names [name ]]
520+ elif isinstance (name , str ):
521+ if name not in self ._reduced_dims :
522+ raise AttributeError (f"Reduced dimension: { name } does not exist." )
523+
524+ return self ._reduced_dims [name ]
525+
526+ raise TypeError (f"'dimension' must be a string or integer, provided '{ type (name )} '." )
527+
528+ def reduced_dim (self , name : Union [str , int ]) -> Any :
529+ """Alias for :py:meth:`~get_reduced_dimension`, for back-compatibility."""
530+ return self .get_reduced_dimension (name = name )
531+
532+ def set_reduced_dimension (self , name : str , embedding : Any , in_place : bool = False ) -> "SingleCellExperiment" :
533+ """Add or replace :py:attr:`~singlecellexperiment.SingleCellExperiment.reduced_dimension`'s.
534+
535+ Args:
536+ name:
537+ New or existing embedding or dimension name.
479538
480- return self ._reduced_dims [dimension ]
539+ embedding:
540+ Embeddings may be represented as a matrix or a data frame, must contain a shape.
481541
482- raise TypeError (f"'dimension' must be a string or integer, provided '{ type (dimension )} '." )
542+ in_place:
543+ Whether to modify the ``SingleCellExperiment`` in place.
544+
545+ Returns:
546+ A modified ``BasSingleCellExperimenteSE`` object, either as a copy of the original
547+ or as a reference to the (in-place-modified) original.
548+ """
549+ output = self ._define_output (in_place )
550+ if in_place is False :
551+ output ._reduced_dims = output ._reduced_dims .copy ()
552+ output ._reduced_dims [name ] = embedding
553+ return output
483554
484555 ################################
485556 ######>> main_expt_name <<######
@@ -629,7 +700,7 @@ def alternative_experiment_names(self, names: List[str]):
629700 ######>> alternative_experiment getter <<######
630701 ###############################################
631702
632- def alternative_experiment (self , name : Union [str , int ]) -> Any :
703+ def get_alternative_experiment (self , name : Union [str , int ]) -> Any :
633704 """Access alternative experiment by name.
634705
635706 Args:
@@ -661,6 +732,35 @@ def alternative_experiment(self, name: Union[str, int]) -> Any:
661732
662733 raise TypeError (f"'name' must be a string or integer, provided '{ type (name )} '." )
663734
735+ def alternative_experiment (self , name : Union [str , int ]) -> Any :
736+ """Alias for :py:meth:`~get_alternative_experiment`, for back-compatibility."""
737+ return self .get_alternative_experiment (name = name )
738+
739+ def set_alternative_experiment (self , name : str , alternative_experiment : Any , in_place : bool = False ) -> "SingleCellExperiment" :
740+ """Add or replace :py:attr:`~singlecellexperiment.SingleCellExperiment.alternative_experiment`'s.
741+
742+ Args:
743+ name:
744+ New or existing alternative experiment name.
745+
746+ alternative_experiment:
747+ Alternative experiments must contain the same cells (rows) as the primary experiment.
748+ Is a subclasses of
749+ :py:class:`~summarizedexperiment.SummarizedExperiment.SummarizedExperiment`.
750+
751+ in_place:
752+ Whether to modify the ``SingleCellExperiment`` in place.
753+
754+ Returns:
755+ A modified ``BasSingleCellExperimenteSE`` object, either as a copy of the original
756+ or as a reference to the (in-place-modified) original.
757+ """
758+ output = self ._define_output (in_place )
759+ if in_place is False :
760+ output ._alternative_experiments = output ._alternative_experiments .copy ()
761+ output ._alternative_experiments [name ] = alternative_experiment
762+ return output
763+
664764 ###########################
665765 ######>> row_pairs <<######
666766 ###########################
0 commit comments