Index: /trunk/autoquest-ui-core/src/main/java/de/ugoe/cs/autoquest/commands/sequences/CMDsequencesSubset.java
===================================================================
--- /trunk/autoquest-ui-core/src/main/java/de/ugoe/cs/autoquest/commands/sequences/CMDsequencesSubset.java	(revision 1933)
+++ /trunk/autoquest-ui-core/src/main/java/de/ugoe/cs/autoquest/commands/sequences/CMDsequencesSubset.java	(revision 1934)
@@ -49,10 +49,20 @@
     public void run(List<Object> parameters) {
         int subsetCount;
-        int subsetSize;
+        double subsetSize;
+        boolean isPercent = false;
         String sequencesName;
         String newSequencesName;
         try {
             subsetCount = Integer.parseInt((String) parameters.get(0));
-            subsetSize = Integer.parseInt((String) parameters.get(1));
+            isPercent = ((String) parameters.get(1)).endsWith("%");
+            
+            if (!isPercent) {
+                subsetSize = Integer.parseInt((String) parameters.get(1));
+            }
+            else {
+                String percent = (String) parameters.get(1);
+                percent = percent.substring(0, percent.length() - 1);
+                subsetSize = Double.parseDouble(percent);
+            }
             sequencesName = (String) parameters.get(2);
             if (parameters.size() > 3) {
@@ -108,9 +118,17 @@
         }
         
+        int effSubsetSize;
+        if (isPercent) {
+            effSubsetSize = (int) Math.floor(subsetSize * allEvents / 100);
+        }
+        else {
+            effSubsetSize = (int) subsetSize;
+        }
+        
         Console.println("creating " + subsetCount + " sequence sets covering on average " +
-                        subsetSize + " events by subdividing " + sequences.size() +
+                        effSubsetSize + " events by subdividing " + sequences.size() +
                         " sequences covering " + allEvents + " events into subsets");
         
-        boolean mutuallyExclusiveSubsets = (subsetSize * subsetCount) < allEvents;
+        boolean mutuallyExclusiveSubsets = (effSubsetSize * subsetCount) <= allEvents;
         
         if (!mutuallyExclusiveSubsets) {
@@ -120,5 +138,5 @@
 
         List<List<List<Event>>> subsets = new LinkedList<>();
-        double randomProbability = ((double) subsetSize) / allEvents;
+        double randomProbability = ((double) effSubsetSize) / allEvents;
         ListIterator<List<Event>> sequencesIterator = fixedOrderSequences.listIterator();
         int minSubsetSize = Integer.MAX_VALUE;
@@ -128,5 +146,5 @@
         for (int i = 0; i < subsetCount; i++) {
             List<List<Event>> subset = new LinkedList<>();
-            int remainingEventsToAdd = subsetSize;
+            int remainingEventsToAdd = effSubsetSize;
             while (remainingEventsToAdd > 0) {
                 if (!sequencesIterator.hasNext()) {
