annotate infer_rnaformer.xml @ 1:6c310acd2f87 draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
author iuc
date Fri, 07 Mar 2025 15:22:24 +0000
parents 02b0ecc34d9a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
1 <tool id="infer_rnaformer" name="@EXECUTABLE@" version="@TOOL_VERSION@+galaxy1" profile="22.05">
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
2 <description>Predict the secondary structure of an RNA with RNAformer</description>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
3 <macros>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
4 <import>macros.xml</import>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
5 </macros>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
6 <expand macro="requirements">
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
7 <requirement type="package" version="1.83">biopython</requirement>
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
8 <requirement type="package" version="3.7.2">matplotlib</requirement>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
9 <requirement type="package" version="0.13.2">seaborn</requirement>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
10 <requirement type="package" version="2.32.3">requests</requirement>
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
11 </expand>
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
12 <command detect_errors="exit_code"><![CDATA[python '$script_file' > '$output']]></command>
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
13 <configfiles>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
14 <configfile name="script_file"><![CDATA[import RNAformer
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
15 import os
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
16 import argparse
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
17 import torch
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
18 import urllib.request
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
19 import logging
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
20 from collections import defaultdict
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
21 import torch.cuda
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
22 import loralib as lora
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
23 from RNAformer.model.RNAformer import RiboFormer
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
24 from RNAformer.utils.configuration import Config
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
25
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
26 from Bio import SeqIO
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
27
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
28 import logging
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
29 import sys
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
30
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
31 import matplotlib
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
32 matplotlib.use("Agg")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
33 import matplotlib.pyplot as plt
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
34 import seaborn as sns
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
35 import shutil
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
36 import datetime
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
37 import requests
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
38
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
39 def is_valid_rna_sequence(sequence):
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
40 """Check if the sequence contains only RNA bases."""
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
41 valid_bases = {'A', 'C', 'G', 'U', 'N'} # Include 'N' if unknown bases are allowed
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
42 return all(base in valid_bases for base in sequence.upper())
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
43
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
44 def download_file(url, destination):
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
45 response = requests.get(url, stream=True)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
46 response.raise_for_status()
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
47 with open(destination, 'wb') as file:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
48 for chunk in response.iter_content(chunk_size=8192):
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
49 file.write(chunk)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
50
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
51 model_url = "https://ml.informatik.uni-freiburg.de/research-artifacts/RNAformer/models/RNAformer_32M_state_dict_intra_family_finetuned.pth"
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
52 config_url = "https://ml.informatik.uni-freiburg.de/research-artifacts/RNAformer/models/RNAformer_32M_config_intra_family_finetuned.yml"
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
53
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
54 model_file_path = "./model/RNAformer_32M_state_dict_intra_family_finetuned.pth"
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
55 config_file_path = "./model/RNAformer_32M_config_intra_family_finetuned.yml"
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
56
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
57 os.makedirs("./model", exist_ok=True)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
58
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
59 model = '$model'
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
60 model_config = '$model_config'
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
61
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
62 if model and os.path.exists(model):
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
63 model_file_path = model
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
64 else:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
65 download_file(model_url, model_file_path)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
66
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
67 if model_config and os.path.exists(model_config):
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
68 config_file_path = model_config
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
69 else:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
70 download_file(config_url, config_file_path)
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
71
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
72 config = Config(config_file=config_file_path)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
73 config.RNAformer.cycling = 6
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
74 model = RiboFormer(config.RNAformer)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
75 state_dict_file = model_file_path
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
76
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
77 matrix_color_type = '$matrix_color_type'
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
78 matrix_out_type = '$matrix_out_type'
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
79
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
80 #if str($input_type.input_type) == 'True'
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
81 fasta_path = '$input_type.fasta_input'
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
82 sequences = [str(record.seq) for record in SeqIO.parse(fasta_path, 'fasta')]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
83 #else
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
84 sequence_string = "$input_type.rna_input_string"
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
85 sequences = [seq.strip() for seq in sequence_string.split(',')]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
86 #end if
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
87
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
88 for seq in sequences:
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
89 if not is_valid_rna_sequence(seq):
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
90 print(f"Invalid RNA sequence detected: {seq}. Please ensure only RNA sequences are used as input.", file=sys.stderr)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
91 sys.exit(1)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
92
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
93 lora_config = {
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
94 "r": config.r,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
95 "lora_alpha": config.lora_alpha,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
96 "lora_dropout": config.lora_dropout,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
97 }
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
98
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
99 with torch.no_grad():
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
100 for name, module in model.named_modules():
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
101 if any(replace_key in name for replace_key in config.replace_layer):
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
102 parent = model.get_submodule(".".join(name.split(".")[:-1]))
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
103 target_name = name.split(".")[-1]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
104 target = model.get_submodule(name)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
105 if isinstance(target, torch.nn.Linear) and "qkv" in name:
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
106 new_module = lora.MergedLinear(target.in_features, target.out_features,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
107 bias=target.bias is not None,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
108 enable_lora=[True, True, True], **lora_config)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
109 new_module.weight.copy_(target.weight)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
110 if target.bias is not None:
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
111 new_module.bias.copy_(target.bias)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
112 elif isinstance(target, torch.nn.Linear):
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
113 new_module = lora.Linear(target.in_features, target.out_features,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
114 bias=target.bias is not None, **lora_config)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
115 new_module.weight.copy_(target.weight)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
116 if target.bias is not None:
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
117 new_module.bias.copy_(target.bias)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
118
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
119 elif isinstance(target, torch.nn.Conv2d):
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
120 kernel_size = target.kernel_size[0]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
121 new_module = lora.Conv2d(target.in_channels, target.out_channels, kernel_size,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
122 padding=(kernel_size - 1) // 2, bias=target.bias is not None,
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
123 **lora_config)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
124
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
125 new_module.conv.weight.copy_(target.weight)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
126 if target.bias is not None:
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
127 new_module.conv.bias.copy_(target.bias)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
128 setattr(parent, target_name, new_module)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
129
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
130 state_dict = torch.load(state_dict_file, map_location=torch.device('cpu'))
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
131
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
132 model.load_state_dict(state_dict, strict=True)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
133 model_name = state_dict_file.split(".pth")[0]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
134
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
135 if torch.cuda.is_available():
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
136 model = model.cuda()
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
137
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
138 # check GPU can do bf16
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
139 if torch.cuda.is_bf16_supported():
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
140 model = model.bfloat16()
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
141 else:
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
142 model = model.half()
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
143
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
144 model.eval()
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
145 predicted_structures = []
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
146
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
147 orig_seq = ""
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
148
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
149 job_name = '$job_name'
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
150
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
151 if job_name == "":
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
152 job_name = f"RNAformer_{datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}"
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
153
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
154 count = 0
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
155 os.makedirs(f'./{job_name}', exist_ok=True)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
156
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
157 total_output_buffer = []
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
158
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
159 for sequence in sequences:
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
160 output_buffer = []
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
161 seq_dir = f'./{job_name}/{job_name}_{count}'
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
162 os.makedirs(seq_dir, exist_ok=True)
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
163 with torch.no_grad():
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
164 device = "cpu"
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
165
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
166 seq_vocab = ['A', 'C', 'G', 'U', 'N']
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
167 seq_stoi = dict(zip(seq_vocab, range(len(seq_vocab))))
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
168
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
169 pdb_sample = 1
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
170
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
171 length = len(sequence)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
172 src_seq = torch.LongTensor(list(map(seq_stoi.get, sequence)))
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
173
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
174 orig_seq = sequence
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
175
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
176 sample = {}
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
177 sample['src_seq'] = src_seq.clone()
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
178 sample['length'] = torch.LongTensor([length])[0]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
179 sample['pdb_sample'] = torch.LongTensor([pdb_sample])[0]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
180
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
181 sequence = sample['src_seq'].unsqueeze(0).to(device)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
182 src_len = torch.LongTensor([sequence.shape[-1]]).to(device)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
183 pdb_sample = torch.FloatTensor([[1]]).to(device)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
184
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
185 logits, pair_mask = model(sequence, src_len, pdb_sample)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
186
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
187 pred_mat = torch.sigmoid(logits[0, :, :, -1]) > 0.5
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
188
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
189 pos_id = torch.where(pred_mat == True)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
190 pos1_id = pos_id[0].cpu().tolist()
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
191 pos2_id = pos_id[1].cpu().tolist()
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
192 predicted_structure = f"Pairing index 1: {pos1_id} \nPairing index 2: {pos2_id}"
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
193 pairs = [[a, b] for a, b in zip(pos1_id, pos2_id)]
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
194
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
195 seqlen = len(sample['src_seq'])
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
196 dot_bracket =['.'] * seqlen
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
197 pk_count = 0
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
198 pk_list = []
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
199 for i in range(len(pos1_id)):
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
200 open_index = pos1_id[i]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
201 close_index = pos2_id[i]
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
202
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
203 if 0 <= open_index < len(dot_bracket) and 0 <= close_index < len(dot_bracket):
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
204 if dot_bracket[open_index] == '.' and dot_bracket[close_index] == '.':
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
205 dot_bracket[open_index] = '('
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
206 dot_bracket[close_index] = ')'
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
207 else:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
208 ## pseudoknots or multiplets present in structure- cannot represent with dot-bracket
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
209 pk_count += 1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
210 pk_list.append(pairs[i])
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
211 dot_bracket_str_pred = ''.join(dot_bracket)
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
212
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
213 output_buffer.append(f"Job name: {job_name}_{count}\n")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
214 output_buffer.append(f"Sequence: {orig_seq}\n")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
215 output_buffer.append(f"Length: {len(orig_seq)}\n")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
216 output_buffer.append(f"Base pairs: {str(pairs)}\n")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
217 output_buffer.append(f"Predicted Structure: {dot_bracket_str_pred}\n")
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
218
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
219 if pk_count > 0:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
220 output_buffer.append(f"NOTE: {pk_count} pseudoknots and/or multiplets present in predicted structure excluded from dot-bracket notation: {pk_list}\n")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
221
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
222 heatmaps_dir = './heatmaps'
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
223 os.makedirs(heatmaps_dir, exist_ok=True)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
224 plt.figure(figsize=(12, 10))
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
225
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
226 if matrix_color_type == 'color':
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
227 raw_pred_mat = torch.sigmoid(logits[0, :, :, -1])
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
228 sns.heatmap(raw_pred_mat, cmap="inferno", vmin=0.0, vmax=1.0,
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
229 xticklabels=list(orig_seq),
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
230 yticklabels=list(orig_seq)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
231 )
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
232 plt.title(f"RNAformer Base-pair Probability Matrix")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
233 plt.xticks(rotation=90)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
234 plt.tight_layout()
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
235 plt.savefig(f'{seq_dir}/RNAformer_structure_adjacency_matrix_color_{count}.{matrix_out_type}', dpi=150)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
236 plt.close()
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
237 else:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
238 sns.heatmap(pred_mat, cmap="gray", vmin=0.0, vmax=1.0,
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
239 xticklabels=list(orig_seq),
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
240 yticklabels=list(orig_seq)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
241 )
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
242 plt.title(f"RNAformer Base-pair Binary Probability Matrix")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
243 plt.xticks(rotation=90)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
244 plt.tight_layout()
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
245 plt.savefig(f'{seq_dir}/RNAformer_structure_adjacency_matrix_binary_{count}.{matrix_out_type}', dpi=150)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
246 plt.close()
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
247
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
248 full_text = "".join(output_buffer)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
249 with open(f"{seq_dir}/RNAformer_output.txt", "w", encoding="utf-8") as txt_file:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
250 txt_file.write(full_text)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
251 txt_file.write("\n")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
252
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
253 total_output_buffer.append(full_text)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
254 total_output_buffer.append("\n")
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
255
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
256 full_job_output = "".join(total_output_buffer)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
257 with open(f"./RNAformer_job_output.txt", "w", encoding="utf-8") as txt_file:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
258 txt_file.write(full_job_output)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
259
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
260 count += 1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
261
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
262 shutil.make_archive('output', "zip", job_name)
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
263
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
264 ]]></configfile>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
265 </configfiles>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
266 <inputs>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
267 <conditional name="input_type">
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
268 <param name="input_type" type="select" label="Input from FASTA file">
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
269 <option value="False">Provide a single RNA sequence string as text</option>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
270 <option value="True">Provide a FASTA file</option>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
271 </param>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
272 <when value="False">
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
273 <param name="rna_input_string" label="Sequence(s) to fold" type="text" value="GCCCGCAUGGUGAAAUCGGUAAACACAUCGCACUAAUGCGCCGCCUCUGGCUUGCCGGUUCAAGUCCGGCUGCGGGCACCA" help="Enter RNA sequences. Separate multiple RNA sequences by commas.">
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
274 <sanitizer>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
275 <valid>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
276 <add value="ACGUacgu,"/>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
277 </valid>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
278 </sanitizer>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
279 </param>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
280 </when>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
281 <when value="True">
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
282 <param format="fasta" name="fasta_input" type="data" label="Sequence to fold (FASTA file)"/>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
283 </when>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
284 </conditional>
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
285 <param name="job_name" type="text" label="Job name" value="" help="Please edit job name for output files. Default will be RNAformer_{date}_{time}."/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
286 <param name="model" type="data" format="binary" value="None" optional="true" label="Model" help="Manually download saved RNAformer model file to save time: https://ml.informatik.uni-freiburg.de/research-artifacts/RNAformer/models/RNAformer_32M_state_dict_intra_family_finetuned.pth"/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
287 <param name="model_config" type="data" format="yml" value="None" optional="true" label="Model configuration" help="Manually download saved RNAformer model configuration file to save time: https://ml.informatik.uni-freiburg.de/research-artifacts/RNAformer/models/RNAformer_32M_config_intra_family_finetuned.yml"/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
288 <param name="matrix_color_type" type="select" label="Coloring of base probability matrix">
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
289 <option value="color">Color: base pair probabilities are shown and colored</option>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
290 <option value="binary">Binary: probabilities are binarized to show only final predicted structure without probabilities</option>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
291 </param>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
292 <param name="matrix_out_type" type="select" label="Base probability adjacency matrix heatmap format">
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
293 <option value="pdf">PDF</option>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
294 <option value="eps">EPS</option>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
295 <option value="png">PNG</option>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
296 <option value="svg">SVG</option>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
297 </param>
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
298 </inputs>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
299 <outputs>
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
300 <data name="output" format="txt" label="RNAformer Base Pair Predictions" from_work_dir="RNAformer_job_output.txt"/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
301 <data name="output_files" format="zip" label="RNAformer Predicted Structures Output" from_work_dir="output.zip"/>
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
302 </outputs>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
303 <tests>
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
304 <!-- Test 1: Single sequence as text input, color matrix PDF -->
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
305 <test>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
306 <param name="input_type" value="False"/>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
307 <param name="rna_input_string" value="GCCCGCAUGGUGAAAUCGGUAAACACAUCGCACUAAUGCGCCGCCUCUGGCUUGCCGGUUCAAGUCCGGCUGCGGGCACCA"/>
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
308 <param name="job_name" value="RNAformer_Prediction_Test_1"/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
309 <param name="matrix_out_type" value="pdf"/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
310 <param name="matrix_color_type" value="color"/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
311 <output name="output" file="RNAformer_job_output.txt"/>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
312 <output name="output_files">
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
313 <assert_contents>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
314 <has_size min="1" />
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
315 </assert_contents>
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
316 </output>
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
317 </test>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
318 </tests>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
319 <help><![CDATA[
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
320 **RNAformer**
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
321 The tool reads RNA sequences and predicts their secondary structure using RNAformer. Note that unlike conventional methods, RNAformer is capable of predicting all possible secondary structure motifs, including pseudoknots and multiplets. These currently will not be represented in dot-bracket notation and thus the output will be partial in these cases, excluding these which will be noted in the output file below the (partial) dot-bracket structure. However, the full structure will be represented in the adjacency matrix heatmap. Tip: To speed up inference time, you can manually download the model and model configuration files from the following URLs (select "Upload Data" -> "Paste/Fetch Data" and copy the following URLs): `https://ml.informatik.uni-freiburg.de/research-artifacts/RNAformer/models/RNAformer_32M_state_dict_intra_family_finetuned.pth https://ml.informatik.uni-freiburg.de/research-artifacts/RNAformer/models/RNAformer_32M_config_intra_family_finetuned.yml`
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
322
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
323 **Input format**
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
324
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
325 RNAformer requires one or more RNA sequences either as a single FASTA file or as plain text.
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
326
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
327 **Outputs**
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
328
1
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
329 - Predicted secondary structures as a text file for all sequences provided containing the following:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
330 - Job name (with index based on order of input sequences in either plain text or FASTA file)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
331 - RNA input sequence
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
332 - Length of input sequence
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
333 - Base pairs of predicted secondary structure
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
334 - Predicted secondary structure in dot-bracket notation (excluding pseudoknots and multiplets)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
335 - Optional: pseudoknots and/or multiplets present in predicted structure excluded from dot-bracket notation
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
336 - A zip file containing:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
337 - Sub-directory for each input sequence with the name <job_name>_<index> containing:
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
338 - Predicted secondary structure text file (same as above)
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
339 - Heatmap of base pair probability matrix
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
340
6c310acd2f87 planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit a0639f646e953fe490559b10bb7271a67d07cac4
iuc
parents: 0
diff changeset
341
0
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
342 ]]></help>
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
343 <expand macro="citations" />
02b0ecc34d9a planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rnaformer commit ee837e8d27a53baa3d4881412d4fbc566ae06499
rnateam
parents:
diff changeset
344 </tool>