0Pricing
Neo4j Graph Database Fundamentals · Lesson

Running GDS Algorithms

Learn to execute various graph algorithms from the GDS library, including loading graphs into memory and configuring algorithms.

Running GDS Algorithms is a free Neo4j Graph Database Fundamentals lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Neo4j Graph Database Fundamentals learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

GDS Algorithm Workflow

The Graph Data Science (GDS) library in Neo4j helps us run powerful graph algorithms. To use GDS, you generally follow a three-step process:

  • Project: Load a subset of your graph into GDS's optimized in-memory store.
  • Execute: Run an algorithm on this in-memory graph.
  • Write Back: Optionally, write the results back to your Neo4j database.

Projecting Your Graph

Before running an algorithm, GDS needs to know which part of your database graph to analyze. This process is called graph projection.

You define which nodes and relationships, based on their labels and types, should be copied into GDS's fast in-memory representation. This makes algorithm execution much quicker.

Projecting Nodes Only

Let's project a simple graph containing only nodes with the label Person. We give our projected graph a name, like myGraph.

The gds.graph.project procedure creates this in-memory graph.

CALL gds.graph.project(
  'myGraph',
  'Person',
  {}
) YIELD graphName, nodeCount, relationshipCount;

Projecting Nodes and Relationships

More commonly, you'll project both nodes and relationships. Here, we project Person nodes and their KNOWS relationships.

We specify the node label and the relationship type. You can also add properties to the projection.

CALL gds.graph.project(
  'socialGraph',
  'Person',
  'KNOWS'
) YIELD graphName, nodeCount, relationshipCount;

Executing GDS Algorithms

Once your graph is projected, you can run various algorithms. GDS algorithms often have different execution modes:

  • Stream: Returns results directly as a stream of rows. Great for immediate analysis.
  • Stats: Returns only summary statistics about the algorithm's run.
  • Write: Writes the results back to your Neo4j database as new properties or relationships.

PageRank Stream Example

Let's run the PageRank algorithm on our socialGraph in stream mode. PageRank helps identify influential nodes.

We use gds.pageRank.stream and pass the name of our projected graph.

CALL gds.pageRank.stream('socialGraph')
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS person, score
ORDER BY score DESC
LIMIT 5;

Customizing Algorithm Settings

GDS algorithms are highly configurable. You can pass a map of parameters to fine-tune their behavior.

Common parameters include maxIterations, dampingFactor (for PageRank), or concurrency. Always check the GDS documentation for specific algorithm parameters.

PageRank with Custom Settings

Here, we run PageRank with a custom dampingFactor and limit the maxIterations. This gives you more control over the algorithm's execution and convergence.

CALL gds.pageRank.stream(
  'socialGraph',
  {
    maxIterations: 10,
    dampingFactor: 0.8
  }
)
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS person, score
ORDER BY score DESC
LIMIT 5;

Persisting Algorithm Results

Often, you'll want to store the results of an algorithm back into your Neo4j database. This allows you to query them later or use them in further analysis.

The write mode of GDS algorithms adds new properties to nodes or creates new relationships based on the algorithm's output.

Writing PageRank Scores

To write results, use the .write procedure, like gds.pageRank.write. You need to specify the property name where the score will be stored on the original nodes.

After running this, each Person node in your database will have a new property, pageRankScore.

CALL gds.pageRank.write(
  'socialGraph',
  {
    writeProperty: 'pageRankScore'
  }
)
YIELD nodeCount, ranIterations, didConverge;

GDS Workflow Check

Which of the following are essential steps in the typical GDS algorithm workflow?

Running GDS Algorithms Recap

Great job! You've learned the core steps for running GDS algorithms:

  • Projecting your graph into GDS memory using gds.graph.project.
  • Executing algorithms in stream, stats, or write modes.
  • Configuring algorithms with custom parameters.
  • Writing back results to your Neo4j database for persistence.

Next, you'll explore advanced GDS pipelines and integration with machine learning!

Frequently asked questions

Is the “Running GDS Algorithms” lesson free?

Yes — the full text of “Running GDS Algorithms” is free to read here on the web, and the Neo4j Graph Database Fundamentals course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Neo4j Graph Database Fundamentals course, upgrade to CoddyKit PRO.

What will I learn in “Running GDS Algorithms”?

Learn to execute various graph algorithms from the GDS library, including loading graphs into memory and configuring algorithms. You practise Neo4j Graph Database Fundamentals with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Neo4j Graph Database Fundamentals?

No prior experience is required. Neo4j Graph Database Fundamentals on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Running GDS Algorithms” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Neo4j Graph Database Fundamentals lesson?

Yes. Every Neo4j Graph Database Fundamentals lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Introduction to GDS Library
  2. Running GDS Algorithms
  3. GDS Pipelines and Machine Learning
  4. Graph Embeddings with GDS
← Back to Neo4j Graph Database Fundamentals