Ejemplo n.º 1
0
def lift_original_annotation(ref_chroms, target_chroms, lifted_features_list, args, unmapped_features, parents_to_lift):
    liftover_type = "chrm_by_chrm"
    if target_chroms[0] == args.t and args.exclude_partial == False:
        min_cov, min_seqid = 0.0, 0.0
    else:
        min_cov, min_seqid = args.a, args.s
    feature_hierarchy, feature_db, ref_parent_order = extract_features.extract_features_to_lift(ref_chroms,
                                                                                                liftover_type,
                                                                                                parents_to_lift, args)
    align_and_lift_features(ref_chroms, target_chroms, args, feature_hierarchy, liftover_type, unmapped_features,
                            feature_db,
                            feature_hierarchy.parents, lifted_features_list, ref_parent_order, min_cov, min_seqid)
    return feature_db, feature_hierarchy, ref_parent_order
Ejemplo n.º 2
0
def lift_original_annotation(gff, target_fasta, reference_fasta, ref_chroms,
                             target_chroms, processes, db, lifted_feature_list,
                             unmapped_features, infer_transcripts, infer_genes,
                             cov_threshold, seq_threshold, minimap2_path,
                             inter_files, max_alns, parents_to_lift):
    liftover_type = "chrm_by_chrm"
    if target_chroms[0] == target_fasta:
        cov_threshold, seq_threshold = 0, 0
    parent_dict, children_dict, intermediate_dict, feature_db, original_parent_order = extract_features.extract_features_to_lift(
        gff, db, ref_chroms, reference_fasta, processes, infer_transcripts,
        infer_genes, inter_files, liftover_type, parents_to_lift)
    aligned_segments = align_features.align_features_to_target(
        ref_chroms, target_chroms, processes, target_fasta, parent_dict,
        children_dict, liftover_type, unmapped_features, reference_fasta,
        minimap2_path, inter_files, True, max_alns)

    print("lifting features")
    lift_features.lift_all_features(aligned_segments, {}, cov_threshold,
                                    feature_db, parent_dict, children_dict,
                                    intermediate_dict, unmapped_features,
                                    lifted_feature_list, seq_threshold)
    fix_overlapping_features.fix_incorrectly_overlapping_features(
        lifted_feature_list, lifted_feature_list, parent_dict,
        aligned_segments, unmapped_features, cov_threshold, intermediate_dict,
        children_dict, feature_db, original_parent_order, seq_threshold)
    return feature_db, parent_dict, intermediate_dict, children_dict, original_parent_order