public List<Protein> readFastaForMSA(boolean isStructure) {
        proteinList = new LinkedList<Protein>();
        structureList = new LinkedList<Structure>();

        BufferedReader fileReader = null;
        String line = null;
        String id = "";
        StringBuffer contentBuffer = new StringBuffer();

        try {

            fileReader = new BufferedReader(new FileReader(inputFile));
            do {

                line = fileReader.readLine();
                if (line != null) {

                    line = line.trim();
                    if (line.isEmpty()) {
                        continue;
                    }
                    char firstChar = line.charAt(0);
                    if (firstChar == '>') {

                        // save the previous sequence read
                        addToProteinList(id, contentBuffer, isStructure);

                        // now can get the new id > ..
                        id = line.substring(1).trim();

                        // start a new content buffer
                        contentBuffer = new StringBuffer();

                    } else if (firstChar == ';') {

                        // comment line, skip it

                    } else {

                        // carry on reading sequence content
                        contentBuffer.append(line.trim());

                    }

                } else {

                    // save the final sequence content
                    addToProteinList(id, contentBuffer, isStructure);

                }

            } while (line != null);

        } catch (FileNotFoundException e) {
            System.out.println("File " + inputFile + " is not found");
            System.exit(1);
        } catch (IOException e) {
            System.out.println("An IO error has occured: " + e.getMessage());
            System.exit(1);
        } finally {
            if (fileReader != null) {
                try {
                    fileReader.close();
                } catch (IOException e) {
                    // do nothing
                }
            }
        }

        return proteinList;
    }