// Path: src/main/java/ch/ethz/bsse/indelfixer/stored/Globals.java
// public class Globals {
// 
//     public static boolean NO_HASHING;
//     public static boolean SENSITIVE;
//     public static boolean CONSENSUS;
//     public static int READCOUNTER = 0;
//     public static int STEPS;
//     public static List<SequenceEntry> TRASH_READS = new CopyOnWriteArrayList<>();
//     public static boolean RM_DEL;
//     public static boolean REFINE;
//     public static boolean FILTER;
//     public static boolean FLAT;
//     public static float GOP;
//     public static float GEX;
//     public static double MAX_DEL;
//     public static double MAX_INS;
//     public static double MAX_SUB;
//     public static boolean KEEP;
//     public static List<Read> READS;
//     public static int MAX_CONSECUTIVE_DEL;
//     public static int MIN_LENGTH_ALIGNED;
//     public static int MIN_LENGTH;
//     public static int GENOME_LENGTH;
//     public static int THRESHOLD;
//     public static String[] GENOME_SEQUENCES;
//     public static boolean ADJUST;
//     public static boolean SAVE;
//     public static int GENOME_COUNT;
//     public static Genome[] GENOMES;
//     public static int CUT = 0;
//     public static int KMER_OVERLAP = 10;
//     public static int KMER_LENGTH = 1;
//     public static final ForkJoinPool fjPool = new ForkJoinPool();
//     public static int N = 0;
//     public static int maxN = 0;
//     public static double PERCENTAGE_PROCESSING_READS = 0;
//     public static double PERCENTAGE_EXTRACTING_READS = 0;
//     public static double UNIDENTICAL = 0;
//     public static String output = System.getProperty("user.dir") + File.separator;
//     public static Matrix MATRIX = loadMatrix();
//     public static int[] RS;
//     public static String[] ADAPTER;
//     public static double PLURALITY;
//     public static double PLURALITY_N;
//     public static int MIN_CONS_COV = 0;
//     public static double Q;
//     public static double REALIGN;
// 
//     /**
//      *
//      * @return
//      */
//     public static Matrix loadMatrix() {
//         Matrix m = null;
//         try {
//             m = MatrixLoader.load("EDNAFULL");
//         } catch (MatrixLoaderException ex) {
//             System.err.println("Matrix error loading");
//         }
//         return m;
//     }
// 
//     public static void printPercentageExtractingReads() {
//         PERCENTAGE_EXTRACTING_READS += 100d / N;
//         StatusUpdate.print("Extracting reads:\t", PERCENTAGE_EXTRACTING_READS);
//     }
// 
//     public static void printPercentageProcessingReads() {
//         PERCENTAGE_PROCESSING_READS += 100d / N;
//         StatusUpdate.print("Processing reads:\t", PERCENTAGE_PROCESSING_READS);
//     }
// }


import ch.ethz.bsse.indelfixer.stored.Globals;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
                                if (!lowerCase) {
                                    if (Character.isLowerCase(c)) {
                                        lowerCase = true;
                                        continue;
                                    }
                                }
                                if (!upperCase) {
                                    if (Character.isUpperCase(c)) {
                                        upperCase = true;
                                        continue;
                                    }
                                }
                                if (upperCase && lowerCase) {
                                    cut = true;
                                    break;
                                }
                            }
                            first = false;
                        }
                        if (cut) {
                            for (char c : strLine.toCharArray()) {
                                if (Character.isUpperCase(c)) {
                                    sb.append(c);
                                }
                            }
                        } else {
                            sb.append(strLine);
                        }
                    }
                }
// Path: src/main/java/ch/ethz/bsse/indelfixer/stored/Globals.java
// public class Globals {
// 
//     public static boolean NO_HASHING;
//     public static boolean SENSITIVE;
//     public static boolean CONSENSUS;
//     public static int READCOUNTER = 0;
//     public static int STEPS;
//     public static List<SequenceEntry> TRASH_READS = new CopyOnWriteArrayList<>();
//     public static boolean RM_DEL;
//     public static boolean REFINE;
//     public static boolean FILTER;
//     public static boolean FLAT;
//     public static float GOP;
//     public static float GEX;
//     public static double MAX_DEL;
//     public static double MAX_INS;
//     public static double MAX_SUB;
//     public static boolean KEEP;
//     public static List<Read> READS;
//     public static int MAX_CONSECUTIVE_DEL;
//     public static int MIN_LENGTH_ALIGNED;
//     public static int MIN_LENGTH;
//     public static int GENOME_LENGTH;
//     public static int THRESHOLD;
//     public static String[] GENOME_SEQUENCES;
//     public static boolean ADJUST;
//     public static boolean SAVE;
//     public static int GENOME_COUNT;
//     public static Genome[] GENOMES;
//     public static int CUT = 0;
//     public static int KMER_OVERLAP = 10;
//     public static int KMER_LENGTH = 1;
//     public static final ForkJoinPool fjPool = new ForkJoinPool();
//     public static int N = 0;
//     public static int maxN = 0;
//     public static double PERCENTAGE_PROCESSING_READS = 0;
//     public static double PERCENTAGE_EXTRACTING_READS = 0;
//     public static double UNIDENTICAL = 0;
//     public static String output = System.getProperty("user.dir") + File.separator;
//     public static Matrix MATRIX = loadMatrix();
//     public static int[] RS;
//     public static String[] ADAPTER;
//     public static double PLURALITY;
//     public static double PLURALITY_N;
//     public static int MIN_CONS_COV = 0;
//     public static double Q;
//     public static double REALIGN;
// 
//     /**
//      *
//      * @return
//      */
//     public static Matrix loadMatrix() {
//         Matrix m = null;
//         try {
//             m = MatrixLoader.load("EDNAFULL");
//         } catch (MatrixLoaderException ex) {
//             System.err.println("Matrix error loading");
//         }
//         return m;
//     }
// 
//     public static void printPercentageExtractingReads() {
//         PERCENTAGE_EXTRACTING_READS += 100d / N;
//         StatusUpdate.print("Extracting reads:\t", PERCENTAGE_EXTRACTING_READS);
//     }
// 
//     public static void printPercentageProcessingReads() {
//         PERCENTAGE_PROCESSING_READS += 100d / N;
//         StatusUpdate.print("Processing reads:\t", PERCENTAGE_PROCESSING_READS);
//     }
// }


// Path: src/main/java/ch/ethz/bsse/indelfixer/utils/FastaParser.java
import ch.ethz.bsse.indelfixer.stored.Globals;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

                                if (!lowerCase) {
                                    if (Character.isLowerCase(c)) {
                                        lowerCase = true;
                                        continue;
                                    }
                                }
                                if (!upperCase) {
                                    if (Character.isUpperCase(c)) {
                                        upperCase = true;
                                        continue;
                                    }
                                }
                                if (upperCase && lowerCase) {
                                    cut = true;
                                    break;
                                }
                            }
                            first = false;
                        }
                        if (cut) {
                            for (char c : strLine.toCharArray()) {
                                if (Character.isUpperCase(c)) {
                                    sb.append(c);
                                }
                            }
                        } else {
                            sb.append(strLine);
                        }
                    }
                }
                readList.add(sb.toString().substring(Globals.CUT));