CryoSPARC Guide
  • About CryoSPARC
  • Current Version
  • Licensing
    • Non-commercial license agreement
  • Setup, Configuration and Management
    • CryoSPARC Architecture and System Requirements
    • CryoSPARC Installation Prerequisites
    • How to Download, Install and Configure
      • Obtaining A License ID
      • Downloading and Installing CryoSPARC
      • CryoSPARC Cluster Integration Script Examples
      • Accessing the CryoSPARC User Interface
    • Deploying CryoSPARC on AWS
      • Performance Benchmarks
    • Using CryoSPARC with Cluster Management Software
    • Software Updates and Patches
    • Management and Monitoring
      • Environment variables
      • (Optional) Hosting CryoSPARC Through a Reverse Proxy
      • cryosparcm reference
      • cryosparcm cli reference
      • cryosparcw reference
    • Software System Guides
      • Guide: Updating to CryoSPARC v4
      • Guide: Installation Testing with cryosparcm test
      • Guide: Verify CryoSPARC Installation with the Extensive Validation Job (v4.3+)
      • Guide: Verify CryoSPARC Installation with the Extensive Workflow (≤v4.2)
      • Guide: Performance Benchmarking (v4.3+)
      • Guide: Download Error Reports
      • Guide: Maintenance Mode and Configurable User Facing Messages
      • Guide: User Management
      • Guide: Multi-user Unix Permissions and Data Access Control
      • Guide: Lane Assignments and Restrictions
      • Guide: Queuing Directly to a GPU
      • Guide: Priority Job Queuing
      • Guide: Configuring Custom Variables for Cluster Job Submission Scripts
      • Guide: SSD Particle Caching in CryoSPARC
      • Guide: Data Management in CryoSPARC (v4.0+)
      • Guide: Data Cleanup (v4.3+)
      • Guide: Reduce Database Size (v4.3+)
      • Guide: Data Management in CryoSPARC (≤v3.3)
      • Guide: CryoSPARC Live Session Data Management
      • Guide: Manipulating .cs Files Created By CryoSPARC
      • Guide: Migrating your CryoSPARC Instance
      • Guide: EMDB-friendly XML file for FSC plots
    • Troubleshooting
  • Application Guide (v4.0+)
    • A Tour of the CryoSPARC Interface
    • Browsing the CryoSPARC Instance
    • Projects, Workspaces and Live Sessions
    • Jobs
    • Job Views: Cards, Tree, and Table
    • Creating and Running Jobs
    • Low Level Results Interface
    • Filters and Sorting
    • View Options
    • Tags
    • Flat vs Hierarchical Navigation
    • File Browser
    • Blueprints
    • Workflows
    • Inspecting Data
    • Managing Jobs
    • Interactive Jobs
    • Upload Local Files
    • Managing Data
    • Downloading and Exporting Data
    • Instance Management
    • Admin Panel
  • Cryo-EM Foundations
    • Image Formation
      • Contrast in Cryo-EM
      • Waves as Vectors
      • Aliasing
  • Expectation Maximization in Cryo-EM
  • Processing Data in cryoSPARC
    • Get Started with CryoSPARC: Introductory Tutorial (v4.0+)
    • Tutorial Videos
    • All Job Types in CryoSPARC
      • Import
        • Job: Import Movies
        • Job: Import Micrographs
        • Job: Import Particle Stack
        • Job: Import 3D Volumes
        • Job: Import Templates
        • Job: Import Result Group
        • Job: Import Beam Shift
      • Motion Correction
        • Job: Patch Motion Correction
        • Job: Full-Frame Motion Correction
        • Job: Local Motion Correction
        • Job: MotionCor2 (Wrapper) (BETA)
        • Job: Reference Based Motion Correction (BETA)
      • CTF Estimation
        • Job: Patch CTF Estimation
        • Job: Patch CTF Extraction
        • Job: CTFFIND4 (Wrapper)
        • Job: Gctf (Wrapper) (Legacy)
      • Exposure Curation
        • Job: Micrograph Denoiser (BETA)
        • Job: Micrograph Junk Detector (BETA)
        • Interactive Job: Manually Curate Exposures
      • Particle Picking
        • Interactive Job: Manual Picker
        • Job: Blob Picker
        • Job: Template Picker
        • Job: Filament Tracer
        • Job: Blob Picker Tuner
        • Interactive Job: Inspect Particle Picks
        • Job: Create Templates
      • Extraction
        • Job: Extract from Micrographs
        • Job: Downsample Particles
        • Job: Restack Particles
      • Deep Picking
        • Guideline for Supervised Particle Picking using Deep Learning Models
        • Deep Network Particle Picker
          • T20S Proteasome: Deep Particle Picking Tutorial
          • Job: Deep Picker Train and Job: Deep Picker Inference
        • Topaz (Bepler, et al)
          • T20S Proteasome: Topaz Particle Picking Tutorial
          • T20S Proteasome: Topaz Micrograph Denoising Tutorial
          • Job: Topaz Train and Job: Topaz Cross Validation
          • Job: Topaz Extract
          • Job: Topaz Denoise
      • Particle Curation
        • Job: 2D Classification
        • Interactive Job: Select 2D Classes
        • Job: Reference Based Auto Select 2D (BETA)
        • Job: Reconstruct 2D Classes
        • Job: Rebalance 2D Classes
        • Job: Class Probability Filter (Legacy)
        • Job: Rebalance Orientations
        • Job: Subset Particles by Statistic
      • 3D Reconstruction
        • Job: Ab-Initio Reconstruction
      • 3D Refinement
        • Job: Homogeneous Refinement
        • Job: Heterogeneous Refinement
        • Job: Non-Uniform Refinement
        • Job: Homogeneous Reconstruction Only
        • Job: Heterogeneous Reconstruction Only
        • Job: Homogeneous Refinement (Legacy)
        • Job: Non-uniform Refinement (Legacy)
      • CTF Refinement
        • Job: Global CTF Refinement
        • Job: Local CTF Refinement
        • Job: Exposure Group Utilities
      • Conformational Variability
        • Job: 3D Variability
        • Job: 3D Variability Display
        • Job: 3D Classification
        • Job: Regroup 3D Classes
        • Job: Reference Based Auto Select 3D (BETA)
        • Job: 3D Flexible Refinement (3DFlex) (BETA)
      • Postprocessing
        • Job: Sharpening Tools
        • Job: DeepEMhancer (Wrapper)
        • Job: Validation (FSC)
        • Job: Local Resolution Estimation
        • Job: Local Filtering
        • Job: ResLog Analysis
        • Job: ThreeDFSC (Wrapper) (Legacy)
      • Local Refinement
        • Job: Local Refinement
        • Job: Particle Subtraction
        • Job: Local Refinement (Legacy)
      • Helical Reconstruction
        • Helical symmetry in CryoSPARC
        • Job: Helical Refinement
        • Job: Symmetry search utility
        • Job: Average Power Spectra
      • Utilities
        • Job: Exposure Sets Tool
        • Job: Exposure Tools
        • Job: Generate Micrograph Thumbnails
        • Job: Cache Particles on SSD
        • Job: Check for Corrupt Particles
        • Job: Particle Sets Tool
        • Job: Reassign Particles to Micrographs
        • Job: Remove Duplicate Particles
        • Job: Symmetry Expansion
        • Job: Volume Tools
        • Job: Volume Alignment Tools
        • Job: Align 3D maps
        • Job: Split Volumes Group
        • Job: Orientation Diagnostics
      • Simulations
        • Job: Simulate Data (GPU)
        • Job: Simulate Data (Legacy)
    • CryoSPARC Tools
    • Data Processing Tutorials
      • Case study: End-to-end processing of a ligand-bound GPCR (EMPIAR-10853)
      • Case Study: DkTx-bound TRPV1 (EMPIAR-10059)
      • Case Study: Pseudosymmetry in TRPV5 and Calmodulin (EMPIAR-10256)
      • Case Study: End-to-end processing of an inactive GPCR (EMPIAR-10668)
      • Case Study: End-to-end processing of encapsulated ferritin (EMPIAR-10716)
      • Case Study: Exploratory data processing by Oliver Clarke
      • Tutorial: Tips for Membrane Protein Structures
      • Tutorial: Common CryoSPARC Plots
      • Tutorial: Negative Stain Data
      • Tutorial: Phase Plate Data
      • Tutorial: EER File Support
      • Tutorial: EPU AFIS Beam Shift Import
      • Tutorial: Patch Motion and Patch CTF
      • Tutorial: Float16 Support
      • Tutorial: Particle Picking Calibration
      • Tutorial: Blob Picker Tuner
      • Tutorial: Helical Processing using EMPIAR-10031 (MAVS)
      • Tutorial: Maximum Box Sizes for Refinement
      • Tutorial: CTF Refinement
      • Tutorial: Ewald Sphere Correction
      • Tutorial: Symmetry Relaxation
      • Tutorial: Orientation Diagnostics
      • Tutorial: BILD files in CryoSPARC v4.4+
      • Tutorial: Mask Creation
      • Case Study: Yeast U4/U6.U5 tri-snRNP
      • Tutorial: 3D Classification
      • Tutorial: 3D Variability Analysis (Part One)
      • Tutorial: 3D Variability Analysis (Part Two)
      • Tutorial: 3D Flexible Refinement
        • Installing 3DFlex Dependencies (v4.1–v4.3)
      • Tutorial: 3D Flex Mesh Preparation
    • Webinar Recordings
  • Real-time processing in cryoSPARC Live
    • About CryoSPARC Live
    • Prerequisites and Compute Resources Setup
    • How to Access cryoSPARC Live
    • UI Overview
    • New Live Session: Start to Finish Guide
    • CryoSPARC Live Tutorial Videos
    • Live Jobs and Session-Level Functions
    • Performance Metrics
    • Managing a CryoSPARC Live Session from the CLI
    • FAQs and Troubleshooting
  • Guides for v3
    • v3 User Interface Guide
      • Dashboard
      • Project and Workspace Management
      • Create and Build Jobs
      • Queue Job, Inspect Job and Other Job Actions
      • View and Download Results
      • Job Relationships
      • Resource Manager
      • User Management
    • Tutorial: Job Builder
    • Get Started with CryoSPARC: Introductory Tutorial (v3)
    • Tutorial: Manually Curate Exposures (v3)
  • Resources
    • Questions and Support
Powered by GitBook
On this page
  • Waves as vectors
  • Adding waves
  1. Cryo-EM Foundations
  2. Image Formation

Waves as Vectors

PreviousContrast in Cryo-EMNextAliasing

Last updated 5 months ago

Summary: Waves can be represented by vectors. The length of the vector represents the wave's amplitude and the direction the vector points represents the wave's phase. The wave's oscillation can be represented by rotating the vector.

Waves as vectors

A wave can be described by its amplitude, frequency, and phase. Phase describes how a wave evolves through time. As a quantity, it generally only makes sense as a phase shift relative to some other wave. For instance, these two waves are shifted by a quarter of their wavelength.

We would describe this as a phase shift of 90° or, more typically, π/2 in radians. At first, the notion of describing a phase shift (which in this graph looks like a movement of the wave left or right) as a rotation may be confusing. It can be helpful to imagine these waves as three-dimensional helices viewed from the side, rather than 2D waves:

Here, we see that a sine wave can be modeled as the rotation of a vector (blue arrow, right of the animation) with a length equal to the wave’s amplitude at a rotational velocity of ω=2πf\omega = 2\pi{}fω=2πf, where fff is the wave’s frequency. Put another way, the speed of rotation represents frequency — a vector which spins faster traces out a wave which oscillates more frequently.

Now, consider what happens when we rotate the vector by π/2:

The pink wave appears to be shifted forward in time compared to the blue wave by a quarter of the wavelength.

Adding waves

Summary: Adding two waves together can change their amplitude, phase, or both.

The vector representation is especially useful when we begin to consider sums of waves rather than individual sine waves. For instance, it is an intuitive result that when we add two sine waves with the same frequency and phase together we get another wave of the same frequency and phase, but with a greater amplitude:

Using the vector notation for this simple example, we observe the same behavior:

Adding the two vectors together produces a vector pointing in the same direction, rotating at the same speed, but with a longer total length. In this case, the utility of thinking about adding waves this way may be unclear, but consider the following surprising result:

In this example, the red wave has the same frequency as the blue wave, but a much smaller amplitude and a π/2 phase shift. When we add together these two waves, we get the purple wave as a result — it looks like a phase-shifted version of the blue wave! This result is less surprising if we represent the waves as vectors instead:

Because the red vector is always pointing perpendicular to the blue vector, adding the two has the effect of rotating the blue vector with only a very modest effect on the final magnitude. Recalling that a rotation is equivalent to a phase shift, we have arrived at the same result as directly adding each point of the wave.

The animation of vector rotation is helpful for developing a sense of what these vectors represent, but makes the figures cumbersome. For the rest of this guide, we will only draw the waves at some static position — implicitly, the vectors rotate as time passes or, equivalently, as we move through space. For instance, the above animation would be drawn like so:

Using this method, it is clear that the resulting wave has approximately the same amplitude as wave 1 (precisely ∣Wave 1∣2+∣Wave 2∣2\sqrt{|Wave\ 1|^2 + |Wave\ 2|^2}∣Wave 1∣2+∣Wave 2∣2​, where ∣Wave 1∣|Wave\ 1|∣Wave 1∣ is the magnitude of Wave 1’s vector), but has a phase shift of arctan⁡∣Wave 2∣∣Wave 1∣\arctan{\frac{|Wave\ 2|}{|Wave\ 1|}}arctan∣Wave 1∣∣Wave 2∣​. If ∣Wave 2∣≪∣Wave 1∣|Wave\ 2| \ll |Wave\ 1|∣Wave 2∣≪∣Wave 1∣, we can approximate the Result wave by shifting the phase of Wave 1 by the magnitude of Wave 2. This approximation is closely related to the Weak Phase Object approximation, covered in .

Contrast in Cryo-EM
A single cycle of two sine waves is shown. They are shfited by pi/2 radians, so the peak of one wave lines up with another wave crossing zero.
At the top, a sine wave oscillates up and down. A white line is drawn across the zero point of the wave, and a white arrow points up or down to the value of the wave at the furthest-right point. Bottom left: the same wave is displayed as a helix, viewed from an oblique angle. The arrow points to the tip of the helix. Bottom-right: the helix is viewed directly down its helical axis. The wave now looks like a circle, with the arrow rotating smoothly in a circle.
This animation is similar to the previous one, except a pink wave has been added with a pi/2 phase shift. In the bottom-right, the arrows make a right angle as they rotate in a circle.
Left: two sine waves of the same frequency and phase but differing amplitudes. Right: the waves added together have the same frequency but a greater amplitude.
An animation of the addition above. A short blue arrow and a short red arrow are rotating around their bases. When the waves are added, they form a longer line which is also rotating around its base.
Adding a large wave and a small wave with a pi/2 phase shift results in a wave which looks like a phase-shifted copy of the first wave.
Adding a small wave with a pi/2 phase shift results in a vector which follows the hypotenuse of the triangle formed by the two waves. When the phase-shifted wave is small, this resulting wave has essentially the same magnitude as the original wave.
A right angle formed by three vectors, labeled Wave 1, Wave 2, and Result (hypotenuse).