diff --git a/backend/metagenedb/apps/catalog/migrations/0029_source.py b/backend/metagenedb/apps/catalog/migrations/0029_source.py
index 57129c3dd4bcbf16bf4b07e0e83c1c4ff9d977c0..58f7b0d07029041ef334048bd5f4e227e3926c40 100644
--- a/backend/metagenedb/apps/catalog/migrations/0029_source.py
+++ b/backend/metagenedb/apps/catalog/migrations/0029_source.py
@@ -15,7 +15,7 @@ def create_sources(apps, schema_editor):
         {
             'name': 'IGC-9.9M',
             'url': 'https://db.cngb.org/microbiome/genecatalog/genecatalog_human/',
-            'doi': '10.1038/s41467-020-14677-3'
+            'doi': '10.1038/nbt.2942'
         },
     ]
     for item in items_to_create:
diff --git a/backend/metagenedb/apps/catalog/serializers/gene.py b/backend/metagenedb/apps/catalog/serializers/gene.py
index 2f034bd35da77b1acfef7c7d16b8acb03e005e66..87368ea07060677c8d064bf0ed6fda2788d0b8c1 100644
--- a/backend/metagenedb/apps/catalog/serializers/gene.py
+++ b/backend/metagenedb/apps/catalog/serializers/gene.py
@@ -3,11 +3,12 @@ import traceback
 
 from rest_framework import serializers
 from rest_framework.utils import model_meta
-from metagenedb.apps.catalog.models import Function, Gene, GeneFunction, Taxonomy
+from metagenedb.apps.catalog.models import Function, Gene, GeneFunction, Source, Taxonomy
 
 from .asymetricslugrelatedfield import AsymetricSlugRelatedField
 from .bulk_list import BulkListSerializer
 from .function import FunctionSerializer
+from .source import SourceSerializer
 from .taxonomy import SimpleTaxonomySerializer
 
 
@@ -65,6 +66,12 @@ class GeneSerializer(serializers.ModelSerializer):
         slug_field='tax_id',
         required=False,
     )
+    source = AsymetricSlugRelatedField.from_serializer(
+        SourceSerializer,
+        queryset=Source.objects.all(),
+        slug_field='name',
+        required=False,
+    )
 
     class Meta:
         model = Gene
diff --git a/backend/metagenedb/apps/catalog/serializers/source.py b/backend/metagenedb/apps/catalog/serializers/source.py
new file mode 100644
index 0000000000000000000000000000000000000000..97930a9d66f7524a887f07996d6c039b116e8525
--- /dev/null
+++ b/backend/metagenedb/apps/catalog/serializers/source.py
@@ -0,0 +1,11 @@
+from rest_framework import serializers
+from metagenedb.apps.catalog.models import Source
+
+
+class SourceSerializer(serializers.ModelSerializer):
+
+    class Meta:
+        model = Source
+        fields = (
+            'name', 'url', 'doi'
+        )
diff --git a/frontend/src/views/genes/genes.html b/frontend/src/views/genes/genes.html
index fccf0734cdbc183e9613d40e48581ccbeb9bb5c3..a0d41bf4874771ecfb64ff3742fb949e60feb3de 100644
--- a/frontend/src/views/genes/genes.html
+++ b/frontend/src/views/genes/genes.html
@@ -337,7 +337,14 @@
                 </v-btn>
               </template>
             </td>
-            <td class="text-xs">{{ props.item.source }}</td>
+            <td class="text-xs">
+              {{ props.item.source }}
+              <v-btn :href="props.item.source_url" icon flat small target="_blank" class="secondary--text mt-1 ml-0" v-if="props.item.source">
+              <v-icon small>
+                open_in_new
+              </v-icon>
+              </v-btn>
+            </td>
             </template>
           </v-data-table>
         </v-list>
diff --git a/frontend/src/views/genes/genes.js b/frontend/src/views/genes/genes.js
index 7e7c820fe8f53841c47ba94f0d25230af76170cc..ba4c8ca7c416fc0af12da3782ec4fc5883819afb 100644
--- a/frontend/src/views/genes/genes.js
+++ b/frontend/src/views/genes/genes.js
@@ -233,6 +233,10 @@ export default {
               item.tax_url = ncbiTaxUrl + item.taxonomy.tax_id;
               item.taxonomy = `${item.taxonomy.name} (${item.taxonomy.rank})`;
             }
+            if (item.source) {
+              item.source_url = item.source.url;
+              item.source = item.source.name;
+            }
             if (item.functions) {
               const { functions } = item;
               item.keggs = [];