Views
No views yet

pip install transformers1import os
2
3from transformers import AutoModel, AutoTokenizer
4
5model_path = 'heqin-zhu/structRFM'
6# model_path = os.getenv('structRFM_checkpoint')
7
8model = AutoModel.from_pretrained(model_path)
9tokenizer = AutoTokenizer.from_pretrained(model_path)
10
11# single sequence
12seq = 'GUCCCAACUCUUGCGGGGAGGGAU'
13inputs = tokenizer(seq, return_tensors="pt")
14outputs = model(**inputs)
15print('>>> single seq, length:', len(seq))
16for k, v in outputs.items():
17 print(k, v.shape)
18print(outputs.last_hidden_state.shape)
19
20# batch mode
21seqs = ["GUCCCAA", 'AGUGUUG', 'AUGUAGUTCUN']
22inputs = tokenizer(
23 seqs,
24 add_special_tokens=True,
25 max_length=512,
26 padding='max_length',
27 truncation=True,
28 return_tensors='pt'
29 )
30outputs = model(**inputs) # note that the output sequential features are padded to max-length
31print('>>> batch seqs, batch:', len(seqs))
32for k, v in outputs.items():
33 print(k, v.shape)
34
35'''
36>>> single seq, length: 24
37last_hidden_state torch.Size([1, 24, 768])
38pooler_output torch.Size([1, 768])
39torch.Size([1, 24, 768])
40>>> batch seqs, batch: 3
41last_hidden_state torch.Size([3, 512, 768])
42pooler_output torch.Size([3, 768])
43'''pip install transformers structRFM BPfold1wget https://github.com/heqin-zhu/structRFM/releases/latest/download/structRFM_checkpoint.tar.gz
2tar -xzf structRFM_checkpoint.tar.gzstructRFM_checkpoint.export structRFM_checkpoint=PATH_TO_CHECKPOINT # modify ~/.bashrc for permanent setting1import os
2
3from structRFM.infer import structRFM_infer
4
5from_pretrained = os.getenv('structRFM_checkpoint')
6model_paras = dict(max_length=514, dim=768, layer=12, num_attention_heads=12)
7model = structRFM_infer(from_pretrained=from_pretrained, **model_paras)
8
9seq = 'AGUACGUAGUA'
10
11print('seq len:', len(seq))
12feat_dic = model.extract_feature(seq)
13for k, v in feat_dic.items():
14 print(k, v.shape)
15
16'''
17seq len: 11
18cls_feat torch.Size([768])
19seq_feat torch.Size([11, 768])
20mat_feat torch.Size([11, 11])
21'''1import os
2
3from structRFM.model import get_structRFM
4from structRFM.data import preprocess_and_load_dataset, get_mlm_tokenizer
5
6from_pretrained = os.getenv('structRFM_checkpoint')
7
8tokenizer = get_mlm_tokenizer(max_length=514)
9model = get_structRFM(dim=768, layer=12, num_attention_heads=12, from_pretrained=from_pretrained, pretrained_length=None, max_length=514, tokenizer=tokenizer)1git clone https://github.com/heqin-zhu/structRFM.git
2cd structRFM1conda env create -f structRFM_environment.yaml
2conda activate structRFM1wget https://github.com/heqin-zhu/structRFM/releases/latest/download/structRFM_checkpoint.tar.gz
2tar -xzf structRFM_checkpoint.tar.gzstructRFM_checkpoint.export structRFM_checkpoint=PATH_TO_CHECKPOINT # modify ~/.bashrc for permanent settingUSER_DIR and PROGRAM_DIR in scripts/run.sh,DATA_PATH and run_name in the following command,bash scripts/run.sh --batch_size 96 --epoch 100 --lr 0.0001 --tag mlm --mlm_structure --max_length 514 --model_scale base --data_path DATA_PATH --run_name structRFM_512python3 main.py -h.1@article {structRFM,
2 author = {Zhu, Heqin and Li, Ruifeng and Zhang, Feng and Tang, Fenghe and Ye, Tong and Li, Xin and Gu, Yujie and Xiong, Peng and Zhou, S Kevin},
3 title = {A fully-open structure-guided RNA foundation model for robust structural and functional inference},
4 elocation-id = {2025.08.06.668731},
5 year = {2025},
6 doi = {10.1101/2025.08.06.668731},
7 publisher = {Cold Spring Harbor Laboratory},
8 URL = {https://www.biorxiv.org/content/early/2025/08/07/2025.08.06.668731},
9 journal = {bioRxiv}
10}