}
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);
}
* 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;
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;
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
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();
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();
std::list<SetupInfo *> setupInfoList;
+ QString seqName;
QString seqFile;
QString annotFile;
int fastaIndex;
for (int i = 0; i < curSeqCount; i++)
{
seq = seqList.back();
-
+
+ seqName = seq->getName();
seqFile = seq->getSeqFile();
annotFile = seq->getAnnotFile();
fastaIndex = seq->getFastaIndex();
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));
SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
QWidget(parent),
+ sequenceNameEdit(0),
sequenceLineEdit(0),
annotLineEdit(0),
fastaIndexLineEdit(0),
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);
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);
indexRowLayout->addWidget(seqStopLabel);
indexRowLayout->addWidget(seqStopLineEdit);
+ mainLayout->addLayout(sequenceNameLayout);
mainLayout->addLayout(sequenceRowLayout);
mainLayout->addLayout(annotRowLayout);
mainLayout->addLayout(indexRowLayout);
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;
signals:
protected:
+ QLineEdit *sequenceNameEdit;
QLineEdit *sequenceLineEdit;
QLineEdit *annotLineEdit;
QLineEdit *fastaIndexLineEdit;
#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),
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; };
int getSubSeqEnd() { return subSeqEnd; };
private:
+ std::string seqName;
std::string seqFile;
std::string annotFile;
int fastaIndex;