-\subsection{Extract Gene Features}
-The goal of this step is trying to find maximum core genes from sets of genes (\textit{Vectors}) where stored in the local database from the annotation process. The key of finding core genes is to collect from each iteration of genes comparisons the maximum number of common genes. To do so, the system build an \textit{Intersection core matrix(ICM)}. ICM here is a two dimensional symmetric matrix (considered as a vector space) where each row and column represent a vector for one genome. Each position in ICM stores the \textit{intersection scores}. Intersection Score(IS) is the cardinality number of a core genes comes from intersecting one vector with other vectors in vector space. Taking maximum cardinality from each row and then take the maximum of them will result to select the best two genomes with their maximum core. Mathematically speaking, if we have an $m \times n$ vector space matrix where $m=n=$number of vectors in local database, then lets consider:\\
+\begin{algorithm}[H]
+\caption{Find the Maximum similarity score between two sequences}
+\label{Alg3:genechk}
+\begin{algorithmic}
+\REQUIRE $gen1,gen2 \leftarrow \text{NCBI gene sequence, Dogma gene sequence}$
+\ENSURE $\text{Maximum similarity score}$
+\STATE $Score1 \leftarrow needle(gen1,gen2)$
+\STATE $Score2 \leftarrow needle(gen1,Reverse(gen2))$
+\STATE $Score3 \leftarrow needle(gen1,Complement(gen2))$
+\STATE $Score4 \leftarrow needle(gen1,Reverse(Complement(gen2)))$
+\IF {$max(Score1, Score2, Score3, Score4)==Score1$}
+ \RETURN $Score1$
+\ELSIF {$max(Score1, Score2, Score3, Score4)==Score2$}
+ \RETURN $Score2$
+\ELSIF {$max(Score1, Score2, Score3, Score4)==Score3$}
+ \RETURN $Score3$
+\ELSIF {$max(Score1, Score2, Score3, Score4)==Score4$}
+ \RETURN $Score4$
+\ENDIF
+\end{algorithmic}
+\end{algorithm}
+
+\subsubsection{Intersection Core Matrix (\textit{ICM})}
+
+The idea behind extracting core genes is to collect iteratively the maximum number of common genes between two genomes. To do so, the system builds an \textit{Intersection core matrix (ICM)}. ICM is a two dimensional symmetric matrix where each row and column represent one genome. Each position in ICM stores the \textit{intersection scores(IS)}. The Intersection Score is the cardinality number of a core genes which comes from intersecting one genome with other ones. Maximum cardinality results to select two genomes with their maximum core. Mathematically speaking, if we have an $n \times n$ matrix where $n=\text{number of genomes in local database}$, then lets consider:\\