nonzeroexit commited on
Commit
8319384
·
verified ·
1 Parent(s): aa6838a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -11
app.py CHANGED
@@ -47,32 +47,32 @@ selected_features = [
47
 
48
  def extract_features(sequence):
49
  """Extract selected features and normalize them."""
50
- if len(sequence) < 3: # Ensure sequence is long enough
51
- return None # Return None if sequence is too short
52
 
53
  all_features_dict = {}
54
 
55
  dipeptide_features = AAComposition.CalculateAADipeptideComposition(sequence)
56
- all_features_dict.update(dipeptide_features) # Use update instead of reassignment
57
 
58
  auto_features = Autocorrelation.CalculateAutoTotal(sequence)
59
- all_features_dict.update(auto_features) # Use update
60
 
61
  ctd_features = CTD.CalculateCTD(sequence)
62
- all_features_dict.update(ctd_features) # Use update
63
 
64
- pseudo_features = PseudoAAC.GetAPseudoAAC(sequence)
65
- all_features_dict.update(pseudo_features) # Use update
66
 
67
 
68
- feature_values = list(all_features_dict.values()) # Use all_features_dict
69
  feature_array = np.array(feature_values).reshape(-1, 1)
70
  normalized_features = scaler.transform(feature_array.T)
71
  normalized_features = normalized_features.flatten()
72
 
73
  selected_feature_dict = {}
74
  for i, feature in enumerate(selected_features):
75
- if feature in all_features_dict: # Use all_features_dict
76
  selected_feature_dict[feature] = normalized_features[i]
77
 
78
  selected_feature_df = pd.DataFrame([selected_feature_dict])
@@ -84,8 +84,8 @@ def extract_features(sequence):
84
  def predict(sequence):
85
  """Predicts whether the input sequence is an AMP."""
86
  features = extract_features(sequence)
87
- if features is None:
88
- return "Error: Could not extract features."
89
 
90
  prediction = model.predict(features)[0]
91
  probabilities = model.predict_proba(features)[0]
 
47
 
48
  def extract_features(sequence):
49
  """Extract selected features and normalize them."""
50
+ if len(sequence) <= 9: # Ensure sequence is long enough for PseudoAAC with lamda=9
51
+ return "Error: Protein sequence must be longer than 9 amino acids to extract features (for lamda=9)."
52
 
53
  all_features_dict = {}
54
 
55
  dipeptide_features = AAComposition.CalculateAADipeptideComposition(sequence)
56
+ all_features_dict.update(dipeptide_features)
57
 
58
  auto_features = Autocorrelation.CalculateAutoTotal(sequence)
59
+ all_features_dict.update(auto_features)
60
 
61
  ctd_features = CTD.CalculateCTD(sequence)
62
+ all_features_dict.update(ctd_features)
63
 
64
+ pseudo_features = PseudoAAC.GetAPseudoAAC(sequence, lamda=9) # Set lamda=9
65
+ all_features_dict.update(pseudo_features)
66
 
67
 
68
+ feature_values = list(all_features_dict.values())
69
  feature_array = np.array(feature_values).reshape(-1, 1)
70
  normalized_features = scaler.transform(feature_array.T)
71
  normalized_features = normalized_features.flatten()
72
 
73
  selected_feature_dict = {}
74
  for i, feature in enumerate(selected_features):
75
+ if feature in all_features_dict:
76
  selected_feature_dict[feature] = normalized_features[i]
77
 
78
  selected_feature_df = pd.DataFrame([selected_feature_dict])
 
84
  def predict(sequence):
85
  """Predicts whether the input sequence is an AMP."""
86
  features = extract_features(sequence)
87
+ if isinstance(features, str) and features.startswith("Error:"): # Check if extract_features returned an error message
88
+ return features # Return the error message directly
89
 
90
  prediction = model.predict(features)[0]
91
  probabilities = model.predict_proba(features)[0]