allow specifying a name for a sequence
authorDiane Trout <diane@caltech.edu>
Thu, 29 Jun 2006 01:48:46 +0000 (01:48 +0000)
committerDiane Trout <diane@caltech.edu>
Thu, 29 Jun 2006 01:48:46 +0000 (01:48 +0000)
provide a place for specifying a species name for a sequence track
in the define analysis gui.

alg/mussa.cpp
alg/mussa.hpp
alg/sequence.cpp
alg/sequence.hpp
qui/mussa_setup_dialog/MussaSetupWidget.cpp
qui/mussa_setup_dialog/SequenceSetupFrame.cpp
qui/mussa_setup_dialog/SequenceSetupWidget.cpp
qui/mussa_setup_dialog/SequenceSetupWidget.hpp
qui/mussa_setup_dialog/SetupInfo.cpp
qui/mussa_setup_dialog/SetupInfo.hpp

index 2391b0478080863d196271df6d1204e04d175787..5acd58e6bdfeaf1a9081ee3d93c5351be79054ba 100644 (file)
@@ -274,13 +274,17 @@ Mussa::sequences() const
 }
 
 void Mussa::load_sequence(fs::path seq_file, fs::path annot_file, 
-                          int fasta_index, int sub_seq_start, int sub_seq_end)
+                          int fasta_index, int sub_seq_start, int sub_seq_end,
+                          std::string *name)
 {
   boost::shared_ptr<Sequence> aseq(new Sequence);
   aseq->load_fasta(seq_file, fasta_index, sub_seq_start, sub_seq_end);
   if ( not annot_file.empty() ) {
     aseq->load_annot(annot_file, sub_seq_start, sub_seq_end);
   }
+  if (name != 0 and name->size() > 0 ) {
+    aseq->set_species(*name);
+  }
   the_seqs.push_back(aseq);
 }
 
index 73070050327d407ac84b65beeba7a377d969f961..e53e727cf170b04be7ff642364e5b75e73ffade2 100644 (file)
@@ -129,10 +129,12 @@ public:
      *             use 0 start from the beginning.
      *  \param[in] sub_seq_end ending slice index to select a subsequence
      *             use 0 to go to the end.
+     *  \param[in] name sequence name, only used if not null
      */
     void load_sequence(boost::filesystem::path seq_file, 
                        boost::filesystem::path annot_file, 
-                       int fasta_index, int sub_seq_start=0, int sub_seq_end=0);
+                       int fasta_index, int sub_seq_start=0, int sub_seq_end=0,
+                       std::string *name=0);
     //! allow examining the sequences we have loaded
     typedef std::vector<boost::shared_ptr<Sequence> > vector_sequence_type;
     const vector_sequence_type& sequences() const;
index 6a29c13fe7cffa554a89c8c476d4badd627f55cb..7d8b12a05b45c6763f40ec6ff3eccb20473afec1 100644 (file)
@@ -438,6 +438,11 @@ Sequence::parse_annot(std::string data, int start_index, int end_index)
   find_sequences(query_seqs.begin(), query_seqs.end());
 }
 
+void Sequence::set_species(const std::string& name)
+{
+  species = name;
+}
+
 const std::string& Sequence::get_species() const
 {
   return species;
index 858892ecab34a96abaf5c90e4b2e060e9aa7fcc3..f3a93fa931316e4bbcf8756abbf7c532ed0fe160 100644 (file)
@@ -103,6 +103,7 @@ class Sequence : public std::string
     void add_annotation(const annot& a);
     const std::list<annot>& annotations() const;
     const std::list<motif>& motifs() const;
+    void set_species(const std::string &);
     const std::string& get_species() const;
 
     //! return a subsequence, copying over any appropriate annotation
index 764bda204f401705bfb1a0458d8512f30b910352..62b909c6f950d5e44b19dfc78fc6e3321f0097c5 100644 (file)
@@ -111,6 +111,7 @@ Mussa* MussaSetupWidget::getMussaObject()
        setup_item != setupInfoList.end();
        ++setup_item)
   {
+    std::string seqName = (*setup_item)->getName();
     std::string seqNative = (*setup_item)->getSeqFile();
     std::string annotNative = (*setup_item)->getAnnotFile();
     fastaIndex = (*setup_item)->getFastaIndex();
@@ -119,7 +120,7 @@ Mussa* MussaSetupWidget::getMussaObject()
   
     fs::path seqFile(seqNative, fs::native);
     fs::path annotFile(annotNative, fs::native);
-    mussa->load_sequence(seqFile, annotFile, fastaIndex, start, end);
+    mussa->load_sequence(seqFile, annotFile, fastaIndex, start, end, &seqName);
   }
   setupInfoList.clear();
 
index fd26f26f19028ba7ba89e9732bdaa114eb583493..423e5fe48736b36be60ccacc9e0e7b7ec943df44 100644 (file)
@@ -91,6 +91,7 @@ std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
   
   std::list<SetupInfo *> setupInfoList;
 
+  QString seqName;
   QString seqFile;
   QString annotFile;
   int fastaIndex;
@@ -103,7 +104,8 @@ std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
   for (int i = 0; i < curSeqCount; i++)
   {
     seq = seqList.back();
-    
+   
+    seqName = seq->getName();
     seqFile = seq->getSeqFile();
     annotFile = seq->getAnnotFile();
     fastaIndex = seq->getFastaIndex();
@@ -113,7 +115,8 @@ std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
     seqList.push_front(seq);
     seqList.pop_back();
 
-    setupInfoList.push_back(new SetupInfo(seqFile.toStdString(), 
+    setupInfoList.push_back(new SetupInfo(seqName.toStdString(),
+            seqFile.toStdString(), 
                                          annotFile.toStdString(), 
                                          fastaIndex, start, end));
     
index 4a80277e13ccb00a78deabf61f47fb1976760e63..fe8907735b02570232934544243badc1b03cf0c4 100644 (file)
@@ -10,6 +10,7 @@
 
 SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
   QWidget(parent), 
+  sequenceNameEdit(0),
   sequenceLineEdit(0), 
   annotLineEdit(0),
   fastaIndexLineEdit(0),
@@ -17,6 +18,10 @@ SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
   seqStopLineEdit(0)
 {
 
+  sequenceNameEdit = new QLineEdit;
+  QLabel *sequenceNameLabel = new QLabel(tr("Sequence name:"));
+  sequenceNameLabel->setBuddy(sequenceNameEdit);
+
   // Sequence row
   sequenceLineEdit = new QLineEdit;
   //const IsFileValidator *fileValidator = new IsFileValidator(this);
@@ -61,11 +66,15 @@ SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
   seqStopLabel->setBuddy(seqStopLineEdit);
 
   // Layout
+  QHBoxLayout *sequenceNameLayout = new QHBoxLayout;
   QHBoxLayout *sequenceRowLayout = new QHBoxLayout;
   QHBoxLayout *annotRowLayout = new QHBoxLayout;
   QHBoxLayout *indexRowLayout = new QHBoxLayout;
   QVBoxLayout *mainLayout = new QVBoxLayout;
 
+  sequenceNameLayout->addWidget(sequenceNameLabel);
+  sequenceNameLayout->addWidget(sequenceNameEdit);
+
   sequenceRowLayout->addWidget(sequenceLabel);
   sequenceRowLayout->addWidget(sequenceLineEdit);
   sequenceRowLayout->addWidget(sequenceButton);
@@ -81,6 +90,7 @@ SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
   indexRowLayout->addWidget(seqStopLabel);
   indexRowLayout->addWidget(seqStopLineEdit);
 
+  mainLayout->addLayout(sequenceNameLayout);
   mainLayout->addLayout(sequenceRowLayout);
   mainLayout->addLayout(annotRowLayout);
   mainLayout->addLayout(indexRowLayout);
index 2c99ba2fc29e806d945bad4fc31e3822cc613b0e..152299441c0743738c6985bef1212f0a6a7ecb9c 100644 (file)
@@ -13,6 +13,7 @@ public:
   SequenceSetupWidget(QWidget *parent = 0);
   //  SequenceSetupWidget(const SequenceSetupWidget&);
 
+  QString getName() const { return sequenceNameEdit->text(); }
   QString getSeqFile() const { return sequenceLineEdit->text(); }
   QString getAnnotFile() const { return annotLineEdit->text(); }
   int getFastaIndex() const;
@@ -27,6 +28,7 @@ public slots:
 signals:
 
 protected:
+  QLineEdit *sequenceNameEdit;
   QLineEdit *sequenceLineEdit;
   QLineEdit *annotLineEdit;
   QLineEdit *fastaIndexLineEdit;
index c0bef3d16759bab897fa27627a3b3e856989f263..c01ade37eae8ca8553272f7358902fed2e98eb7c 100644 (file)
@@ -1,8 +1,15 @@
 #include "qui/mussa_setup_dialog/SetupInfo.hpp"
 
-SetupInfo::SetupInfo(std::string newSeqFile, std::string newAnnotFile,
-                    int newFastaIndex, int newSubSeqStart, int newSubSeqEnd) 
-  : seqFile(newSeqFile),
+SetupInfo::SetupInfo(
+    std::string newName,
+    std::string newSeqFile, 
+    std::string newAnnotFile,
+         int newFastaIndex, 
+    int newSubSeqStart, 
+    int newSubSeqEnd
+    ) 
+  : seqName(newName),
+    seqFile(newSeqFile),
     annotFile(newAnnotFile),
     fastaIndex(newFastaIndex),
     subSeqStart(newSubSeqStart),
index 1b92fd1f56a5af7d7282c6a4450289f98a9d6316..ae30ac1c093ad95b126364402dc879c35a87bb60 100644 (file)
@@ -6,12 +6,14 @@
 class SetupInfo
 {
 public:
-  SetupInfo(std::string seqFile, 
+  SetupInfo(std::string seqName,
+      std::string seqFile, 
            std::string annotFile,
            int fastaIndex,
            int subSeqStart=0, 
            int subSeqEnd=0);
 
+  std::string getName() { return seqName; };
   std::string getSeqFile() { return seqFile; };
   std::string getAnnotFile() { return annotFile; };
   int getFastaIndex() { return fastaIndex; };
@@ -19,6 +21,7 @@ public:
   int getSubSeqEnd() { return subSeqEnd; };
 
 private:
+  std::string seqName;
   std::string seqFile;
   std::string annotFile;
   int fastaIndex;