def process_labels(contigs_fpaths, labels, all_labels_from_dirs): # 1. labels if the provided by -l options if labels: # process duplicates, empties for i, label in enumerate(labels): if not label: labels[i] = get_label_from_par_dir_and_fname(contigs_fpaths[i]) # 2. labels from parent directories if -L flag was privided elif all_labels_from_dirs: labels = get_labels_from_par_dirs(contigs_fpaths) # 3. otherwise, labels from fnames else: # labels from fname labels = [qutils.rm_extentions_for_fasta_file(os.path.basename(fpath)) for fpath in contigs_fpaths] for duplicated_label in get_duplicated(labels): for i, (label, fpath) in enumerate(zip(labels, contigs_fpaths)): if label == duplicated_label: labels[i] = get_label_from_par_dir_and_fname(contigs_fpaths[i]) # fixing remaining duplicates by adding index for duplicated_label in get_duplicated(labels): j = 0 for i, (label, fpath) in enumerate(zip(labels, contigs_fpaths)): if label == duplicated_label: if j == 0: labels[i] = label else: labels[i] = label + ' ' + str(j) j += 1 return labels
def process_labels(contigs_fpaths, labels, all_labels_from_dirs): # 1. labels if the provided by -l options if labels: # process duplicates, empties for i, label in enumerate(labels): if not label: labels[i] = get_label_from_par_dir_and_fname(contigs_fpaths[i]) # 2. labels from parent directories if -L flag was privided elif all_labels_from_dirs: labels = get_labels_from_par_dirs(contigs_fpaths) # 3. otherwise, labels from fnames else: # labels from fname labels = [qutils.rm_extentions_for_fasta_file(os.path.basename(fpath)) for fpath in contigs_fpaths] for duplicated_label in get_duplicated(labels): for i, (label, fpath) in enumerate(zip(labels, contigs_fpaths)): if label == duplicated_label: labels[i] = get_label_from_par_dir_and_fname(contigs_fpaths[i]) # fixing remaining duplicates by adding index for duplicated_label in get_duplicated(labels): j = 0 for i, (label, fpath) in enumerate(zip(labels, contigs_fpaths)): if label == duplicated_label: if j == 0: labels[i] = label else: labels[i] = label + ' ' + str(j) j += 1 return labels
def get_label_from_par_dir_and_fname(contigs_fpath): abspath = os.path.abspath(contigs_fpath) name = qutils.rm_extentions_for_fasta_file(os.path.basename(contigs_fpath)) label = os.path.basename(os.path.dirname(abspath)) + '_' + name return label
def get_label_from_par_dir_and_fname(contigs_fpath): abspath = os.path.abspath(contigs_fpath) name = qutils.rm_extentions_for_fasta_file(os.path.basename(contigs_fpath)) label = os.path.basename(os.path.dirname(abspath)) + '_' + name return label