diff --git a/.readthedocs.yaml b/.readthedocs.yaml
new file mode 100644
index 0000000..87be936
--- /dev/null
+++ b/.readthedocs.yaml
@@ -0,0 +1,13 @@
+version: 2
+
+build:
+ os: "ubuntu-22.04"
+ tools:
+ python: "3.10"
+
+python:
+ install:
+ - requirements: docs/requirements.txt
+
+sphinx:
+ configuration: docs/soure/conf.py
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 0000000..c0424a1
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,2 @@
+Sphinx==8.0.2
+sphinx-rtd-theme==2.0.0
diff --git a/docs/source/_static/annotcolor.png b/docs/source/_static/annotcolor.png
new file mode 100644
index 0000000..fd67404
Binary files /dev/null and b/docs/source/_static/annotcolor.png differ
diff --git a/docs/source/_static/clear.svg b/docs/source/_static/clear.svg
new file mode 100644
index 0000000..0ba7218
--- /dev/null
+++ b/docs/source/_static/clear.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/docs/source/_static/exportdialog.png b/docs/source/_static/exportdialog.png
new file mode 100644
index 0000000..de96966
Binary files /dev/null and b/docs/source/_static/exportdialog.png differ
diff --git a/docs/source/_static/filterdialog.png b/docs/source/_static/filterdialog.png
new file mode 100644
index 0000000..830ff90
Binary files /dev/null and b/docs/source/_static/filterdialog.png differ
diff --git a/docs/source/_static/minus.svg b/docs/source/_static/minus.svg
new file mode 100644
index 0000000..17483d6
--- /dev/null
+++ b/docs/source/_static/minus.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/docs/source/_static/plus.svg b/docs/source/_static/plus.svg
new file mode 100644
index 0000000..66308ef
--- /dev/null
+++ b/docs/source/_static/plus.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/docs/source/_static/primerresults.png b/docs/source/_static/primerresults.png
new file mode 100644
index 0000000..b5d41ba
Binary files /dev/null and b/docs/source/_static/primerresults.png differ
diff --git a/docs/source/_static/primerseq.png b/docs/source/_static/primerseq.png
new file mode 100644
index 0000000..c4ecaa6
Binary files /dev/null and b/docs/source/_static/primerseq.png differ
diff --git a/docs/source/_static/primersetting.png b/docs/source/_static/primersetting.png
new file mode 100644
index 0000000..ed851d2
Binary files /dev/null and b/docs/source/_static/primersetting.png differ
diff --git a/docs/source/_static/update.svg b/docs/source/_static/update.svg
new file mode 100644
index 0000000..d0d7154
--- /dev/null
+++ b/docs/source/_static/update.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/docs/source/index.rst b/docs/source/index.rst
index a7aa805..39aa1a2 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -18,4 +18,6 @@ documentation for details.
install
window
usage
+ others
+ output
diff --git a/docs/source/others.rst b/docs/source/others.rst
new file mode 100644
index 0000000..920b1fb
--- /dev/null
+++ b/docs/source/others.rst
@@ -0,0 +1,120 @@
+Other Features
+==============
+
+Mapping Analysis
+----------------
+
+The mapping analysis will locate the found repeats into gene features (CDS, UTR, intron, exon). Before mapping, you should import gtf or gff annotation files.
+
+Go to **Toolbar**, and then click |locate| to perform mapping analysis. After mapping, the repeats mapped in gene exon (pink), intron (green), CDS (purple), 3'UTR (blue), 5'UTR (yellow) will be marked as different colors in table.
+
+ .. figure:: _static/annotcolor.png
+
+Design Primer
+-------------
+
+Krait2 use `primer3 `_ to design primers. Before primer design, you can set corresponding parameters for primer3. The meaning of primer3 tags can be found in `primer3 manual `_.
+
+ .. figure:: _static/primersetting.png
+ :width: 500
+ :align: center
+
+First, you should select some repeats in table, and then click |primer| to design primers. If primer designed successfully, the primers will be displayed in Primer result table.
+
+ .. figure:: _static/primerresults.png
+ :align: center
+
+The description of each column in primer result table:
+
+.. list-table::
+ :header-rows: 1
+ :align: center
+
+ * - Column
+ - Description
+ * - ID
+ - unique identifier generated by Krait
+ * - locus
+ - repeat identifier which is composed of repeat type, input file id and repeat id
+ * - entry
+ - primer entry id, each locus may has multiple designed primers
+ * - product size
+ - product size
+ * - strand
+ - forward or reverse
+ * - Tm
+ - melting temperatures for forward and reverse primers
+ * - GC content
+ - GC content for forward and reverse primers
+ * - 3' End stability
+ - 3' end stability for forward and reverse primers
+ * - primer sequences
+ - primer sequences for forward and reverse primers
+
+Click the row in primer table, you can view the primer sequence location in input sequence file. The sequences enclosed by the dotted boxes are the positions of the primers.
+
+ .. figure:: _static/primerseq.png
+ :align: center
+
+
+Perform Statistics
+------------------
+
+After searching repeat, you can click |statistics| to perform statistics analysis.
+
+Motif Standardization
+^^^^^^^^^^^^^^^^^^^^^
+
+**Level 0**
+
+no standardization will be performed
+
+**Level 1**
+
+Similar motifs. For example, CA can be viewed as AC. ATGcan represent TGA and GAT
+
+**Level 2**
+
+Reverse complementary motifs, including Level 1. For example, CAT is a reverse complementary motif of ATG. ATG can represent TGA,
+GAT, CAT, ATC and TCA
+
+**Level 3**
+
+Complementary motifs, including Level 1 and Level 2. For example, TAC is a complementary motif of ATG. ATG can represent TGA,GAT,
+CAT, ATC, TCA, TAC, ACT and CTA
+
+**Level 4**
+
+Reverse motifs, including Level 1, Level 2 and Level 3. For example, GTA is a reverse motif of ATG. ATG can represent TGA,GAT, CAT,
+ATC, TCA, TAC, ACT, CTA, GTA, TAG and AGT
+
+
+
+Filter Tables
+-------------
+
+The repeats in current table can be filtered by setting different conditions according to each column. Go to **Toolbar** and click |filter| to open filter dialog.
+
+ .. figure:: _static/filterdialog.png
+ :width: 500
+ :align: center
+
+Click |plus| to add filter condition, click |minus| to remove current filter condition, click |clear| to clear all filter conditions, after setting filters, you can click |update| update table to do filter and update the rows in current table.
+
+
+.. |locate| image:: _static/locating.svg
+ :width: 20
+.. |primer| image:: _static/primer.svg
+ :width: 20
+.. |statistics| image:: _static/statistics.svg
+ :width: 20
+.. |filter| image:: _static/filter.svg
+ :width: 20
+.. |plus| image:: _static/plus.svg
+ :width: 20
+.. |minus| image:: _static/minus.svg
+ :width: 20
+.. |clear| image:: _static/clear.svg
+ :width: 20
+.. |update| image:: _static/update.svg
+ :width: 20
\ No newline at end of file
diff --git a/docs/source/output.rst b/docs/source/output.rst
new file mode 100644
index 0000000..62143bd
--- /dev/null
+++ b/docs/source/output.rst
@@ -0,0 +1,25 @@
+Export Results
+==============
+
+Export Result Tables
+--------------------
+
+Krait2 supports exporting results to csv or tsv formatted file.
+
+Go to **File** menu, click **Export selected rows...** to export selected rows in current table into a file.
+
+Go to **File** menu, click **Export current table...** to export all rows in current table into a file.
+
+Go to **File** menu, click **Export all tables...** to open exporting dialog. You can export all tables for current input file or for all input files. You can also select csv or tsv as output format.
+
+ .. figure:: _static/exportdialog.png
+ :width: 400
+ :align: center
+
+
+Export Statistics Report
+------------------------
+
+Krait2 allows users to export html formatted statistical report file.
+
+Go to **File** menu, click **Export statistics report...** to export html file.
\ No newline at end of file
diff --git a/docs/source/usage.rst b/docs/source/usage.rst
index 1c8f0d0..ff2fc56 100644
--- a/docs/source/usage.rst
+++ b/docs/source/usage.rst
@@ -207,6 +207,7 @@ The description of each column in GTRs table:
* - motif
- repeat unit of GTR
+
.. |ssr| image:: _static/ssr.svg
:width: 20
.. |cssr| image:: _static/cssr.svg