public void fill_proteoform_families(string filter, int decoyCommunityMinusOneIsTarget)
        {
            IEnumerable <object> families = filter == "" ?
                                            (decoyCommunityMinusOneIsTarget < 0 ?
                                             SaveState.lollipop.target_proteoform_community.families.OrderByDescending(f => f.relations.Count) :
                                             SaveState.lollipop.decoy_proteoform_communities[SaveState.lollipop.decoy_community_name_prefix + decoyCommunityMinusOneIsTarget].families.OrderByDescending(f => f.relations.Count)) :
                                            (decoyCommunityMinusOneIsTarget < 0 ?
                                             ExtensionMethods.filter(SaveState.lollipop.target_proteoform_community.families.OrderByDescending(f => f.relations.Count), filter)
                : ExtensionMethods.filter(SaveState.lollipop.decoy_proteoform_communities[SaveState.lollipop.decoy_community_name_prefix + decoyCommunityMinusOneIsTarget].families.OrderByDescending(f => f.relations.Count), filter));

            DisplayUtility.FillDataGridView(dgv_main, families.OfType <ProteoformFamily>().Select(f => new DisplayProteoformFamily(f)));
            DisplayProteoformFamily.format_families_dgv(dgv_main);
        }