Esempio n. 1
0
    def filter_trf_gff_by_exact_copy_number(input_gff,
                                            output_gff,
                                            filtered_out_gff,
                                            min_copy_number,
                                            perfect_tandem=False):

        if perfect_tandem:

            def filtering_expression(gff_description_dict):
                if (gff_description_dict["Pattern"] *
                        min_copy_number) in gff_description_dict["seq"]:
                    return True
                return False
        else:

            def filtering_expression(gff_description_dict):

                if gff_description_dict["seq"].count(
                        gff_description_dict["Pattern"]) >= min_copy_number:
                    return True
                return False

        AnnotationsRoutines.filter_gff_by_description(input_gff, output_gff,
                                                      filtered_out_gff,
                                                      filtering_expression)
Esempio n. 2
0
    def filter_trf_gff(self,
                       input_gff,
                       output_gff,
                       filtered_out_gff,
                       min_period=None,
                       max_period=None,
                       min_copy_number=None,
                       max_copy_number=None,
                       pattern=None,
                       min_percentage_of_matches=None,
                       max_percentage_of_indels=None,
                       min_entropy=None,
                       max_entropy=None):
        def filtering_expression(gff_description_dict):
            return self.gff_filtering_expression(
                gff_description_dict,
                min_period=min_period,
                max_period=max_period,
                min_copy_number=min_copy_number,
                max_copy_number=max_copy_number,
                pattern=pattern,
                min_percentage_of_matches=min_percentage_of_matches,
                max_percentage_of_indels=max_percentage_of_indels,
                min_entropy=min_entropy,
                max_entropy=max_entropy)

        AnnotationsRoutines.filter_gff_by_description(input_gff, output_gff,
                                                      filtered_out_gff,
                                                      filtering_expression)