A project of implementing AlphaFold2 from scratch.
.
├── configs/ # Hydra configuration directory
│ ├── config.yaml # Base configuration
│ ├── predict.yaml # Prediction configuration
│ ├── model/ # Model-specific configuration
│ │ └── alphafold2.yaml
│ └── experiment/ # Experiment-specific configuration
│ └── predict.yaml
├── experiments/ # Executable experiment scripts
│ └── predict.py # Inference script
└── xfold/
├── configs/ # Configuration files for different models
│ ├── base.py # Base configuration classes
│ └── alphafold2.py # AlphaFold2 specific configurations
├── model/ # Core model implementations
│ ├── __init__.py # Model registration
│ ├── base.py # Base abstract model class
│ ├── common/ # Shared model components
│ │ ├── aux_heads.py # Auxiliary model heads
│ │ ├── misc.py # Miscellaneous components
│ │ ├── structure.py # Structure module
│ │ └── triangle_ops.py # Triangle operations
│ └── alphafold2/ # AlphaFold2 specific implementation
│ ├── embedders.py # Embedding layers
│ ├── evoformer.py # Evoformer stack
│ └── model.py # Main AlphaFold2 model
├─── protein/ # Protein classes and functions
│ ├── constants.py # Amino-acid/atomic constants
│ ├── sequence.py # MSA and sequence
│ └── structure.py # Rigid frames and structure
└─── utils/ # Utility functions
└── path.py # for handling paths
- Data pipeline
- Main inference loop
- MSA/Template featurisation
- Evolutionary information inclusion
- Input embedder
- Recycling embedder
- Template embedder
- Extra MSA embedder
- Evoformer stack
- Structure module
- Auxiliary loss heads
- AlphaFold2 main paper and supplementary information