public List<OpenCellIdCell> parseCells(String fullFileName, int maxMeasurements, int minMeasurements, double r) {
		
		List<OpenCellIdCell> cells = null;
		
		try(JsonParser jp = new MappingJsonFactory().createJsonParser(new File(fullFileName))){

			JsonNode cellsNode = jp.readValueAsTree().get("cells");
			
			cells = new ArrayList<OpenCellIdCell>(cellsNode.size());
						
			if(cellsNode.isArray()) {
				for(JsonNode cellNode : cellsNode) {
					
					OpenCellIdCell cell = createCell(cellNode);
					
					JsonNode measurementsNode = cellNode.get("measurements");
					if(measurementsNode.isArray()) {
						
						List<Measurement> measurements = new ArrayList<Measurement>(cell.getSamples());
						
						for(JsonNode measurementNode : measurementsNode) {
							Measurement measurement = createMeasurement(measurementNode);
							if(measurementIsValid(measurement, cell, r))
								measurements.add(measurement);
						}
						cell.setMeasurements(measurements);
						
						if(cellIsValid(cell, maxMeasurements, minMeasurements))
							cells.add(cell);
					}
					else
						System.out.println("measurementsNode was not array");
				}
			}
			else 
				System.out.println("cellsNode was not array");

			System.out.println("Parsed "+cells.size()+" cells including measurements with r_include = "+r);
			System.out.println();
						

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return cells;
	}