DOI: 10.5281/zenodo.18784886
title: Functional Assessment of Orphan Proteins in the Streptomyces Pan-Proteome through Genome-Wide Synteny Analysis

description: Functional Assessment of Orphan Proteins in the Streptomyces Pan-Proteome through Genome-Wide Synteny Analysis

The scripts (Python 3.12.2) and datasets described were used to calculate the co-occurrence between unknown genes, clustered using ALFATClust ( https://doi.org/10.1186/s12859-022-04643-9), and KAAS-annotated genes located within syntenic regions. Dependencies, questions, and other technical details can be asked directly to the authors (matteo.calcagnile@unisalento.it)

 

Datasets

Dataset1_redundant_dataset_R-D (file txt)

Dataset2_non-redundant_dataset_NR-D (file txt)

Dataset3_annotation_list.txt (file txt)

Dataset4_non-redundant_unannotated_dataset_NR-U-D (file txt)

Dataset5_Clusters (file zip)

Dataset6_Coordinates (file zip)

 

Scripts

Script_1_protein_length.py#Before running, set the following paths    input_folder = "/Users/path/fasta_folder" #folder cointaining .faa files    output_folder = "/Users/path/output1”

Script_2_protein_length_plot.py#Before running, set the following path    folder_path = '/Users/path/output1' #from script_1

Script_3_AA_%.py#Before running, set the following paths    input_folder = "/Users/path/fasta_folder" #folder cointaining .faa files    output_folder = "/Users/path/output2”

Script_4_var.py#Before running, set the following paths    input_folder = "/Users/path/output2" #from script_3    output_file = "/Users/path/combined_variances.txt"

Script_5_plot.py#Before running, set the following paths    variance_file = '/Users/path/combined_variances.txt’ #from script_4    output_pdf = '/Users/path/plot_variance_all_aminoacids.pdf'

Script_6_Identical_prot_50.py#Before running, set the following paths    input_file = '/Users/path//Desktop/Script_6_INPUT_all_identifiers.txt'    output_file = '/Users/path/filtered_protein_ids_with_numbers.txt'

 

Script_7_count_cluster_protein_in_genomes.py#Before running, set the following paths    cluster_file = "/Users/path/Desktop/Clusters.txt"    fasta_folder = "/Users/path/fasta_folder" #folder cointaining .faa files    output_file = ""/Users/path/Clusters_count.txt"

#This script can be run using as input any file (Clusters.txt) that has this format (like the one produced by ALFATClust):

#Cluster 1WP_xxxxxxxxx.xWP_xxxxxxxxx.xWP_xxxxxxxxx.x#Cluster 2WP_xxxxxxxxx.xWP_xxxxxxxxx.xWP_xxxxxxxxx.x

where WP_xxxxxxxxx.x are the protein accession numbers, variable in abundance, and code for each cluster

Script_8_cluster_name_list.py#Before running, set the following paths    cluster_file = "/Users/path/Desktop/Clusters.txt" # as in script 7    output_file = "/Users/path/Desktop/cluster_name.txt"

Script_9_count_repetition_cluster.pyScript_10_count_repetition_num_cluster.py#Before running, set the following paths    selected_clusters_file = "/Users/path/Desktop/cluster_name.txt" #from script_8    counts_file = "/Users/path/Desktop/output_counts.txt"    output_file = "/Users/path/Desktop/output_counts_summary.txt"

#The difference between these two scripts is that the first one generates a file containing the accession number of the genome (GCF_xxxxxxxxx.x) while the second one only counts the repeats.

Script_11_filtering_75.py#Before running, set the following paths    input_file = = "/Users/path/Desktop/output_counts_summary.txt" #from script_10    output_file = "/Users/path/Desktop/output_num_filtered_summary.txt"

Script_12_cluster_neighbor_selection.py#Before running, set the following paths    cluster_file_path = "/Users/path//Desktop/Cluster_nn.txt" #file containing the accession number of a single cluster    folder_path = "/Users/path//Desktop/Coordinates" #folder dataset 6

Script_13_cluster_neighbor_Knum.py#Before running, set the following paths    output_file_path = "/Users/path/Desktop/output.csv" #output from script_12    annotation_file_path = "/Users/path/Desktop/annotation.txt" #file dataset 3

Script_14_csv_filtration.py#Before running, set the following path    output_file_path = "/Users/path/Desktop/output_with_knumbers.csv" #output from script_13

Script_15_unique_k_numbers_list.py#Before running, set the following path    file_path = "/Users/path/Desktop/output_filtered.csv" #output from script_14

Script_16_k_numbers_count.py#Before running, set the following paths    file_path = "/Users/path/Desktop/output_filtered.csv" #output from script_14    k_numbers_file = "/Users/path/Desktop/unique_k_numbers.txt" #output from script_15

Script_17_analysis_cluster.py#Before running, set the following paths    csv_file = 'k_numbers_file = "/Users/path/Desktop/output_filtered.csv" #output from script_14    k_numbers_file = "/Users/path/Desktop/unique_k_numbers.txt" #output from script_15

#Scripts 16 and 17 are similar. However, Script 16 returns a list of all K-numbers, whereas Script 17 also provides their counts, reflecting the number of times each K-number is repeated within the syntenic region.

Script_18_cutoff.py#Before running, set the following paths    csv_file = '/Users/path/Desktop/output_filtered.csv' #output from script_14

Script_19_analysis_cluster_filtering.py#Before running, set the following paths    csv_file = 'k_number_analysis.csv' #output from script_17    cutoff_file = 'cutoff.txt' #output from script_18

#output: k_number_analysis_filtered.csv. Containing co-occurence value for KASS-annotated genes

 

These scripts can be automated and executed in bulk (for example: Scripts 1 and 2; Scripts 3, 4, and 5; Scripts 8, 9/10, and 11; and Scripts 12 through 18). For this purpose, a Bash (.sh) file can be created and implemented as follows:

 

Filtered_cluster_list.txt#txt file containing the 330 conserved clusters localized in syntetinc region (cluster name and protein ID)

Filtered_cluster_name_list.txt#txt file containing the 330 conserved clusters localized in syntetinc region (only cluster name)

 

Batch

These scripts can be automated and executed in bulk (for example: Scripts 1 and 2; Scripts 3, 4, and 5; Scripts 8, 9/10, and 11; and Scripts 12 through 18). For this purpose, a Bash (.sh) file can be created and implemented as follows:

______________________________________________________________________

#!/bin/bash

set -e

 # Path to the folder containing the scriptsSCRIPT_DIR="/Users/matteocalcagnile/Desktop/YourScriptsFolder"

# Run Script 3echo "▶ Running Script_3_AA_%.py"python3 "$SCRIPT_DIR/Script_3_AA_%.py"

# Run Script 4echo "▶ Running Script_4_var.py"python3 "$SCRIPT_DIR/Script_4_var.py"

# Run Script 5echo "▶ Running Script_5_plot.py"python3 "$SCRIPT_DIR/Script_5_plot.py"

echo "✅ All scripts executed successfully."

______________________________________________________________________

After saving the file (for example, as run_pipeline.sh), make it executable using the chmod +x command, and then run it with ./.

Commands:















 










chmod +x run_pipeline.sh

 

./run_pipeline.sh











 

Other files

Script_6_INPUT_all_identifiers.txt#txt file, input of script_6

Filtered_cluster_list.txt#txt file containing the 330 conserved clusters localized in syntetinc region (cluster name and protein ID)

Filtered_cluster_name_list.txt#txt file containing the 330 conserved clusters localized in syntetinc region (only cluster name)