Views
No views yet
from transformers import AutoModel, AutoTokenizer, AutoConfig
from peft import PeftModel, PeftConfig
encoder_model = "InstaDeepAI/agro-nucleotide-transformer-1b"
base_model = "jlomas/transgenic-agro-E9"
adapter_model = "jlomas/transgenic-agro-E9-peft"
model = AutoModel.from_pretrained(base_model, trust_remote_code=True)
model = PeftModel.from_pretrained(model, adapter_model)
dnaTokenizer = AutoTokenizer.from_pretrained(encoder_model, trust_remote_code=True)
gffTokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
seq = 'GCTTATGTTTATCTTTTGATCTGATCTATAAATATATATACAGGTTATCAAAAGGCCTCCACCAAAACCAACTCAACATCTCCGCCTCCATCTCCGCCTCCATCTCCGCCGCGAGTTCCAGACGCTCAAGAATTGGAGTACCTTAAATCCGACTCTTTTCCCGAACACGATGCGTAGAGTTGTCATTCGGACGGAGGTGTGCGTTCCGATAAAATTAGGCTACCGCCGCGGCTTTCAGACCTTCTAGAATTGGAGAAATTGTTTCCCGAACGCGAGGCGCTGAGTTGTCCTTTGGACGGAGATGAGGATTCCAATGAACTTAGGCTACGGCCGCTGGTTCCAGACGCTCAAGAATGGAAGTACCCTAAATCCAAGTTATTTCCCAGACACGCGGCGTGGAGTTGTCATTCGGGCGGAGGTGGAGGTGGAGGCGGTGGCCGTGTATTTACAAATAAAGTAAATGCGGTAGAAGAATTCAACTTAGGAGGACTGAAGGACAGCGAATCCGATTCCGATTCCGAGTAGGGAACTTTTAAAACAACTTTGATTATGGATTTCGATATCCAGAATAATTTTAATTCACTGCTGTTGGACTTGATTAATTTCCTATCACATAACGTTTTGGTTTAACTTTGTACGACCACCA'
def segmentSequence(seq, piece_size = 4002):
seqs = [seq[i:min(i+piece_size, len(seq))] for i in range(0, len(seq), piece_size)]
return seqs
seqs = segmentSequence(seq)
seqs = dnaTokenizer.batch_encode_plus(
seqs,
return_tensors="pt",
padding="max_length",
truncation=True,
max_length = 1024)["input_ids"]
attention_mask = (seqs != dnaTokenizer.pad_token_id).long()
output = model.generate(inputs=seqs, attention_mask=attention_mask, num_return_sequences=1, max_length=2048)
pred = gffTokenizer.batch_decode(output.detach().cpu().numpy(), skip_special_tokens=True)
print(pred)