def METHOD_NAME(self, params: Optional[ParamType] = ParamType(), focusedFields: List[str] = [], bgKnowledges: Optional[List[common.BgKnowledge]] = [], **kwargs):
    array = self.selectArray(focusedFields=focusedFields, params=params)
    # common.checkLinearCorr(array)
    print(array, array.min(), array.max())
    self.G, self.edges = fci(array, **params.__dict__, background_knowledge=None, cache_path=self.__class__.cache_path, verbose=self.__class__.verbose)
    if bgKnowledges and len(bgKnowledges) > 0:
        bk = self.constructBgKnowledge(bgKnowledges=bgKnowledges, f_ind={fid: i for i, fid in enumerate(focusedFields)})
        self.G, self.edges = fci(array, **params.__dict__, background_knowledge=bk, cache_path=self.__class__.cache_path, verbose=self.__class__.verbose)
    l = self.G.graph.tolist()
    return {
        'data': l,
        'matrix': l,
        'fields': self.safeFieldMeta(self.focusedFields),
        'edges': self.edges