sayby commited on
Commit
ebe3b04
·
verified ·
1 Parent(s): 7852434

Upload model

Browse files
config.json CHANGED
@@ -1,4 +1,5 @@
1
  {
 
2
  "architectures": [
3
  "RNATorsionBERTModel"
4
  ],
@@ -9,7 +10,6 @@
9
  "hidden_size": 1024,
10
  "k": 3,
11
  "model_type": "rna_torsionbert",
12
- "num_classes": 18,
13
  "torch_dtype": "float32",
14
- "transformers_version": "4.29.0"
15
  }
 
1
  {
2
+ "angles": "BACKBONE",
3
  "architectures": [
4
  "RNATorsionBERTModel"
5
  ],
 
10
  "hidden_size": 1024,
11
  "k": 3,
12
  "model_type": "rna_torsionbert",
 
13
  "torch_dtype": "float32",
14
+ "transformers_version": "4.40.1"
15
  }
enums.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ BACKBONE = [
2
+ "alpha",
3
+ "beta",
4
+ "gamma",
5
+ "delta",
6
+ "epsilon",
7
+ "zeta",
8
+ "chi",
9
+ "eta",
10
+ "theta",
11
+ "eta'",
12
+ "theta'",
13
+ "v0",
14
+ "v1",
15
+ "v2",
16
+ "v3",
17
+ "v4"
18
+ ]
19
+
20
+ ANGLES_TO_LIST = {
21
+ "BACKBONE": BACKBONE
22
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:36a48154892c8697ebb962ba1e31ecb4bedad20c0de4e0836661955b29f54309
3
+ size 347688872
rna_torsionbert_config.py CHANGED
@@ -3,14 +3,15 @@ from transformers import PretrainedConfig
3
 
4
  class RNATorsionBertConfig(PretrainedConfig):
5
  model_type = "rna_torsionbert"
6
- def __init__(self, k: int = 3, num_classes: int = 18, hidden_size: int = 1024, **kwargs):
7
  """
8
  Initialise the model.
9
  :param k: the k-mer size.
10
- :param num_classes: the number of labels.
 
11
  :param hidden_size: size of the hidden layer after BERT hidden states.
12
  """
13
  self.k = k
14
- self.num_classes = num_classes
15
  self.hidden_size = hidden_size
16
  super().__init__(**kwargs)
 
3
 
4
  class RNATorsionBertConfig(PretrainedConfig):
5
  model_type = "rna_torsionbert"
6
+ def __init__(self, k: int = 3, angles: str = "BACKBONE", hidden_size: int = 1024, **kwargs):
7
  """
8
  Initialise the model.
9
  :param k: the k-mer size.
10
+ :param angles: types of angles to use. "BACKBONE" for eight torsional angles +
11
+ two pseudo-torsional angles
12
  :param hidden_size: size of the hidden layer after BERT hidden states.
13
  """
14
  self.k = k
15
+ self.angles = angles
16
  self.hidden_size = hidden_size
17
  super().__init__(**kwargs)
rna_torsionbert_model.py CHANGED
@@ -2,6 +2,7 @@ from torch import nn
2
  from transformers import PreTrainedModel, AutoModel, AutoConfig
3
 
4
  from .rna_torsionbert_config import RNATorsionBertConfig
 
5
 
6
 
7
  class RNATorsionBERTModel(PreTrainedModel):
@@ -10,6 +11,7 @@ class RNATorsionBERTModel(PreTrainedModel):
10
  def __init__(self, config):
11
  super().__init__(config)
12
  self.init_model(config.k)
 
13
  self.dnabert = AutoModel.from_pretrained(
14
  self.model_name, config=self.dnabert_config, trust_remote_code=True
15
  )
@@ -17,7 +19,7 @@ class RNATorsionBERTModel(PreTrainedModel):
17
  nn.LayerNorm(self.dnabert_config.hidden_size),
18
  nn.Linear(self.dnabert_config.hidden_size, config.hidden_size),
19
  nn.GELU(),
20
- nn.Linear(config.hidden_size, config.num_classes),
21
  )
22
  self.activation = nn.Tanh()
23
 
 
2
  from transformers import PreTrainedModel, AutoModel, AutoConfig
3
 
4
  from .rna_torsionbert_config import RNATorsionBertConfig
5
+ from .enums import ANGLES_TO_LIST
6
 
7
 
8
  class RNATorsionBERTModel(PreTrainedModel):
 
11
  def __init__(self, config):
12
  super().__init__(config)
13
  self.init_model(config.k)
14
+ self.num_labels = 2 * len(ANGLES_TO_LIST.get(config.angles, []))
15
  self.dnabert = AutoModel.from_pretrained(
16
  self.model_name, config=self.dnabert_config, trust_remote_code=True
17
  )
 
19
  nn.LayerNorm(self.dnabert_config.hidden_size),
20
  nn.Linear(self.dnabert_config.hidden_size, config.hidden_size),
21
  nn.GELU(),
22
+ nn.Linear(config.hidden_size, self.num_labels),
23
  )
24
  self.activation = nn.Tanh()
25