set evalue_all, evalue_small, evalue_reblast, DBD_domains |
open transcription_factors as input |
small_proteins_database, all_proteins_database, transcription_factors_database ← initialize BLAST reference databases |
putative_miPs new list |
for transcription_factor in transcription_factors do |
TF_domains InterproScan(transcription_factor) |
subjects_all BLAST transcription_factor against all_proteins_database |
for subject in subjects_all do |
if length(subject) ≤ 550 and length(subject) ≤ 1.1 length(transcription_factor) and evalue of subject ≤ evalue_all then |
subject_domains ← InterproScan(subject) |
if subject_domains not in DBD_domains and length(subject_domains) < length(TF_domains) |
and length(intersection(subject_domains with TF_fomains)) ≥ 1 then |
putative_miPs.append(subject) |
end if |
end if |
end for |
subjects_small ← BLAST transcription_factors against small_protein_database |
for subject in subjects_small do |
if length(subject) ≤ 1.1 length(transcription_factor) and evalue of subject ≤ evalue_small then |
blast_results ← BLAST subject against transcription_factors_database |
if transcription_factor in blast_results and evalue of transcription_factor ≤ evalue_reblast then |
subject_domains ← InterproScan(subject) |
if subject_domains not in DBD_domains and length(subject_domains) < length(TF_domains) |
and length(intersection(subject_domains with TF_fomains)) ≥ 1 then |
putative_miPs.append(subject) |
end if |
end if |
end if |
end for |
end for |
return putative_miPs |