A cutting-edge web platform for real-time, side-by-side 3D visualization and analysis of target proteins and binding partners. Features include seamless natural language protein search, advanced molecular rendering, critical structure analytics, and an AI-powered chat interface.
cd frontend
npm install
npm run devThe application will be available at http://localhost:3001
- Natural language queries (e.g., "human insulin receptor", "SARS spike protein")
- Autocomplete suggestions with UniProt IDs
- Converts queries to protein structures automatically
- Side-by-side visualization of target and binder proteins
- Multiple render styles: Cartoon, Sphere, Stick, Surface
- Color schemes: Spectrum, Confidence, Chain, Secondary Structure
- Synchronized or independent rotation controls
- Real-time confidence scores overlay
- Per-Residue Confidence (pLDDT): Visual bar chart of prediction confidence
- Predicted Aligned Error (PAE): Heatmap showing interface quality
- Interface Contacts: Detailed residue-level interaction analysis
- Quick Stats: Length, mass, confidence scores at a glance
- Ask questions about protein structure, function, and interactions
- Context-aware responses based on current visualization
- Suggested questions for quick exploration
- Powered by LLM technology
- Neon Cyan (#00f0ff): Primary UI elements, target protein
- Neon Magenta (#ff00ff): Binder protein, accents
- Neon Purple (#b000ff): AI features, analysis
- Neon Green (#00ff88): Success states, high confidence
- Neon Orange (#ffaa00): Warnings, medium confidence
- Dark Base (#0a0a0f): Main background
- Headings: Inter (Bold, Wide)
- Body: Inter (Regular)
- Code/Sequences: JetBrains Mono
- Glass Morphism: Frosted glass cards with backdrop blur
- Neon Glows: Subtle shadow effects on interactive elements
- Smooth Animations: Framer Motion powered transitions
- Floating Gradients: Animated background accents
frontend/src/
├── components/
│ ├── layout/
│ │ ├── Navbar.jsx # Top navigation with search
│ │ ├── SearchBar.jsx # AI-powered protein search
│ │ └── MainLayout.jsx # Main app wrapper
│ ├── viewer/
│ │ ├── DualViewer.jsx # Side-by-side 3D viewers
│ │ ├── MolecularViewer.jsx # 3Dmol.js wrapper
│ │ └── ViewerControls.jsx # Style & color controls
│ ├── analysis/
│ │ ├── AnalysisDashboard.jsx # Main dashboard
│ │ ├── ConfidencePanel.jsx # pLDDT visualization
│ │ └── PAEPlot.jsx # PAE heatmap
│ ├── chat/
│ │ └── AIChat.jsx # Floating AI assistant
│ └── shared/
│ └── GlassCard.jsx # Reusable glass card
├── store/
│ └── proteinStore.js # Zustand state management
└── styles/
└── index.css # Global styles + Tailwind
- React 18 - UI framework
- Vite - Build tool
- Tailwind CSS - Styling with custom neon theme
- Framer Motion - Animations
- 3Dmol.js - WebGL molecular visualization
- Zustand - State management
- Lucide React - Icon library
- Search: Use the AI search bar to find proteins by name or UniProt ID
- Toggle Views: Switch between "3D Viewer" and "Analysis Dashboard"
- Customize: Adjust render style (Cartoon, Sphere, etc.) and colors
- Analyze: View confidence scores, PAE plots, and interface contacts
- Ask AI: Click the AI assistant to ask questions about the protein
- Esc: Close AI chat
- Enter: Send message in AI chat
- Tab: Navigate between search suggestions
- AlphaFold 3 API integration for structure prediction
- Export publication-ready images
- Batch mode for multiple protein comparisons
- Custom annotations and notes
- Evolutionary conservation mapping
- Disease variant highlighting
- Ligand/antibody binding visualization
- Real-time collaboration
- WebGL Acceleration: Hardware-accelerated 3D rendering
- Lazy Loading: Components load on demand
- Optimized Animations: 60fps smooth transitions
- Responsive: Works on desktop, tablet, and mobile
Edit tailwind.config.js to modify the neon color palette:
colors: {
neon: {
cyan: '#00f0ff',
magenta: '#ff00ff',
// Add more colors...
}
}Update ViewerControls.jsx to add more 3Dmol.js styles:
const styles = [
{ id: 'cartoon', name: 'Cartoon', icon: Waves },
// Add your style here
];3D viewer not loading?
- Check browser console for errors
- Ensure WebGL is enabled in your browser
- Try refreshing the page
Search not working?
- Mock data is used by default
- Backend integration coming soon
Styling issues?
- Clear browser cache
- Rebuild:
npm run build
MIT
Built with ❤️ for modern protein research