May introduce mutations that are below the pssm threshold.
For example, when probs[i,j] =~ 1 (close to 1) and probs[i,k] = 0 (for k!=j) but the pssm_log_odds_mask[i,j]=0 , the forbbiden aa may still be introduced since now:
probs_masked[i,j] =~ 0.001 and probs_masked[i,k] = 0 for k!=j
Then after normalization occurs:
probs = probs_masked/torch.sum(probs_masked, dim=-1, keepdim=True) #[B, 21]
probs[i,j] = 1 now , although it doesn't cross the PSSM threshold.
Is that a bug or a feature? :-D
Meaning, if pssm_log_odds_mask[i,j] = 0 then probs_masked[i,j] = 0 too right?
The following line:
probs_masked+=probs*0.001
May introduce mutations that are below the pssm threshold.
For example, when
probs[i,j] =~ 1
(close to 1) andprobs[i,k] = 0
(for k!=j) but thepssm_log_odds_mask[i,j]=0
, the forbbiden aa may still be introduced since now:probs_masked[i,j] =~ 0.001
andprobs_masked[i,k] = 0
for k!=jThen after normalization occurs:
probs = probs_masked/torch.sum(probs_masked, dim=-1, keepdim=True) #[B, 21]
probs[i,j] = 1 now , although it doesn't cross the PSSM threshold.
Is that a bug or a feature? :-D Meaning, if
pssm_log_odds_mask[i,j] = 0
thenprobs_masked[i,j] = 0
too right?