{"id":34112,"date":"2024-08-02T05:40:53","date_gmt":"2024-08-02T05:40:53","guid":{"rendered":"https:\/\/kalilinuxtutorials.com\/?p=34112"},"modified":"2024-08-02T05:40:55","modified_gmt":"2024-08-02T05:40:55","slug":"annchor","status":"publish","type":"post","link":"https:\/\/kalilinuxtutorials.com\/annchor\/","title":{"rendered":"ANNchor &#8211; Accelerating k-NN Graphs For Complex Metrics With Machine Learning"},"content":{"rendered":"\n<p>ANNchor is a python library which constructs approximate\u00a0<em>k<\/em>-nearest neighbour graphs for slow metrics. <\/p>\n\n\n\n<p>The\u00a0<em>k<\/em>-NN graph is an extremely useful data structure that appears in a wide variety of applications, for example: clustering, dimensionality reduction, visualisation and exploratory data analysis (EDA). <\/p>\n\n\n\n<p>However, if we want to use a slow metric, these\u00a0<em>k<\/em>-NN graphs can take an exceptionally long time to compute. <\/p>\n\n\n\n<p>Typical slow metrics include the Wasserstein metric (Earth Mover&#8217;s distance) applied to images, and Levenshtein (Edit) distance on long strings, where the time taken to compute these distances is significantly longer than a typical Euclidean distance.<\/p>\n\n\n\n<p>ANNchor uses Machine Learning methods to infer true distances between points in a data set from a variety of features derived from anchor points (aka landmarks\/waypoints). <\/p>\n\n\n\n<p>In practice, this means that ANNchor does not make as many calls to the underlying metric as other state of the art\u00a0<em>k<\/em>-NN graph generation techniques. <\/p>\n\n\n\n<p>This translates to quicker run times, especially when the metric is slow.<\/p>\n\n\n\n<p>Results from ANNchor can easily be combined with other popular libraries in the Data Science community. <\/p>\n\n\n\n<p>In the docs we give examples of how to use ANNchor in an EDA pipeline alongside\u00a0UMAP\u00a0and\u00a0<a href=\"https:\/\/github.com\/scikit-learn-contrib\/hdbscan\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">HDBSCAN<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Installation<\/strong><a href=\"https:\/\/github.com\/gchq\/annchor#installation\"><\/a><\/h2>\n\n\n\n<p>Clone this repo and install with pip:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install git+https:\/\/github.com\/gchq\/annchor.git<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Basic Usage<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>import numpy as np\nimport annchor\n\nX =          #your data, list\/np.array of items\ndistance =   #your distance function, distance(X&#91;i],X&#91;j]) = d\n\nann = annchor.Annchor(X,\n                      distance,\n                      n_anchors=15,\n                      n_neighbors=15,\n                      p_work=0.1)\nann.fit()\n\nprint(ann.neighbor_graph)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>ANNchor is a python library which constructs approximate\u00a0k-nearest neighbour graphs for slow metrics. The\u00a0k-NN graph is an extremely useful data structure that appears in a wide variety of applications, for example: clustering, dimensionality reduction, visualisation and exploratory data analysis (EDA). However, if we want to use a slow metric, these\u00a0k-NN graphs can take an exceptionally [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":34115,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[38],"tags":[737,6321,6052,6325],"class_list":["post-34112","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-cybersecurity","tag-informationsecurity","tag-kalilinux","tag-kalilinuxtools"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ANNchor - Accelerating k-NN Graphs For Complex Metrics With<\/title>\n<meta name=\"description\" content=\"ANNchor is a python library which constructs approximate\u00a0k-nearest neighbour graphs for slow metrics. The\u00a0k-NN graph is an extremely useful\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalilinuxtutorials.com\/annchor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ANNchor - Accelerating k-NN Graphs For Complex Metrics With\" \/>\n<meta property=\"og:description\" content=\"ANNchor is a python library which constructs approximate\u00a0k-nearest neighbour graphs for slow metrics. The\u00a0k-NN graph is an extremely useful\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalilinuxtutorials.com\/annchor\/\" \/>\n<meta property=\"og:site_name\" content=\"Kali Linux Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-02T05:40:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-02T05:40:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp\" \/>\n<meta name=\"author\" content=\"Varshini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp\" \/>\n<meta name=\"twitter:creator\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:site\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Varshini\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/\"},\"author\":{\"name\":\"Varshini\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/3c3b3f82a74146532c4def299fe069fa\"},\"headline\":\"ANNchor &#8211; Accelerating k-NN Graphs For Complex Metrics With Machine Learning\",\"datePublished\":\"2024-08-02T05:40:53+00:00\",\"dateModified\":\"2024-08-02T05:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/\"},\"wordCount\":220,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp\",\"keywords\":[\"cybersecurity\",\"informationsecurity\",\"kalilinux\",\"kalilinuxtools\"],\"articleSection\":[\"software\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/annchor\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/annchor\/\",\"name\":\"ANNchor - Accelerating k-NN Graphs For Complex Metrics With\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp\",\"datePublished\":\"2024-08-02T05:40:53+00:00\",\"dateModified\":\"2024-08-02T05:40:55+00:00\",\"description\":\"ANNchor is a python library which constructs approximate\u00a0k-nearest neighbour graphs for slow metrics. The\u00a0k-NN graph is an extremely useful\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/annchor\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage\",\"url\":\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp\",\"contentUrl\":\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp\",\"width\":\"1600\",\"height\":\"900\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"name\":\"Kali Linux Tutorials\",\"description\":\"Kali Linux Tutorials\",\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\",\"name\":\"Kali Linux Tutorials\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"contentUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"width\":272,\"height\":90,\"caption\":\"Kali Linux Tutorials\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/CyberEdition\",\"https:\/\/www.threads.com\/@cybersecurityedition\",\"https:\/\/www.linkedin.com\/company\/cyberedition\",\"https:\/\/www.instagram.com\/cybersecurityedition\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/3c3b3f82a74146532c4def299fe069fa\",\"name\":\"Varshini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f19f43637c0f83fb3dcfb498f306b2a9ac0025ce85840ab52ee8c01f5361f269?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f19f43637c0f83fb3dcfb498f306b2a9ac0025ce85840ab52ee8c01f5361f269?s=96&d=mm&r=g\",\"caption\":\"Varshini\"},\"description\":\"Varshini is a Cyber Security expert in Threat Analysis, Vulnerability Assessment, and Research. Passionate about staying ahead of emerging Threats and Technologies.\",\"sameAs\":[\"http:\/\/kalilinuxtutorials.com\",\"https:\/\/www.linkedin.com\/in\/senthamil-selvan-14043a285\/\"],\"url\":\"https:\/\/kalilinuxtutorials.com\/author\/vinayakagrawal\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ANNchor - Accelerating k-NN Graphs For Complex Metrics With","description":"ANNchor is a python library which constructs approximate\u00a0k-nearest neighbour graphs for slow metrics. The\u00a0k-NN graph is an extremely useful","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kalilinuxtutorials.com\/annchor\/","og_locale":"en_US","og_type":"article","og_title":"ANNchor - Accelerating k-NN Graphs For Complex Metrics With","og_description":"ANNchor is a python library which constructs approximate\u00a0k-nearest neighbour graphs for slow metrics. The\u00a0k-NN graph is an extremely useful","og_url":"https:\/\/kalilinuxtutorials.com\/annchor\/","og_site_name":"Kali Linux Tutorials","article_published_time":"2024-08-02T05:40:53+00:00","article_modified_time":"2024-08-02T05:40:55+00:00","og_image":[{"url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","type":"","width":"","height":""}],"author":"Varshini","twitter_card":"summary_large_image","twitter_image":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","twitter_creator":"@CyberEdition","twitter_site":"@CyberEdition","twitter_misc":{"Written by":"Varshini","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kalilinuxtutorials.com\/annchor\/#article","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/annchor\/"},"author":{"name":"Varshini","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/3c3b3f82a74146532c4def299fe069fa"},"headline":"ANNchor &#8211; Accelerating k-NN Graphs For Complex Metrics With Machine Learning","datePublished":"2024-08-02T05:40:53+00:00","dateModified":"2024-08-02T05:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/annchor\/"},"wordCount":220,"commentCount":0,"publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage"},"thumbnailUrl":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","keywords":["cybersecurity","informationsecurity","kalilinux","kalilinuxtools"],"articleSection":["software"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kalilinuxtutorials.com\/annchor\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kalilinuxtutorials.com\/annchor\/","url":"https:\/\/kalilinuxtutorials.com\/annchor\/","name":"ANNchor - Accelerating k-NN Graphs For Complex Metrics With","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage"},"thumbnailUrl":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","datePublished":"2024-08-02T05:40:53+00:00","dateModified":"2024-08-02T05:40:55+00:00","description":"ANNchor is a python library which constructs approximate\u00a0k-nearest neighbour graphs for slow metrics. The\u00a0k-NN graph is an extremely useful","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalilinuxtutorials.com\/annchor\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/annchor\/#primaryimage","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","contentUrl":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","width":"1600","height":"900"},{"@type":"WebSite","@id":"https:\/\/kalilinuxtutorials.com\/#website","url":"https:\/\/kalilinuxtutorials.com\/","name":"Kali Linux Tutorials","description":"Kali Linux Tutorials","publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kalilinuxtutorials.com\/#organization","name":"Kali Linux Tutorials","url":"https:\/\/kalilinuxtutorials.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/","url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","contentUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","width":272,"height":90,"caption":"Kali Linux Tutorials"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/CyberEdition","https:\/\/www.threads.com\/@cybersecurityedition","https:\/\/www.linkedin.com\/company\/cyberedition","https:\/\/www.instagram.com\/cybersecurityedition\/"]},{"@type":"Person","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/3c3b3f82a74146532c4def299fe069fa","name":"Varshini","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f19f43637c0f83fb3dcfb498f306b2a9ac0025ce85840ab52ee8c01f5361f269?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f19f43637c0f83fb3dcfb498f306b2a9ac0025ce85840ab52ee8c01f5361f269?s=96&d=mm&r=g","caption":"Varshini"},"description":"Varshini is a Cyber Security expert in Threat Analysis, Vulnerability Assessment, and Research. Passionate about staying ahead of emerging Threats and Technologies.","sameAs":["http:\/\/kalilinuxtutorials.com","https:\/\/www.linkedin.com\/in\/senthamil-selvan-14043a285\/"],"url":"https:\/\/kalilinuxtutorials.com\/author\/vinayakagrawal\/"}]}},"jetpack_featured_media_url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1HcQ36APqcXrglC_FUbQ2j9sFrOi2Nl5-ed76bTi_elPF7GnXzhJHL6g1w9LqZh-DmrSbwIKlNbOunEcApAtoGuFX0__WU4sBPTuWxBvAfgbQH7ohjyX-O5fp3e1StaMqsLRTeIggijE79DaKnqZWxnUUEXpKIVqVr-OqFkCipzDgmO-fxBHSbWBBP5C6\/s16000\/ANNchor.webp","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":36405,"url":"https:\/\/kalilinuxtutorials.com\/megr-apt\/","url_meta":{"origin":34112,"position":0},"title":"MEGR-APT : Harnessing Graph Neural Networks For Advanced Threat Detection","author":"Varshini","date":"February 13, 2025","format":false,"excerpt":"MEGR-APT is an advanced and scalable system designed for hunting Advanced Persistent Threats (APTs) by identifying suspicious subgraphs that align with specific attack scenarios, as described in Cyber Threat Intelligence (CTI) reports. Its primary functionality revolves around two key processes: memory-efficient extraction of suspicious subgraphs and fast subgraph matching using\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/MEGR-APT.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/MEGR-APT.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/MEGR-APT.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/MEGR-APT.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/MEGR-APT.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/MEGR-APT.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":2101,"url":"https:\/\/kalilinuxtutorials.com\/mercure-tool-security-managers-phishing\/","url_meta":{"origin":34112,"position":1},"title":"Mercure &#8211; Tool For Security Managers Who Want To Train Their Colleague To Phishing","author":"R K","date":"August 1, 2018","format":false,"excerpt":"Mercure is a tool for security managers who want to train their colleague to phishing. What Mercure can do: Create email templates Create target lists Create landing pages Handle attachments Let you keep track in the Campaign dashboard Track email reads, landing page visits, and attachment execution. Harvest credentials Schedule\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/1-3.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/1-3.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/1-3.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/1-3.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/1-3.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/07\/1-3.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":9028,"url":"https:\/\/kalilinuxtutorials.com\/netdata\/","url_meta":{"origin":34112,"position":2},"title":"Netdata &#8211; Real-time Performance Monitoring","author":"R K","date":"February 14, 2020","format":false,"excerpt":"Netdata\u00a0is\u00a0distributed, real-time, performance and health monitoring for systems and applications. It is a highly-optimized monitoring agent you install on all your systems and containers. Netdata provides\u00a0unparalleled insights,\u00a0in real-time, of everything happening on the systems it runs (including web servers, databases, applications), using\u00a0highly interactive web dashboards. It can run autonomously, without\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5452,"url":"https:\/\/kalilinuxtutorials.com\/mozdef-mozilla-enterprise-defense-platform\/","url_meta":{"origin":34112,"position":3},"title":"MozDef: Mozilla Enterprise Defense Platform","author":"R K","date":"June 23, 2019","format":false,"excerpt":"The inspiration for MozDef comes from the large arsenal of tools available to attackers. Suites like metasploit, armitage, lair, dradis and others are readily available to help attackers coordinate, share intelligence and finely tune their attacks in real time. Defenders are usually limited to wikis, ticketing systems and manual tracking\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4590,"url":"https:\/\/kalilinuxtutorials.com\/netdata-performance-monitoring\/","url_meta":{"origin":34112,"position":4},"title":"NetData : Real-time Performance Monitoring Tool","author":"R K","date":"April 13, 2019","format":false,"excerpt":"Netdata is distributed, real-time, performance and health monitoring for systems and applications. It is a highly optimized monitoring agent you install on all your systems and containers. Netdata provides unparalleled insights, in real-time, of everything happening on the systems it runs (including web servers, databases, applications), using highly interactive web\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"Netdata","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2019\/04\/Netdata-1024x628.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2019\/04\/Netdata-1024x628.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2019\/04\/Netdata-1024x628.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2019\/04\/Netdata-1024x628.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":13845,"url":"https:\/\/kalilinuxtutorials.com\/joern\/","url_meta":{"origin":34112,"position":5},"title":"Joern : Open-source Code Analysis Platform For C\/C++\/Java Based On Code Property Graphs","author":"R K","date":"June 28, 2021","format":false,"excerpt":"Joern is an open-source Code Analysis Platform For C\/C++\/Java Based On Code Property Graphs. Quick Installation wget https:\/\/github.com\/ShiftLeftSecurity\/joern\/releases\/latest\/download\/joern-install.shchmod +x .\/joern-install.shsudo .\/joern-install.shjoernCompiling (synthetic)\/ammonite\/predef\/interpBridge.scCompiling (synthetic)\/ammonite\/predef\/replBridge.scCompiling (synthetic)\/ammonite\/predef\/DefaultPredef.scCompiling \/home\/tmp\/shiftleft\/joern\/(console)\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255d \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551\u255a\u2588\u2588\u2557\u2588\u2588\u2551\u255a\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2551\u255a\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255djoern> If the installation script fails for any reason,\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/34112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/comments?post=34112"}],"version-history":[{"count":2,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/34112\/revisions"}],"predecessor-version":[{"id":34114,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/34112\/revisions\/34114"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media\/34115"}],"wp:attachment":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media?parent=34112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/categories?post=34112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/tags?post=34112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}