1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
typedef struct {
string header;
vector<string> sequence;;
} FASTAseq;
int main()
{
string adresse = "Fasta.fasta";
vector<FASTAseq> seqF;
vector<string> sequence;
ifstream fasta_file ( adresse.c_str() );
//cout << sizeof(struct seq)<< endl;
if ( !fasta_file ) {
cout << "Erreur: impossible d'ouvrir le fichier (Mauvais chemin d'accès)." << endl;
}
else
{ vector<string> seqF1;
while ( !fasta_file.eof() )
{
seqF1.push_back ( "" ); //creation d'une ligne vide
getline ( fasta_file, seqF1.back() ); //lecture d'une ligne du fichier
int line = seqF1.size() - 1;//je recupere la taille du tableau (-1 pour la ligne 0)
if ( seqF1[line].empty() ) //si la ligne est vide
seqF1.pop_back();//on la retire du tableau
}
cout << "nombre de lignes : " << seqF1.size() << endl;//j'affiche le nombre de lignes pour test
}
if ( fasta_file ) {
//Permet de vérifier si un fichier texte existe et de stocker la définiton dans d
unsigned int i = 0;
string line, header, sequence;
while ( getline ( fasta_file, line ) ) {
if (line.empty())
continue;
line.erase(0, line.find_first_not_of(" \t\r\n\v\f"));
if ( line[0] == '!' && line.size() != 0 ) {
fasta_file.close();
cout << "Ce fichier n'est pas au format FASTA!!!" << endl; //Peut-être utilisation curseur
}
else {
if (line[0] == '!' ) {
cout << "Ce fichier est pas au format FASTA!!!" << endl;
header = line;
seqF.push_back(line));
i = 1;
}
else {
sequence += line;
}
}
}
seqF.push_back(FASTAseq(header,sequence));
}
//début itération
std::vector<FASTAseq>::iterator iter;
for(iter =seq.begin(); iter != seq.end(); ++iter)
{
}
} |
Partager