diff --git a/src/gui/load_results_dialog/load_results_dialog.ui b/src/gui/load_results_dialog/load_results_dialog.ui
index cd022f4b49a7f1947bb05b61dcae4b5f4cf33b5d..205c242162a31707843547fb31758322d9d049d8 100644
--- a/src/gui/load_results_dialog/load_results_dialog.ui
+++ b/src/gui/load_results_dialog/load_results_dialog.ui
@@ -88,9 +88,16 @@
      <property name="title">
       <string>Peptide and protein filters</string>
      </property>
-     <layout class="QVBoxLayout" name="filter_parameter_layout"/>
+     <layout class="QVBoxLayout" name="filter_parameter_layout">
+      <item>
+       <widget class="AutomaticFilterWidget" name="automatic_filter_widget" native="true"/>
+      </item>
+     </layout>
     </widget>
    </item>
+   <item>
+    <widget class="ContaminantWidget" name="contaminant_widget" native="true"/>
+   </item>
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
@@ -124,6 +131,20 @@
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>ContaminantWidget</class>
+   <extends>QWidget</extends>
+   <header>gui/widgets/contaminant_widget/contaminantwidget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>AutomaticFilterWidget</class>
+   <extends>QWidget</extends>
+   <header>gui/widgets/automatic_filter_widget/automaticfilterwidget.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
  <resources/>
  <connections>
   <connection>
diff --git a/src/gui/load_results_dialog/loadresultsdialog.cpp b/src/gui/load_results_dialog/loadresultsdialog.cpp
index 4fbf2035f528cf53f62aa5ce6e5fdd95158a60c1..df97b21b4911c4e963f0b547fc16ad635cfc4d7a 100644
--- a/src/gui/load_results_dialog/loadresultsdialog.cpp
+++ b/src/gui/load_results_dialog/loadresultsdialog.cpp
@@ -39,22 +39,18 @@ LoadResultsDialog::LoadResultsDialog(QWidget * parent):
     this->setModal(true);
     _p_file_list = new QStringListModel();
 
-
-    _p_automatic_filter_widget = new AutomaticFilterWidget(this);
-    _p_automatic_filter_widget->hideButton();
+    ui->automatic_filter_widget->hideButton();
 
     QSettings settings;
-    AutomaticFilterParameters param = _p_automatic_filter_widget->getAutomaticFilterParameters();
+    AutomaticFilterParameters param = ui->automatic_filter_widget->getAutomaticFilterParameters();
     param.setFilterCrossSamplePeptideNumber(settings.value("automatic_filter/cross_sample", "true").toBool());
     param.setFilterMinimumPeptidePerMatch((unsigned int) settings.value("automatic_filter/peptide_number", "2").toInt());
     param.setFilterPeptideEvalue(settings.value("automatic_filter/peptide_evalue", "0.05").toDouble());
     param.setFilterProteinEvalue(settings.value("automatic_filter/protein_evalue", "0.01").toDouble());
-    _p_automatic_filter_widget->setAutomaticFilterParameters(param);
-
+    ui->automatic_filter_widget->setAutomaticFilterParameters(param);
 
 
 
-    ui->filter_parameter_layout->addWidget(_p_automatic_filter_widget);
 #if QT_VERSION >= 0x050000
     // Qt5 code
 #else
@@ -68,7 +64,6 @@ LoadResultsDialog::LoadResultsDialog(QWidget * parent):
 LoadResultsDialog::~LoadResultsDialog()
 {
     delete _p_file_list;
-    delete _p_automatic_filter_widget;
     delete ui;
 }
 
@@ -82,7 +77,7 @@ QStringList LoadResultsDialog::getFileList() const {
 }
 
 AutomaticFilterParameters LoadResultsDialog::getAutomaticFilterParameters() const {
-    return _p_automatic_filter_widget->getAutomaticFilterParameters();
+    return ui->automatic_filter_widget->getAutomaticFilterParameters();
 }
 void LoadResultsDialog::clearFileList() {
     _p_file_list->removeRows( 0, _p_file_list->rowCount() );
diff --git a/src/gui/load_results_dialog/loadresultsdialog.h b/src/gui/load_results_dialog/loadresultsdialog.h
index 72be680f4550998c1c7115bb82f41bcdf76fd382..3d02ae1796ee3caaa7eb77b3125d5b2853476b9e 100644
--- a/src/gui/load_results_dialog/loadresultsdialog.h
+++ b/src/gui/load_results_dialog/loadresultsdialog.h
@@ -54,7 +54,6 @@ signals:
 private:
     Ui::LoadResultsDialog *ui;
     QStringListModel * _p_file_list;
-    AutomaticFilterWidget* _p_automatic_filter_widget;
 
 };
 
diff --git a/src/gui/widgets/contaminant_widget/contaminant_widget.ui b/src/gui/widgets/contaminant_widget/contaminant_widget.ui
index dddbd58151aa062f483d278fac60013b0a9b787d..5255bcd7869a9987a881fbf4929f2bf6f6a8f6b8 100644
--- a/src/gui/widgets/contaminant_widget/contaminant_widget.ui
+++ b/src/gui/widgets/contaminant_widget/contaminant_widget.ui
@@ -6,14 +6,72 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
+    <width>405</width>
     <height>300</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QGroupBox" name="contaminant_groupbox">
+     <property name="title">
+      <string>Contaminants</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_6">
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_4">
+        <item>
+         <widget class="QRadioButton" name="contaminant_file_radiobutton">
+          <property name="toolTip">
+           <string>select contaminants from fasta files</string>
+          </property>
+          <property name="text">
+           <string>contaminant file</string>
+          </property>
+          <attribute name="buttonGroup">
+           <string notr="true">contaminant_source_buttongroup</string>
+          </attribute>
+         </widget>
+        </item>
+        <item>
+         <widget class="QRadioButton" name="contaminant_regexp_radiobutton">
+          <property name="toolTip">
+           <string>select contaminants using a regular expression</string>
+          </property>
+          <property name="text">
+           <string>contaminant &amp;regular expression</string>
+          </property>
+          <attribute name="buttonGroup">
+           <string notr="true">contaminant_source_buttongroup</string>
+          </attribute>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <widget class="QListView" name="contaminant_database_listview"/>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_8">
+        <item>
+         <widget class="QLineEdit" name="contaminant_protein_regexp_line_edit">
+          <property name="placeholderText">
+           <string>^conta\\|</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
  </widget>
  <resources/>
  <connections/>
+ <buttongroups>
+  <buttongroup name="contaminant_source_buttongroup"/>
+ </buttongroups>
 </ui>
diff --git a/src/gui/widgets/contaminant_widget/contaminantwidget.cpp b/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
index 61c0dd3b570be8535142fe9ffa94f99c687de2d4..ab94e6497f402d52ef092d539cc3ee149a27df0d 100644
--- a/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
+++ b/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
@@ -41,6 +41,10 @@ ContaminantWidget::ContaminantWidget(QWidget * parent):
     qDebug() << "ContaminantWidget::ContaminantWidget begin";
     ui->setupUi(this);
 
+    _p_fasta_str_li = new QStandardItemModel();
+    ui->contaminant_database_listview->setModel(_p_fasta_str_li);
+    QItemSelectionModel * selection_model = ui->contaminant_database_listview->selectionModel();
+    ui->contaminant_database_listview->setSelectionMode(QAbstractItemView::MultiSelection);
     qDebug() << "ContaminantWidget::ContaminantWidget end";
 }
 
@@ -48,5 +52,31 @@ ContaminantWidget::~ContaminantWidget()
 {
     qDebug() << "ContaminantWidget::~ContaminantWidget";
     delete ui;
+    delete _p_fasta_str_li;
     qDebug() << "ContaminantWidget::~ContaminantWidget end";
 }
+
+
+void ContaminantWidget::setRegexpContaminantPattern(const QString & pattern) {
+    ui->contaminant_protein_regexp_line_edit->setText(pattern);
+}
+
+const QString ContaminantWidget::getRegexpContaminant() const {
+
+    return ui->contaminant_protein_regexp_line_edit->text();
+}
+
+void ContaminantWidget::setFastaFileList(std::vector<FastaFileSp> fasta_file_list) {
+
+    _p_fasta_str_li->removeRows(0, _p_fasta_str_li->rowCount());
+    for (FastaFileSp fasta_file : fasta_file_list ) {
+
+        QStandardItem *item;
+        item = new QStandardItem(QString("%1").arg(fasta_file.get()->getFilename()));
+        item->setEditable(false);
+        item->setData(QVariant::fromValue(fasta_file.get()), Qt::UserRole);
+        _p_fasta_str_li->appendRow(item);
+        //item->setData(QVariant(QString("%1").arg(fasta_file.get()->getAbsoluteFilePath())),Qt::UserRole);
+    }
+
+}
diff --git a/src/gui/widgets/contaminant_widget/contaminantwidget.h b/src/gui/widgets/contaminant_widget/contaminantwidget.h
index 5ffe1dfc13907bba6f4f79dbbafefcf81ef22254..6971cd12134579df1d20ba48d39dfcf6bf0e7cc4 100644
--- a/src/gui/widgets/contaminant_widget/contaminantwidget.h
+++ b/src/gui/widgets/contaminant_widget/contaminantwidget.h
@@ -32,6 +32,8 @@
 #define CONTAMINANTWIDGET_H
 
 #include <QWidget>
+#include <QStandardItemModel>
+#include "../../../files/fastafile.h"
 
 
 namespace Ui {
@@ -45,6 +47,13 @@ class ContaminantWidget : public QWidget
 public:
     explicit ContaminantWidget(QWidget * parent);
     ~ContaminantWidget();
+    
+        
+    void setRegexpContaminantPattern(const QString & pattern);
+    
+    const QString getRegexpContaminant() const;
+
+    void setFastaFileList(std::vector<FastaFileSp> fasta_file_list);
 
 public slots:
 
@@ -52,6 +61,8 @@ signals:
 
 private:
     Ui::ContaminantWidget *ui;
+    
+    QStandardItemModel * _p_fasta_str_li;
 
 };