Repository Analysis

Biohub/esm

4.5 Likely human-written View on GitHub
4.5
Adjusted Score
4.5
Raw Score
100%
Time Factor
Last Push
Stars
Language
97,914
Lines of Code
129
Files
321
Pattern Hits
2026-05-31
Scan Date

Score History

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

CRITICAL 0HIGH 4MEDIUM 47LOW 270

Pattern Findings

321 matches across 11 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers127 hits · 126 pts
SeverityFileLineSnippet
LOWesm/utils/misc_test.py23def test_merge_annotations_gap():
LOWesm/utils/misc.py40def slice_python_object_as_numpy(
LOWesm/utils/misc.py180def stack_variable_length_tensors(
LOWesm/utils/misc.py394def get_chainbreak_boundaries_from_sequence(sequence: Sequence[str]) -> np.ndarray:
LOWesm/utils/misc.py444def iterate_with_intermediate(
LOWesm/utils/system.py10def run_subprocess_with_errorcheck(
LOWesm/utils/encoding.py26def get_default_secondary_structure(sequence_length: int) -> str:
LOWesm/utils/encoding.py100def tokenize_secondary_structure(
LOWesm/utils/encoding.py138def tokenize_function_annotations(
LOWesm/utils/encoding.py156def get_default_sequence_tokens(
LOWesm/utils/encoding.py172def get_default_structure_tokens(
LOWesm/utils/encoding.py185def get_default_secondary_structure_tokens(
LOWesm/utils/encoding.py206def get_default_function_tokens(
LOWesm/utils/encoding.py219def get_default_residue_annotation_tokens(
LOWesm/utils/generation.py37def _trim_sequence_tensor_dataclass(o: Any, sequence_len: int):
LOWesm/utils/generation.py241def _get_iterative_sampling_mask_for_prompt_and_step(
LOWesm/utils/generation.py350def _get_annealed_temperature(step: int, num_steps: int, initial_temperature: float):
LOWesm/utils/generation.py355def iterative_sampling_tokens(
LOWesm/utils/decoding.py172def decode_secondary_structure(
LOWesm/utils/decoding.py206def decode_function_annotations(
LOWesm/utils/decoding.py223def decode_residue_annotations(
LOWesm/utils/sequential_dataclass.py97 def _check_sequence_lengths_match(self):
LOWesm/utils/residue_constants.py429def load_stereo_chemical_props() -> (
LOWesm/utils/residue_constants.py1042def _make_rigid_group_constants():
LOWesm/utils/sampling.py109def get_default_sampling_config(
LOWesm/utils/sampling.py241def sample_residue_annotation_logits(
LOWesm/utils/msa/msa.py23def remove_insertions_from_sequence(seq: str) -> str:
LOWesm/utils/constants/models.py17def forge_only_return_single_layer_hidden_states(model_name: str):
LOWesm/utils/constants/models.py21def model_is_locally_supported(x: str):
LOWesm/utils/function/encode_decode.py13def encode_function_annotations(
LOWesm/utils/function/encode_decode.py136def decode_residue_annotation_tokens(
LOWesm/utils/structure/mmcif_parsing.py357 def _parse_nonpoly_from_mmcif(self) -> dict[tuple, bs.AtomArray]:
LOWesm/utils/structure/input_builder.py82def serialize_structure_prediction_input(all_atom_input: StructurePredictionInput):
LOWesm/utils/structure/input_builder.py156def deserialize_structure_prediction_input(
LOWesm/utils/structure/protein_structure.py70def compute_alignment_tensors(
LOWesm/utils/structure/protein_structure.py165def compute_rmsd_no_alignment(
LOWesm/utils/structure/protein_structure.py263def compute_gdt_ts_no_alignment(
LOWesm/utils/structure/input_builder_test.py38def test_roundtrip_minimal_protein() -> None:
LOWesm/utils/structure/input_builder_test.py43def test_roundtrip_protein_with_modifications() -> None:
LOWesm/utils/structure/input_builder_test.py68def test_roundtrip_protein_with_msa() -> None:
LOWesm/utils/structure/input_builder_test.py82def test_roundtrip_rna_dna_ligand() -> None:
LOWesm/utils/structure/input_builder_test.py99def test_roundtrip_full_with_conditioning() -> None:
LOWesm/utils/structure/input_builder_test.py140def test_unsupported_sequence_type_raises() -> None:
LOWesm/utils/structure/protein_chain.py235 def residue_index_no_insertions(self) -> np.ndarray:
LOWesm/utils/structure/protein_chain.py760 def chain_iterable_from_mmcif(
LOWesm/utils/structure/protein_chain.py968 def from_backbone_atom_coordinates(
LOWesm/utils/structure/protein_chain.py1355 def to_structure_encoder_inputs(
LOWesm/utils/structure/protein_complex.py53def _parse_operation_expression(expression):
LOWesm/utils/structure/protein_complex.py85def _apply_transformations_fast(chains, transformation_dict, operations):
LOWesm/utils/structure/protein_complex.py364 def normalize_chain_ids_for_pdb(self):
LOWesm/utils/structure/protein_complex.py377 def find_assembly_ids_with_chain(self, id: str) -> list[str]:
LOWesm/utils/structure/protein_complex.py679 def _sanity_check_complexes_are_comparable(self, other: ProteinComplex):
LOWesm/utils/structure/protein_complex.py1219def protein_chain_to_protein_complex(chain: ProteinChain) -> ProteinComplex:
LOWesm/utils/structure/normalize_coordinates.py34def get_protein_normalization_frame(coords: Tensor) -> Affine3D:
LOWesm/utils/structure/predicted_aligned_error.py37def compute_predicted_aligned_error(
LOWesm/utils/structure/molecular_complex_test.py105def test_from_mmcif_ligand_on_separate_chain():
LOWesm/utils/structure/molecular_complex_test.py127def test_to_mmcif_entity_categories():
LOWesm/utils/structure/molecular_complex_test.py138def test_blob_roundtrip_preserves_chain_separation():
LOWesm/utils/structure/molecular_complex_test.py155def test_blob_roundtrip_preserves_atom_counts():
LOWesm/utils/structure/molecular_complex_test.py175def test_to_mmcif_entity_types_correct():
67 more matches not shown…
Decorative Section Separators32 hits · 108 pts
SeverityFileLineSnippet
MEDIUMesm/models/esmfold2/constants.py6# =============================================================================
MEDIUMesm/models/esmfold2/constants.py8# =============================================================================
MEDIUMesm/models/esmfold2/constants.py15# =============================================================================
MEDIUMesm/models/esmfold2/constants.py17# =============================================================================
MEDIUMesm/models/esmfold2/constants.py55# =============================================================================
MEDIUMesm/models/esmfold2/constants.py57# =============================================================================
MEDIUMesm/models/esmfold2/constants.py164# =============================================================================
MEDIUMesm/models/esmfold2/constants.py166# =============================================================================
MEDIUMesm/models/esmfold2/constants.py201# =============================================================================
MEDIUMesm/models/esmfold2/constants.py203# =============================================================================
MEDIUMesm/models/esmfold2/constants.py302# =============================================================================
MEDIUMesm/models/esmfold2/constants.py304# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py60# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py62# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py107# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py109# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py186# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py188# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py668# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py670# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py818# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py820# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py1463# =============================================================================
MEDIUMesm/models/esmfold2/prepare_input.py1465# =============================================================================
MEDIUMesm/sdk/experimental/guided_generation.py107 # ----------------------------------------------
MEDIUMesm/sdk/experimental/guided_generation.py109 # ----------------------------------------------
MEDIUMesm/sdk/experimental/guided_generation.py119 # ----------------------------------------------
MEDIUMesm/sdk/experimental/guided_generation.py121 # ----------------------------------------------
MEDIUMcookbook/snippets/esmc.py21 # ================================================================
MEDIUMcookbook/snippets/esmc.py23 # ================================================================
MEDIUMcookbook/snippets/esmc.py63 # ================================================================
MEDIUMcookbook/snippets/esmc.py65 # ================================================================
Deep Nesting57 hits · 55 pts
SeverityFileLineSnippet
LOWesm/utils/generation.py37
LOWesm/utils/generation.py66
LOWesm/utils/generation.py130
LOWesm/utils/sequential_dataclass.py97
LOWesm/utils/residue_constants.py1116
LOWesm/utils/sampling.py133
LOWesm/utils/forge_context_manager.py88
LOWesm/utils/constants/esm3.py105
LOWesm/utils/structure/mmcif_parsing.py74
LOWesm/utils/structure/mmcif_parsing.py119
LOWesm/utils/structure/mmcif_parsing.py175
LOWesm/utils/structure/mmcif_parsing.py357
LOWesm/utils/structure/mmcif_parsing.py422
LOWesm/utils/structure/input_builder.py82
LOWesm/utils/structure/input_builder.py156
LOWesm/utils/structure/molecular_complex.py443
LOWesm/utils/structure/molecular_complex.py786
LOWesm/utils/structure/molecular_complex.py948
LOWesm/utils/structure/molecular_complex.py1181
LOWesm/utils/structure/protein_chain.py81
LOWesm/utils/structure/protein_chain.py891
LOWesm/utils/structure/protein_chain.py1005
LOWesm/utils/structure/protein_complex.py799
LOWesm/utils/structure/molecular_complex_test.py304
LOWesm/models/esmfold2/conformers.py268
LOWesm/models/esmfold2/processor.py45
LOWesm/models/esmfold2/paired_msa.py86
LOWesm/models/esmfold2/prepare_input.py157
LOWesm/models/esmfold2/prepare_input.py329
LOWesm/models/esmfold2/prepare_input.py673
LOWesm/models/esmfold2/prepare_input.py688
LOWesm/models/esmfold2/prepare_input.py823
LOWesm/models/esmfold2/prepare_input.py963
LOWesm/models/esmfold2/prepare_input.py1103
LOWesm/models/esmfold2/prepare_input.py1143
LOWesm/models/esmfold2/output.py18
LOWesm/models/esmfold2/output.py129
LOWesm/tokenization/residue_tokenizer.py73
LOWesm/sdk/forge.py116
LOWesm/sdk/api.py56
LOWesm/sdk/api.py165
LOWesm/widgets/utils/prompting.py386
LOWesm/widgets/components/results_visualizer.py21
LOWesm/widgets/components/results_visualizer.py55
LOWesm/widgets/components/sequence_prompt_selector.py13
LOWesm/widgets/components/sequence_prompt_selector.py96
LOWesm/widgets/components/structure_prompt_selector.py19
LOWesm/widgets/components/structure_prompt_selector.py94
LOWesm/widgets/components/structure_prompt_selector.py309
LOWesm/widgets/views/prediction.py14
LOWesm/widgets/views/prediction.py80
LOWesm/widgets/views/esm3_generation_launcher.py21
LOWesm/widgets/views/esm3_generation_launcher.py133
LOWesm/widgets/views/inverse_folding.py14
LOWesm/widgets/views/inverse_folding.py54
LOWesm/widgets/views/esm3_prompt_preview.py74
LOWesm/widgets/views/esm3_prompt_preview.py133
Unused Imports52 hits · 52 pts
SeverityFileLineSnippet
LOWesm/utils/types.py1
LOWesm/utils/msa/msa.py1
LOWesm/utils/msa/__init__.py1
LOWesm/utils/msa/__init__.py1
LOWesm/utils/msa/__init__.py1
LOWesm/utils/structure/aligner.py1
LOWesm/utils/structure/mmcif_parsing.py1
LOWesm/utils/structure/affine3d.py1
LOWesm/utils/structure/molecular_complex.py1
LOWesm/utils/structure/protein_structure.py1
LOWesm/utils/structure/protein_chain.py1
LOWesm/utils/structure/protein_complex.py1
LOWesm/models/esm3.py1
LOWesm/models/esmc.py1
LOWesm/models/esmfold2/conformers.py7
LOWesm/models/esmfold2/__init__.py1
LOWesm/models/esmfold2/__init__.py2
LOWesm/models/esmfold2/__init__.py3
LOWesm/models/esmfold2/__init__.py3
LOWesm/models/esmfold2/__init__.py4
LOWesm/models/esmfold2/__init__.py4
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py5
LOWesm/models/esmfold2/__init__.py16
LOWesm/models/esmfold2/__init__.py16
LOWesm/models/esmfold2/__init__.py16
LOWesm/models/esmfold2/types.py9
LOWesm/models/esmfold2/types.py10
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/types.py11
LOWesm/models/esmfold2/prepare_input.py7
LOWesm/sdk/forge.py1
LOWesm/sdk/api.py1
LOWesm/sdk/experimental/__init__.py1
LOWesm/sdk/experimental/__init__.py1
LOWesm/sdk/experimental/__init__.py1
LOWesm/sdk/experimental/__init__.py6
LOWesm/sdk/experimental/__init__.py6
LOWesm/sdk/experimental/constrained_generation.py1
Excessive Try-Catch Wrapping31 hits · 38 pts
SeverityFileLineSnippet
LOWesm/utils/forge_context_manager.py137 except Exception as e:
LOWesm/utils/structure/mmcif_parsing.py71 except Exception as e:
LOWesm/utils/structure/mmcif_parsing.py115 except Exception:
LOWesm/utils/structure/mmcif_parsing.py164 except Exception:
LOWesm/utils/structure/mmcif_parsing.py468 except Exception:
LOWesm/utils/structure/molecular_complex.py472 except Exception:
LOWesm/utils/structure/molecular_complex.py536 except Exception:
LOWesm/utils/structure/molecular_complex.py944 except Exception:
LOWesm/utils/structure/molecular_complex.py1016 except Exception as e:
LOWesm/models/esmfold2/conformers.py59 except Exception as e:
LOWesm/sdk/forge.py909 except Exception as e:
LOWesm/sdk/retry.py34 except Exception:
MEDIUMesm/sdk/retry.py31def log_retry_attempt(retry_state):
LOWesm/sdk/sagemaker.py46 except Exception as e:
LOWesm/sdk/sagemaker.py108 except Exception as e:
LOWesm/sdk/base_forge_client.py128 except Exception as e:
LOWesm/sdk/base_forge_client.py158 except Exception as e:
LOWesm/widgets/utils/protein_import.py110 except Exception as e:
MEDIUMesm/widgets/utils/protein_import.py112 wrapped_print(f"Error: {e}")
LOWesm/widgets/utils/protein_import.py149 except Exception as e:
MEDIUMesm/widgets/utils/protein_import.py151 wrapped_print(f"Error: {e}")
MEDIUMesm/widgets/utils/protein_import.py133def on_upload(self, _):
LOWesm/widgets/components/structure_prompt_selector.py190 except Exception as e:
LOWesm/widgets/components/structure_prompt_selector.py331 except Exception as e:
LOWesm/widgets/components/function_annotator.py123 except Exception as e:
MEDIUMesm/widgets/components/function_annotator.py125 print(f"Error: {e}")
LOWesm/widgets/views/prediction.py149 except Exception as e:
MEDIUMesm/widgets/views/prediction.py80def on_click_predict(_):
LOWesm/widgets/views/esm3_generation_launcher.py185 except Exception:
LOWesm/widgets/views/inverse_folding.py86 except Exception as e:
MEDIUMesm/widgets/views/inverse_folding.py54def on_click_inverse_fold(_):
Self-Referential Comments7 hits · 21 pts
SeverityFileLineSnippet
MEDIUMesm/utils/residue_constants.py494 # Create a fast lookup dict for bond lengths.
MEDIUMesm/utils/residue_constants.py870# Define a restype name for all unknown residues.
MEDIUMesm/utils/structure/mmcif_parsing.py303 # Create a basic mapping based on the chain_data
MEDIUMesm/utils/structure/molecular_complex.py576 # Create a mapping from chain_id to numeric indices
MEDIUMesm/models/esm3.py391 # The following methods are for the ESM3InferenceClient interface
MEDIUMesm/widgets/components/function_annotator.py33 # Create a text box input and a list of children to select from
MEDIUMcookbook/snippets/sae_example.py19# Create a protein
Docstring Block Structure2 hits · 10 pts
SeverityFileLineSnippet
HIGHesm/utils/residue_constants.py798Maps the given sequence into a one-hot encoded matrix. Args: sequence: An amino acid sequence. mapping:
HIGHesm/models/esm3.py283 Performs forward pass through the ESM3 model. Check utils to see how to tokenize inputs from raw data.
Redundant / Tautological Comments7 hits · 10 pts
SeverityFileLineSnippet
LOWesm/utils/structure/mmcif_parsing.py259 # Check if there are duplicate residue numbers in this chain
LOWesm/utils/structure/molecular_complex.py294 # Check if token is a standard 3-letter amino acid code
LOWesm/utils/structure/molecular_complex.py455 # Check if input is a file path or mmCIF string content
LOWesm/utils/structure/molecular_complex.py1051 # Check if both tokens have atoms
LOWesm/utils/structure/molecular_complex.py1119 # Check if both tokens have atoms
LOWesm/models/esmfold2/prepare_input.py226 # Check if standard residue (has predefined atom list)
LOWesm/widgets/components/sequence_prompt_selector.py123 a = 0.5 # Set alpha to 0.5
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippet
HIGHcookbook/snippets/esm3.py204 "To try this script with a Forge/Biohub Platform API, please run ESM_API_KEY=your_api_key python esm3.py"
HIGHcookbook/snippets/esmc.py137 "To try this script with a Forge/Biohub Platform API, please run ESM_API_KEY=your_api_key python esm3.py"
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippet
LOWesm/utils/misc.py281 # For MPS, just return a no-op context manager (nullcontext) since MPS does not support autocast.
MEDIUMesm/utils/structure/molecular_complex.py343 # Normalize to uppercase and strip whitespace for robust matching
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippet
LOWesm/layers/rotary.py1# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.
LOWesm/utils/residue_constants.py1# Copyright 2025 EvolutionaryScale