Source code for mgnipy.V2.proxies.analyses
from typing import Any, ClassVar, Literal, Optional
import pandas as pd
from mgnipy.V2.datasets import MGazine
from mgnipy.V2.proxies import MGnifyDetail, MGnifyList
[docs]
class Analyses(MGnifyList):
RESOURCE: ClassVar[Literal["analyses"]] = "analyses"
def __init__(
self,
*,
params: Optional[dict[str, Any]] = None,
config: Optional[dict] = None,
**kwargs,
):
super().__init__(params=params, config=config, **kwargs)
[docs]
def downloads_df(self, **pd_kwargs) -> pd.DataFrame:
return pd.DataFrame(self.details_downloads, **pd_kwargs)
@property
def datasets(self):
"""A property that returns an MGazine instance containing the downloads information for the study."""
return MGazine(
downloads=self.details_downloads,
config=self.config,
analyses_details=self.details_results,
)
[docs]
class AnalysisDetail(MGnifyDetail):
RESOURCE: ClassVar[Literal["analysis"]] = "analysis"
def __init__(
self,
id: Optional[str] = None,
*,
accession: Optional[str] = None,
config: Optional[dict] = None,
**kwargs,
):
super().__init__(
id=id or accession,
config=config,
**kwargs,
)
@property
def datasets(self):
"""Access the downloads for this analysis as a MGazine object."""
return MGazine(
downloads=self.downloads,
config=self.config,
analyses_details=self._results.get(1, None),
)