// Generated by the protocol buffer compiler. DO NOT EDIT! // source: TSFProto.proto package gdsc.smlm.tsf; @SuppressWarnings({"unchecked", "unused"}) public final class TaggedSpotFile { private TaggedSpotFile() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } /** * Protobuf enum {@code TSF.FitMode} */ public enum FitMode implements com.google.protobuf.ProtocolMessageEnum { /** * <code>ONEAXIS = 0;</code> */ ONEAXIS(0), /** * <code>TWOAXIS = 1;</code> */ TWOAXIS(1), /** * <code>TWOAXISANDTHETA = 2;</code> */ TWOAXISANDTHETA(2), ; /** * <code>ONEAXIS = 0;</code> */ public static final int ONEAXIS_VALUE = 0; /** * <code>TWOAXIS = 1;</code> */ public static final int TWOAXIS_VALUE = 1; /** * <code>TWOAXISANDTHETA = 2;</code> */ public static final int TWOAXISANDTHETA_VALUE = 2; public final int getNumber() { return value; } /** * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static FitMode valueOf(int value) { return forNumber(value); } public static FitMode forNumber(int value) { switch (value) { case 0: return ONEAXIS; case 1: return TWOAXIS; case 2: return TWOAXISANDTHETA; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap<FitMode> internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< FitMode> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<FitMode>() { public FitMode findValueByNumber(int number) { return FitMode.forNumber(number); } }; public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { return getDescriptor(); } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.getDescriptor().getEnumTypes().get(0); } private static final FitMode[] VALUES = values(); public static FitMode valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { throw new java.lang.IllegalArgumentException( "EnumValueDescriptor is not for this type."); } return VALUES[desc.getIndex()]; } private final int value; private FitMode(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:TSF.FitMode) } /** * Protobuf enum {@code TSF.ThetaUnits} */ public enum ThetaUnits implements com.google.protobuf.ProtocolMessageEnum { /** * <code>DEGREES = 0;</code> */ DEGREES(0), /** * <code>RADIANS = 1;</code> */ RADIANS(1), ; /** * <code>DEGREES = 0;</code> */ public static final int DEGREES_VALUE = 0; /** * <code>RADIANS = 1;</code> */ public static final int RADIANS_VALUE = 1; public final int getNumber() { return value; } /** * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static ThetaUnits valueOf(int value) { return forNumber(value); } public static ThetaUnits forNumber(int value) { switch (value) { case 0: return DEGREES; case 1: return RADIANS; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap<ThetaUnits> internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< ThetaUnits> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<ThetaUnits>() { public ThetaUnits findValueByNumber(int number) { return ThetaUnits.forNumber(number); } }; public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { return getDescriptor(); } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.getDescriptor().getEnumTypes().get(1); } private static final ThetaUnits[] VALUES = values(); public static ThetaUnits valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { throw new java.lang.IllegalArgumentException( "EnumValueDescriptor is not for this type."); } return VALUES[desc.getIndex()]; } private final int value; private ThetaUnits(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:TSF.ThetaUnits) } /** * Protobuf enum {@code TSF.IntensityUnits} */ public enum IntensityUnits implements com.google.protobuf.ProtocolMessageEnum { /** * <code>COUNTS = 0;</code> */ COUNTS(0), /** * <code>PHOTONS = 1;</code> */ PHOTONS(1), ; /** * <code>COUNTS = 0;</code> */ public static final int COUNTS_VALUE = 0; /** * <code>PHOTONS = 1;</code> */ public static final int PHOTONS_VALUE = 1; public final int getNumber() { return value; } /** * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static IntensityUnits valueOf(int value) { return forNumber(value); } public static IntensityUnits forNumber(int value) { switch (value) { case 0: return COUNTS; case 1: return PHOTONS; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap<IntensityUnits> internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< IntensityUnits> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<IntensityUnits>() { public IntensityUnits findValueByNumber(int number) { return IntensityUnits.forNumber(number); } }; public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { return getDescriptor(); } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.getDescriptor().getEnumTypes().get(2); } private static final IntensityUnits[] VALUES = values(); public static IntensityUnits valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { throw new java.lang.IllegalArgumentException( "EnumValueDescriptor is not for this type."); } return VALUES[desc.getIndex()]; } private final int value; private IntensityUnits(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:TSF.IntensityUnits) } /** * Protobuf enum {@code TSF.LocationUnits} */ public enum LocationUnits implements com.google.protobuf.ProtocolMessageEnum { /** * <code>NM = 0;</code> */ NM(0), /** * <code>UM = 1;</code> */ UM(1), /** * <code>PIXELS = 2;</code> */ PIXELS(2), ; /** * <code>NM = 0;</code> */ public static final int NM_VALUE = 0; /** * <code>UM = 1;</code> */ public static final int UM_VALUE = 1; /** * <code>PIXELS = 2;</code> */ public static final int PIXELS_VALUE = 2; public final int getNumber() { return value; } /** * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static LocationUnits valueOf(int value) { return forNumber(value); } public static LocationUnits forNumber(int value) { switch (value) { case 0: return NM; case 1: return UM; case 2: return PIXELS; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap<LocationUnits> internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< LocationUnits> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<LocationUnits>() { public LocationUnits findValueByNumber(int number) { return LocationUnits.forNumber(number); } }; public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { return getDescriptor(); } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.getDescriptor().getEnumTypes().get(3); } private static final LocationUnits[] VALUES = values(); public static LocationUnits valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { throw new java.lang.IllegalArgumentException( "EnumValueDescriptor is not for this type."); } return VALUES[desc.getIndex()]; } private final int value; private LocationUnits(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:TSF.LocationUnits) } public interface FluorophoreTypeOrBuilder extends // @@protoc_insertion_point(interface_extends:TSF.FluorophoreType) com.google.protobuf.MessageOrBuilder { /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ boolean hasId(); /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ int getId(); /** * <code>optional string description = 2;</code> */ boolean hasDescription(); /** * <code>optional string description = 2;</code> */ java.lang.String getDescription(); /** * <code>optional string description = 2;</code> */ com.google.protobuf.ByteString getDescriptionBytes(); /** * <code>optional bool is_fiducial = 3;</code> */ boolean hasIsFiducial(); /** * <code>optional bool is_fiducial = 3;</code> */ boolean getIsFiducial(); } /** * Protobuf type {@code TSF.FluorophoreType} */ public static final class FluorophoreType extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:TSF.FluorophoreType) FluorophoreTypeOrBuilder { // Use FluorophoreType.newBuilder() to construct. private FluorophoreType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } private FluorophoreType() { id_ = 0; description_ = ""; isFiducial_ = false; } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private FluorophoreType( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { done = true; } break; } case 8: { bitField0_ |= 0x00000001; id_ = input.readInt32(); break; } case 18: { com.google.protobuf.ByteString bs = input.readBytes(); bitField0_ |= 0x00000002; description_ = bs; break; } case 24: { bitField0_ |= 0x00000004; isFiducial_ = input.readBool(); break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_FluorophoreType_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_FluorophoreType_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.class, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder.class); } private int bitField0_; public static final int ID_FIELD_NUMBER = 1; private int id_; /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ public boolean hasId() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ public int getId() { return id_; } public static final int DESCRIPTION_FIELD_NUMBER = 2; private volatile java.lang.Object description_; /** * <code>optional string description = 2;</code> */ public boolean hasDescription() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <code>optional string description = 2;</code> */ public java.lang.String getDescription() { java.lang.Object ref = description_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { description_ = s; } return s; } } /** * <code>optional string description = 2;</code> */ public com.google.protobuf.ByteString getDescriptionBytes() { java.lang.Object ref = description_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); description_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int IS_FIDUCIAL_FIELD_NUMBER = 3; private boolean isFiducial_; /** * <code>optional bool is_fiducial = 3;</code> */ public boolean hasIsFiducial() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <code>optional bool is_fiducial = 3;</code> */ public boolean getIsFiducial() { return isFiducial_; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; if (!hasId()) { memoizedIsInitialized = 0; return false; } memoizedIsInitialized = 1; return true; } public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeInt32(1, id_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeBool(3, isFiducial_); } unknownFields.writeTo(output); } public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(1, id_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(3, isFiducial_); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } private static final long serialVersionUID = 0L; @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType)) { return super.equals(obj); } gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType other = (gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType) obj; boolean result = true; result = result && (hasId() == other.hasId()); if (hasId()) { result = result && (getId() == other.getId()); } result = result && (hasDescription() == other.hasDescription()); if (hasDescription()) { result = result && getDescription() .equals(other.getDescription()); } result = result && (hasIsFiducial() == other.hasIsFiducial()); if (hasIsFiducial()) { result = result && (getIsFiducial() == other.getIsFiducial()); } result = result && unknownFields.equals(other.unknownFields); return result; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptorForType().hashCode(); if (hasId()) { hash = (37 * hash) + ID_FIELD_NUMBER; hash = (53 * hash) + getId(); } if (hasDescription()) { hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER; hash = (53 * hash) + getDescription().hashCode(); } if (hasIsFiducial()) { hash = (37 * hash) + IS_FIDUCIAL_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getIsFiducial()); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code TSF.FluorophoreType} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:TSF.FluorophoreType) gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_FluorophoreType_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_FluorophoreType_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.class, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder.class); } // Construct using gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { } } public Builder clear() { super.clear(); id_ = 0; bitField0_ = (bitField0_ & ~0x00000001); description_ = ""; bitField0_ = (bitField0_ & ~0x00000002); isFiducial_ = false; bitField0_ = (bitField0_ & ~0x00000004); return this; } public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_FluorophoreType_descriptor; } public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType getDefaultInstanceForType() { return gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.getDefaultInstance(); } public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType build() { gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType buildPartial() { gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType result = new gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.id_ = id_; if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } result.description_ = description_; if (((from_bitField0_ & 0x00000004) == 0x00000004)) { to_bitField0_ |= 0x00000004; } result.isFiducial_ = isFiducial_; result.bitField0_ = to_bitField0_; onBuilt(); return result; } public Builder clone() { return (Builder) super.clone(); } public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.setField(field, value); } public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value) { return (Builder) super.setRepeatedField(field, index, value); } public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.addRepeatedField(field, value); } public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType) { return mergeFrom((gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType other) { if (other == gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.getDefaultInstance()) return this; if (other.hasId()) { setId(other.getId()); } if (other.hasDescription()) { bitField0_ |= 0x00000002; description_ = other.description_; onChanged(); } if (other.hasIsFiducial()) { setIsFiducial(other.getIsFiducial()); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } public final boolean isInitialized() { if (!hasId()) { return false; } return true; } public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private int id_ ; /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ public boolean hasId() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ public int getId() { return id_; } /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ public Builder setId(int value) { bitField0_ |= 0x00000001; id_ = value; onChanged(); return this; } /** * <pre> * Key for Spot.fluorophore_type. * </pre> * * <code>required int32 id = 1;</code> */ public Builder clearId() { bitField0_ = (bitField0_ & ~0x00000001); id_ = 0; onChanged(); return this; } private java.lang.Object description_ = ""; /** * <code>optional string description = 2;</code> */ public boolean hasDescription() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <code>optional string description = 2;</code> */ public java.lang.String getDescription() { java.lang.Object ref = description_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { description_ = s; } return s; } else { return (java.lang.String) ref; } } /** * <code>optional string description = 2;</code> */ public com.google.protobuf.ByteString getDescriptionBytes() { java.lang.Object ref = description_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); description_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * <code>optional string description = 2;</code> */ public Builder setDescription( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000002; description_ = value; onChanged(); return this; } /** * <code>optional string description = 2;</code> */ public Builder clearDescription() { bitField0_ = (bitField0_ & ~0x00000002); description_ = getDefaultInstance().getDescription(); onChanged(); return this; } /** * <code>optional string description = 2;</code> */ public Builder setDescriptionBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000002; description_ = value; onChanged(); return this; } private boolean isFiducial_ ; /** * <code>optional bool is_fiducial = 3;</code> */ public boolean hasIsFiducial() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <code>optional bool is_fiducial = 3;</code> */ public boolean getIsFiducial() { return isFiducial_; } /** * <code>optional bool is_fiducial = 3;</code> */ public Builder setIsFiducial(boolean value) { bitField0_ |= 0x00000004; isFiducial_ = value; onChanged(); return this; } /** * <code>optional bool is_fiducial = 3;</code> */ public Builder clearIsFiducial() { bitField0_ = (bitField0_ & ~0x00000004); isFiducial_ = false; onChanged(); return this; } public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:TSF.FluorophoreType) } // @@protoc_insertion_point(class_scope:TSF.FluorophoreType) private static final gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType(); } public static gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType getDefaultInstance() { return DEFAULT_INSTANCE; } @java.lang.Deprecated public static final com.google.protobuf.Parser<FluorophoreType> PARSER = new com.google.protobuf.AbstractParser<FluorophoreType>() { public FluorophoreType parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new FluorophoreType(input, extensionRegistry); } }; public static com.google.protobuf.Parser<FluorophoreType> parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser<FluorophoreType> getParserForType() { return PARSER; } public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface ROIOrBuilder extends // @@protoc_insertion_point(interface_extends:TSF.ROI) com.google.protobuf.MessageOrBuilder { /** * <code>required int32 x = 1;</code> */ boolean hasX(); /** * <code>required int32 x = 1;</code> */ int getX(); /** * <code>required int32 y = 2;</code> */ boolean hasY(); /** * <code>required int32 y = 2;</code> */ int getY(); /** * <code>required int32 x_width = 3;</code> */ boolean hasXWidth(); /** * <code>required int32 x_width = 3;</code> */ int getXWidth(); /** * <code>required int32 y_width = 4;</code> */ boolean hasYWidth(); /** * <code>required int32 y_width = 4;</code> */ int getYWidth(); } /** * <pre> * ROI in pixels, should be consistent with nr pixels given in SpotList * </pre> * * Protobuf type {@code TSF.ROI} */ public static final class ROI extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:TSF.ROI) ROIOrBuilder { // Use ROI.newBuilder() to construct. private ROI(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } private ROI() { x_ = 0; y_ = 0; xWidth_ = 0; yWidth_ = 0; } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private ROI( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { done = true; } break; } case 8: { bitField0_ |= 0x00000001; x_ = input.readInt32(); break; } case 16: { bitField0_ |= 0x00000002; y_ = input.readInt32(); break; } case 24: { bitField0_ |= 0x00000004; xWidth_ = input.readInt32(); break; } case 32: { bitField0_ |= 0x00000008; yWidth_ = input.readInt32(); break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_ROI_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_ROI_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.ROI.class, gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder.class); } private int bitField0_; public static final int X_FIELD_NUMBER = 1; private int x_; /** * <code>required int32 x = 1;</code> */ public boolean hasX() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <code>required int32 x = 1;</code> */ public int getX() { return x_; } public static final int Y_FIELD_NUMBER = 2; private int y_; /** * <code>required int32 y = 2;</code> */ public boolean hasY() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <code>required int32 y = 2;</code> */ public int getY() { return y_; } public static final int X_WIDTH_FIELD_NUMBER = 3; private int xWidth_; /** * <code>required int32 x_width = 3;</code> */ public boolean hasXWidth() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <code>required int32 x_width = 3;</code> */ public int getXWidth() { return xWidth_; } public static final int Y_WIDTH_FIELD_NUMBER = 4; private int yWidth_; /** * <code>required int32 y_width = 4;</code> */ public boolean hasYWidth() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** * <code>required int32 y_width = 4;</code> */ public int getYWidth() { return yWidth_; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; if (!hasX()) { memoizedIsInitialized = 0; return false; } if (!hasY()) { memoizedIsInitialized = 0; return false; } if (!hasXWidth()) { memoizedIsInitialized = 0; return false; } if (!hasYWidth()) { memoizedIsInitialized = 0; return false; } memoizedIsInitialized = 1; return true; } public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeInt32(1, x_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeInt32(2, y_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeInt32(3, xWidth_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeInt32(4, yWidth_); } unknownFields.writeTo(output); } public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(1, x_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(2, y_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(3, xWidth_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(4, yWidth_); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } private static final long serialVersionUID = 0L; @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof gdsc.smlm.tsf.TaggedSpotFile.ROI)) { return super.equals(obj); } gdsc.smlm.tsf.TaggedSpotFile.ROI other = (gdsc.smlm.tsf.TaggedSpotFile.ROI) obj; boolean result = true; result = result && (hasX() == other.hasX()); if (hasX()) { result = result && (getX() == other.getX()); } result = result && (hasY() == other.hasY()); if (hasY()) { result = result && (getY() == other.getY()); } result = result && (hasXWidth() == other.hasXWidth()); if (hasXWidth()) { result = result && (getXWidth() == other.getXWidth()); } result = result && (hasYWidth() == other.hasYWidth()); if (hasYWidth()) { result = result && (getYWidth() == other.getYWidth()); } result = result && unknownFields.equals(other.unknownFields); return result; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptorForType().hashCode(); if (hasX()) { hash = (37 * hash) + X_FIELD_NUMBER; hash = (53 * hash) + getX(); } if (hasY()) { hash = (37 * hash) + Y_FIELD_NUMBER; hash = (53 * hash) + getY(); } if (hasXWidth()) { hash = (37 * hash) + X_WIDTH_FIELD_NUMBER; hash = (53 * hash) + getXWidth(); } if (hasYWidth()) { hash = (37 * hash) + Y_WIDTH_FIELD_NUMBER; hash = (53 * hash) + getYWidth(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(gdsc.smlm.tsf.TaggedSpotFile.ROI prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * <pre> * ROI in pixels, should be consistent with nr pixels given in SpotList * </pre> * * Protobuf type {@code TSF.ROI} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:TSF.ROI) gdsc.smlm.tsf.TaggedSpotFile.ROIOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_ROI_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_ROI_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.ROI.class, gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder.class); } // Construct using gdsc.smlm.tsf.TaggedSpotFile.ROI.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { } } public Builder clear() { super.clear(); x_ = 0; bitField0_ = (bitField0_ & ~0x00000001); y_ = 0; bitField0_ = (bitField0_ & ~0x00000002); xWidth_ = 0; bitField0_ = (bitField0_ & ~0x00000004); yWidth_ = 0; bitField0_ = (bitField0_ & ~0x00000008); return this; } public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_ROI_descriptor; } public gdsc.smlm.tsf.TaggedSpotFile.ROI getDefaultInstanceForType() { return gdsc.smlm.tsf.TaggedSpotFile.ROI.getDefaultInstance(); } public gdsc.smlm.tsf.TaggedSpotFile.ROI build() { gdsc.smlm.tsf.TaggedSpotFile.ROI result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } public gdsc.smlm.tsf.TaggedSpotFile.ROI buildPartial() { gdsc.smlm.tsf.TaggedSpotFile.ROI result = new gdsc.smlm.tsf.TaggedSpotFile.ROI(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.x_ = x_; if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } result.y_ = y_; if (((from_bitField0_ & 0x00000004) == 0x00000004)) { to_bitField0_ |= 0x00000004; } result.xWidth_ = xWidth_; if (((from_bitField0_ & 0x00000008) == 0x00000008)) { to_bitField0_ |= 0x00000008; } result.yWidth_ = yWidth_; result.bitField0_ = to_bitField0_; onBuilt(); return result; } public Builder clone() { return (Builder) super.clone(); } public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.setField(field, value); } public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value) { return (Builder) super.setRepeatedField(field, index, value); } public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.addRepeatedField(field, value); } public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof gdsc.smlm.tsf.TaggedSpotFile.ROI) { return mergeFrom((gdsc.smlm.tsf.TaggedSpotFile.ROI)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(gdsc.smlm.tsf.TaggedSpotFile.ROI other) { if (other == gdsc.smlm.tsf.TaggedSpotFile.ROI.getDefaultInstance()) return this; if (other.hasX()) { setX(other.getX()); } if (other.hasY()) { setY(other.getY()); } if (other.hasXWidth()) { setXWidth(other.getXWidth()); } if (other.hasYWidth()) { setYWidth(other.getYWidth()); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } public final boolean isInitialized() { if (!hasX()) { return false; } if (!hasY()) { return false; } if (!hasXWidth()) { return false; } if (!hasYWidth()) { return false; } return true; } public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { gdsc.smlm.tsf.TaggedSpotFile.ROI parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (gdsc.smlm.tsf.TaggedSpotFile.ROI) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private int x_ ; /** * <code>required int32 x = 1;</code> */ public boolean hasX() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <code>required int32 x = 1;</code> */ public int getX() { return x_; } /** * <code>required int32 x = 1;</code> */ public Builder setX(int value) { bitField0_ |= 0x00000001; x_ = value; onChanged(); return this; } /** * <code>required int32 x = 1;</code> */ public Builder clearX() { bitField0_ = (bitField0_ & ~0x00000001); x_ = 0; onChanged(); return this; } private int y_ ; /** * <code>required int32 y = 2;</code> */ public boolean hasY() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <code>required int32 y = 2;</code> */ public int getY() { return y_; } /** * <code>required int32 y = 2;</code> */ public Builder setY(int value) { bitField0_ |= 0x00000002; y_ = value; onChanged(); return this; } /** * <code>required int32 y = 2;</code> */ public Builder clearY() { bitField0_ = (bitField0_ & ~0x00000002); y_ = 0; onChanged(); return this; } private int xWidth_ ; /** * <code>required int32 x_width = 3;</code> */ public boolean hasXWidth() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <code>required int32 x_width = 3;</code> */ public int getXWidth() { return xWidth_; } /** * <code>required int32 x_width = 3;</code> */ public Builder setXWidth(int value) { bitField0_ |= 0x00000004; xWidth_ = value; onChanged(); return this; } /** * <code>required int32 x_width = 3;</code> */ public Builder clearXWidth() { bitField0_ = (bitField0_ & ~0x00000004); xWidth_ = 0; onChanged(); return this; } private int yWidth_ ; /** * <code>required int32 y_width = 4;</code> */ public boolean hasYWidth() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** * <code>required int32 y_width = 4;</code> */ public int getYWidth() { return yWidth_; } /** * <code>required int32 y_width = 4;</code> */ public Builder setYWidth(int value) { bitField0_ |= 0x00000008; yWidth_ = value; onChanged(); return this; } /** * <code>required int32 y_width = 4;</code> */ public Builder clearYWidth() { bitField0_ = (bitField0_ & ~0x00000008); yWidth_ = 0; onChanged(); return this; } public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:TSF.ROI) } // @@protoc_insertion_point(class_scope:TSF.ROI) private static final gdsc.smlm.tsf.TaggedSpotFile.ROI DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new gdsc.smlm.tsf.TaggedSpotFile.ROI(); } public static gdsc.smlm.tsf.TaggedSpotFile.ROI getDefaultInstance() { return DEFAULT_INSTANCE; } @java.lang.Deprecated public static final com.google.protobuf.Parser<ROI> PARSER = new com.google.protobuf.AbstractParser<ROI>() { public ROI parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new ROI(input, extensionRegistry); } }; public static com.google.protobuf.Parser<ROI> parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser<ROI> getParserForType() { return PARSER; } public gdsc.smlm.tsf.TaggedSpotFile.ROI getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface SpotListOrBuilder extends // @@protoc_insertion_point(interface_extends:TSF.SpotList) com.google.protobuf.GeneratedMessageV3. ExtendableMessageOrBuilder<SpotList> { /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ boolean hasApplicationId(); /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ int getApplicationId(); /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ boolean hasName(); /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ java.lang.String getName(); /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ com.google.protobuf.ByteString getNameBytes(); /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ boolean hasFilepath(); /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ java.lang.String getFilepath(); /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ com.google.protobuf.ByteString getFilepathBytes(); /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ boolean hasUid(); /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ long getUid(); /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ boolean hasNrPixelsX(); /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ int getNrPixelsX(); /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ boolean hasNrPixelsY(); /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ int getNrPixelsY(); /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ boolean hasPixelSize(); /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ float getPixelSize(); /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ boolean hasNrSpots(); /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ long getNrSpots(); /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ boolean hasBoxSize(); /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ int getBoxSize(); /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ boolean hasNrChannels(); /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ int getNrChannels(); /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ boolean hasNrFrames(); /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ int getNrFrames(); /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ boolean hasNrSlices(); /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ int getNrSlices(); /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ boolean hasNrPos(); /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ int getNrPos(); /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ java.util.List<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType> getFluorophoreTypesList(); /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType getFluorophoreTypes(int index); /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ int getFluorophoreTypesCount(); /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ java.util.List<? extends gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder> getFluorophoreTypesOrBuilderList(); /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder getFluorophoreTypesOrBuilder( int index); /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ boolean hasLocationUnits(); /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ gdsc.smlm.tsf.TaggedSpotFile.LocationUnits getLocationUnits(); /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ boolean hasIntensityUnits(); /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits getIntensityUnits(); /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ boolean hasThetaUnits(); /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits getThetaUnits(); /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ boolean hasFitMode(); /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ gdsc.smlm.tsf.TaggedSpotFile.FitMode getFitMode(); /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ boolean hasIsTrack(); /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ boolean getIsTrack(); /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ java.util.List<java.lang.Double> getEcfList(); /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ int getEcfCount(); /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ double getEcf(int index); /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ java.util.List<java.lang.Double> getQeList(); /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ int getQeCount(); /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ double getQe(int index); /** * <code>optional .TSF.ROI roi = 29;</code> */ boolean hasRoi(); /** * <code>optional .TSF.ROI roi = 29;</code> */ gdsc.smlm.tsf.TaggedSpotFile.ROI getRoi(); /** * <code>optional .TSF.ROI roi = 29;</code> */ gdsc.smlm.tsf.TaggedSpotFile.ROIOrBuilder getRoiOrBuilder(); /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ boolean hasSource(); /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ java.lang.String getSource(); /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ com.google.protobuf.ByteString getSourceBytes(); /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ boolean hasConfiguration(); /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ java.lang.String getConfiguration(); /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ com.google.protobuf.ByteString getConfigurationBytes(); /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ boolean hasGain(); /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ double getGain(); /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ boolean hasExposureTime(); /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ double getExposureTime(); /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ boolean hasReadNoise(); /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ double getReadNoise(); /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ boolean hasBias(); /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ double getBias(); /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ boolean hasEmCCD(); /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ boolean getEmCCD(); /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ boolean hasAmplification(); /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ double getAmplification(); } /** * Protobuf type {@code TSF.SpotList} */ public static final class SpotList extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage< SpotList> implements // @@protoc_insertion_point(message_implements:TSF.SpotList) SpotListOrBuilder { // Use SpotList.newBuilder() to construct. private SpotList(com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<gdsc.smlm.tsf.TaggedSpotFile.SpotList, ?> builder) { super(builder); } private SpotList() { applicationId_ = 1; name_ = ""; filepath_ = ""; uid_ = 0L; nrPixelsX_ = 0; nrPixelsY_ = 0; pixelSize_ = 0F; nrSpots_ = 0L; boxSize_ = 0; nrChannels_ = 0; nrFrames_ = 0; nrSlices_ = 0; nrPos_ = 0; fluorophoreTypes_ = java.util.Collections.emptyList(); locationUnits_ = 0; intensityUnits_ = 0; thetaUnits_ = 0; fitMode_ = 0; isTrack_ = false; ecf_ = java.util.Collections.emptyList(); qe_ = java.util.Collections.emptyList(); source_ = ""; configuration_ = ""; gain_ = 0D; exposureTime_ = 0D; readNoise_ = 0D; bias_ = 0D; emCCD_ = false; amplification_ = 0D; } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private SpotList( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { done = true; } break; } case 8: { bitField0_ |= 0x00000001; applicationId_ = input.readInt32(); break; } case 18: { com.google.protobuf.ByteString bs = input.readBytes(); bitField0_ |= 0x00000002; name_ = bs; break; } case 26: { com.google.protobuf.ByteString bs = input.readBytes(); bitField0_ |= 0x00000004; filepath_ = bs; break; } case 32: { bitField0_ |= 0x00000008; uid_ = input.readInt64(); break; } case 40: { bitField0_ |= 0x00000010; nrPixelsX_ = input.readInt32(); break; } case 48: { bitField0_ |= 0x00000020; nrPixelsY_ = input.readInt32(); break; } case 61: { bitField0_ |= 0x00000040; pixelSize_ = input.readFloat(); break; } case 64: { bitField0_ |= 0x00000080; nrSpots_ = input.readInt64(); break; } case 136: { bitField0_ |= 0x00000100; boxSize_ = input.readInt32(); break; } case 144: { bitField0_ |= 0x00000200; nrChannels_ = input.readInt32(); break; } case 152: { bitField0_ |= 0x00000400; nrFrames_ = input.readInt32(); break; } case 160: { bitField0_ |= 0x00000800; nrSlices_ = input.readInt32(); break; } case 168: { bitField0_ |= 0x00001000; nrPos_ = input.readInt32(); break; } case 176: { int rawValue = input.readEnum(); gdsc.smlm.tsf.TaggedSpotFile.LocationUnits value = gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.valueOf(rawValue); if (value == null) { unknownFields.mergeVarintField(22, rawValue); } else { bitField0_ |= 0x00002000; locationUnits_ = rawValue; } break; } case 184: { int rawValue = input.readEnum(); gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits value = gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.valueOf(rawValue); if (value == null) { unknownFields.mergeVarintField(23, rawValue); } else { bitField0_ |= 0x00004000; intensityUnits_ = rawValue; } break; } case 192: { int rawValue = input.readEnum(); gdsc.smlm.tsf.TaggedSpotFile.FitMode value = gdsc.smlm.tsf.TaggedSpotFile.FitMode.valueOf(rawValue); if (value == null) { unknownFields.mergeVarintField(24, rawValue); } else { bitField0_ |= 0x00010000; fitMode_ = rawValue; } break; } case 200: { bitField0_ |= 0x00020000; isTrack_ = input.readBool(); break; } case 210: { if (!((mutable_bitField0_ & 0x00002000) == 0x00002000)) { fluorophoreTypes_ = new java.util.ArrayList<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType>(); mutable_bitField0_ |= 0x00002000; } fluorophoreTypes_.add( input.readMessage(gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.PARSER, extensionRegistry)); break; } case 216: { int rawValue = input.readEnum(); gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits value = gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits.valueOf(rawValue); if (value == null) { unknownFields.mergeVarintField(27, rawValue); } else { bitField0_ |= 0x00008000; thetaUnits_ = rawValue; } break; } case 225: { if (!((mutable_bitField0_ & 0x00080000) == 0x00080000)) { ecf_ = new java.util.ArrayList<java.lang.Double>(); mutable_bitField0_ |= 0x00080000; } ecf_.add(input.readDouble()); break; } case 226: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); if (!((mutable_bitField0_ & 0x00080000) == 0x00080000) && input.getBytesUntilLimit() > 0) { ecf_ = new java.util.ArrayList<java.lang.Double>(); mutable_bitField0_ |= 0x00080000; } while (input.getBytesUntilLimit() > 0) { ecf_.add(input.readDouble()); } input.popLimit(limit); break; } case 234: { gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder subBuilder = null; if (((bitField0_ & 0x00040000) == 0x00040000)) { subBuilder = roi_.toBuilder(); } roi_ = input.readMessage(gdsc.smlm.tsf.TaggedSpotFile.ROI.PARSER, extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(roi_); roi_ = subBuilder.buildPartial(); } bitField0_ |= 0x00040000; break; } case 241: { if (!((mutable_bitField0_ & 0x00100000) == 0x00100000)) { qe_ = new java.util.ArrayList<java.lang.Double>(); mutable_bitField0_ |= 0x00100000; } qe_.add(input.readDouble()); break; } case 242: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); if (!((mutable_bitField0_ & 0x00100000) == 0x00100000) && input.getBytesUntilLimit() > 0) { qe_ = new java.util.ArrayList<java.lang.Double>(); mutable_bitField0_ |= 0x00100000; } while (input.getBytesUntilLimit() > 0) { qe_.add(input.readDouble()); } input.popLimit(limit); break; } case 12010: { com.google.protobuf.ByteString bs = input.readBytes(); bitField0_ |= 0x00080000; source_ = bs; break; } case 12018: { com.google.protobuf.ByteString bs = input.readBytes(); bitField0_ |= 0x00100000; configuration_ = bs; break; } case 12025: { bitField0_ |= 0x00200000; gain_ = input.readDouble(); break; } case 12033: { bitField0_ |= 0x00400000; exposureTime_ = input.readDouble(); break; } case 12041: { bitField0_ |= 0x00800000; readNoise_ = input.readDouble(); break; } case 12049: { bitField0_ |= 0x01000000; bias_ = input.readDouble(); break; } case 12056: { bitField0_ |= 0x02000000; emCCD_ = input.readBool(); break; } case 12065: { bitField0_ |= 0x04000000; amplification_ = input.readDouble(); break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00002000) == 0x00002000)) { fluorophoreTypes_ = java.util.Collections.unmodifiableList(fluorophoreTypes_); } if (((mutable_bitField0_ & 0x00080000) == 0x00080000)) { ecf_ = java.util.Collections.unmodifiableList(ecf_); } if (((mutable_bitField0_ & 0x00100000) == 0x00100000)) { qe_ = java.util.Collections.unmodifiableList(qe_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_SpotList_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_SpotList_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.SpotList.class, gdsc.smlm.tsf.TaggedSpotFile.SpotList.Builder.class); } private int bitField0_; public static final int APPLICATION_ID_FIELD_NUMBER = 1; private int applicationId_; /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ public boolean hasApplicationId() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ public int getApplicationId() { return applicationId_; } public static final int NAME_FIELD_NUMBER = 2; private volatile java.lang.Object name_; /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public java.lang.String getName() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { name_ = s; } return s; } } /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int FILEPATH_FIELD_NUMBER = 3; private volatile java.lang.Object filepath_; /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public boolean hasFilepath() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public java.lang.String getFilepath() { java.lang.Object ref = filepath_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { filepath_ = s; } return s; } } /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public com.google.protobuf.ByteString getFilepathBytes() { java.lang.Object ref = filepath_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); filepath_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int UID_FIELD_NUMBER = 4; private long uid_; /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ public boolean hasUid() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ public long getUid() { return uid_; } public static final int NR_PIXELS_X_FIELD_NUMBER = 5; private int nrPixelsX_; /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ public boolean hasNrPixelsX() { return ((bitField0_ & 0x00000010) == 0x00000010); } /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ public int getNrPixelsX() { return nrPixelsX_; } public static final int NR_PIXELS_Y_FIELD_NUMBER = 6; private int nrPixelsY_; /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ public boolean hasNrPixelsY() { return ((bitField0_ & 0x00000020) == 0x00000020); } /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ public int getNrPixelsY() { return nrPixelsY_; } public static final int PIXEL_SIZE_FIELD_NUMBER = 7; private float pixelSize_; /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ public boolean hasPixelSize() { return ((bitField0_ & 0x00000040) == 0x00000040); } /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ public float getPixelSize() { return pixelSize_; } public static final int NR_SPOTS_FIELD_NUMBER = 8; private long nrSpots_; /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ public boolean hasNrSpots() { return ((bitField0_ & 0x00000080) == 0x00000080); } /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ public long getNrSpots() { return nrSpots_; } public static final int BOX_SIZE_FIELD_NUMBER = 17; private int boxSize_; /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ public boolean hasBoxSize() { return ((bitField0_ & 0x00000100) == 0x00000100); } /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ public int getBoxSize() { return boxSize_; } public static final int NR_CHANNELS_FIELD_NUMBER = 18; private int nrChannels_; /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ public boolean hasNrChannels() { return ((bitField0_ & 0x00000200) == 0x00000200); } /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ public int getNrChannels() { return nrChannels_; } public static final int NR_FRAMES_FIELD_NUMBER = 19; private int nrFrames_; /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ public boolean hasNrFrames() { return ((bitField0_ & 0x00000400) == 0x00000400); } /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ public int getNrFrames() { return nrFrames_; } public static final int NR_SLICES_FIELD_NUMBER = 20; private int nrSlices_; /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ public boolean hasNrSlices() { return ((bitField0_ & 0x00000800) == 0x00000800); } /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ public int getNrSlices() { return nrSlices_; } public static final int NR_POS_FIELD_NUMBER = 21; private int nrPos_; /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ public boolean hasNrPos() { return ((bitField0_ & 0x00001000) == 0x00001000); } /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ public int getNrPos() { return nrPos_; } public static final int FLUOROPHORE_TYPES_FIELD_NUMBER = 26; private java.util.List<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType> fluorophoreTypes_; /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public java.util.List<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType> getFluorophoreTypesList() { return fluorophoreTypes_; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public java.util.List<? extends gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder> getFluorophoreTypesOrBuilderList() { return fluorophoreTypes_; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public int getFluorophoreTypesCount() { return fluorophoreTypes_.size(); } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType getFluorophoreTypes(int index) { return fluorophoreTypes_.get(index); } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder getFluorophoreTypesOrBuilder( int index) { return fluorophoreTypes_.get(index); } public static final int LOCATION_UNITS_FIELD_NUMBER = 22; private int locationUnits_; /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ public boolean hasLocationUnits() { return ((bitField0_ & 0x00002000) == 0x00002000); } /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.LocationUnits getLocationUnits() { gdsc.smlm.tsf.TaggedSpotFile.LocationUnits result = gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.valueOf(locationUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.NM : result; } public static final int INTENSITY_UNITS_FIELD_NUMBER = 23; private int intensityUnits_; /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ public boolean hasIntensityUnits() { return ((bitField0_ & 0x00004000) == 0x00004000); } /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits getIntensityUnits() { gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits result = gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.valueOf(intensityUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.COUNTS : result; } public static final int THETA_UNITS_FIELD_NUMBER = 27; private int thetaUnits_; /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ public boolean hasThetaUnits() { return ((bitField0_ & 0x00008000) == 0x00008000); } /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits getThetaUnits() { gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits result = gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits.valueOf(thetaUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits.DEGREES : result; } public static final int FIT_MODE_FIELD_NUMBER = 24; private int fitMode_; /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ public boolean hasFitMode() { return ((bitField0_ & 0x00010000) == 0x00010000); } /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FitMode getFitMode() { gdsc.smlm.tsf.TaggedSpotFile.FitMode result = gdsc.smlm.tsf.TaggedSpotFile.FitMode.valueOf(fitMode_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.FitMode.ONEAXIS : result; } public static final int IS_TRACK_FIELD_NUMBER = 25; private boolean isTrack_; /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ public boolean hasIsTrack() { return ((bitField0_ & 0x00020000) == 0x00020000); } /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ public boolean getIsTrack() { return isTrack_; } public static final int ECF_FIELD_NUMBER = 28; private java.util.List<java.lang.Double> ecf_; /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public java.util.List<java.lang.Double> getEcfList() { return ecf_; } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public int getEcfCount() { return ecf_.size(); } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public double getEcf(int index) { return ecf_.get(index); } public static final int QE_FIELD_NUMBER = 30; private java.util.List<java.lang.Double> qe_; /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public java.util.List<java.lang.Double> getQeList() { return qe_; } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public int getQeCount() { return qe_.size(); } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public double getQe(int index) { return qe_.get(index); } public static final int ROI_FIELD_NUMBER = 29; private gdsc.smlm.tsf.TaggedSpotFile.ROI roi_; /** * <code>optional .TSF.ROI roi = 29;</code> */ public boolean hasRoi() { return ((bitField0_ & 0x00040000) == 0x00040000); } /** * <code>optional .TSF.ROI roi = 29;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.ROI getRoi() { return roi_ == null ? gdsc.smlm.tsf.TaggedSpotFile.ROI.getDefaultInstance() : roi_; } /** * <code>optional .TSF.ROI roi = 29;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.ROIOrBuilder getRoiOrBuilder() { return roi_ == null ? gdsc.smlm.tsf.TaggedSpotFile.ROI.getDefaultInstance() : roi_; } public static final int SOURCE_FIELD_NUMBER = 1501; private volatile java.lang.Object source_; /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public boolean hasSource() { return ((bitField0_ & 0x00080000) == 0x00080000); } /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public java.lang.String getSource() { java.lang.Object ref = source_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { source_ = s; } return s; } } /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public com.google.protobuf.ByteString getSourceBytes() { java.lang.Object ref = source_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); source_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CONFIGURATION_FIELD_NUMBER = 1502; private volatile java.lang.Object configuration_; /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public boolean hasConfiguration() { return ((bitField0_ & 0x00100000) == 0x00100000); } /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public java.lang.String getConfiguration() { java.lang.Object ref = configuration_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { configuration_ = s; } return s; } } /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public com.google.protobuf.ByteString getConfigurationBytes() { java.lang.Object ref = configuration_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); configuration_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int GAIN_FIELD_NUMBER = 1503; private double gain_; /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ public boolean hasGain() { return ((bitField0_ & 0x00200000) == 0x00200000); } /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ public double getGain() { return gain_; } public static final int EXPOSURETIME_FIELD_NUMBER = 1504; private double exposureTime_; /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ public boolean hasExposureTime() { return ((bitField0_ & 0x00400000) == 0x00400000); } /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ public double getExposureTime() { return exposureTime_; } public static final int READNOISE_FIELD_NUMBER = 1505; private double readNoise_; /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ public boolean hasReadNoise() { return ((bitField0_ & 0x00800000) == 0x00800000); } /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ public double getReadNoise() { return readNoise_; } public static final int BIAS_FIELD_NUMBER = 1506; private double bias_; /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ public boolean hasBias() { return ((bitField0_ & 0x01000000) == 0x01000000); } /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ public double getBias() { return bias_; } public static final int EMCCD_FIELD_NUMBER = 1507; private boolean emCCD_; /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ public boolean hasEmCCD() { return ((bitField0_ & 0x02000000) == 0x02000000); } /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ public boolean getEmCCD() { return emCCD_; } public static final int AMPLIFICATION_FIELD_NUMBER = 1508; private double amplification_; /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ public boolean hasAmplification() { return ((bitField0_ & 0x04000000) == 0x04000000); } /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ public double getAmplification() { return amplification_; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; if (!hasApplicationId()) { memoizedIsInitialized = 0; return false; } for (int i = 0; i < getFluorophoreTypesCount(); i++) { if (!getFluorophoreTypes(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } if (hasRoi()) { if (!getRoi().isInitialized()) { memoizedIsInitialized = 0; return false; } } if (!extensionsAreInitialized()) { memoizedIsInitialized = 0; return false; } memoizedIsInitialized = 1; return true; } public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { com.google.protobuf.GeneratedMessageV3 .ExtendableMessage<gdsc.smlm.tsf.TaggedSpotFile.SpotList>.ExtensionWriter extensionWriter = newExtensionWriter(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeInt32(1, applicationId_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, filepath_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeInt64(4, uid_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeInt32(5, nrPixelsX_); } if (((bitField0_ & 0x00000020) == 0x00000020)) { output.writeInt32(6, nrPixelsY_); } if (((bitField0_ & 0x00000040) == 0x00000040)) { output.writeFloat(7, pixelSize_); } if (((bitField0_ & 0x00000080) == 0x00000080)) { output.writeInt64(8, nrSpots_); } if (((bitField0_ & 0x00000100) == 0x00000100)) { output.writeInt32(17, boxSize_); } if (((bitField0_ & 0x00000200) == 0x00000200)) { output.writeInt32(18, nrChannels_); } if (((bitField0_ & 0x00000400) == 0x00000400)) { output.writeInt32(19, nrFrames_); } if (((bitField0_ & 0x00000800) == 0x00000800)) { output.writeInt32(20, nrSlices_); } if (((bitField0_ & 0x00001000) == 0x00001000)) { output.writeInt32(21, nrPos_); } if (((bitField0_ & 0x00002000) == 0x00002000)) { output.writeEnum(22, locationUnits_); } if (((bitField0_ & 0x00004000) == 0x00004000)) { output.writeEnum(23, intensityUnits_); } if (((bitField0_ & 0x00010000) == 0x00010000)) { output.writeEnum(24, fitMode_); } if (((bitField0_ & 0x00020000) == 0x00020000)) { output.writeBool(25, isTrack_); } for (int i = 0; i < fluorophoreTypes_.size(); i++) { output.writeMessage(26, fluorophoreTypes_.get(i)); } if (((bitField0_ & 0x00008000) == 0x00008000)) { output.writeEnum(27, thetaUnits_); } for (int i = 0; i < ecf_.size(); i++) { output.writeDouble(28, ecf_.get(i)); } if (((bitField0_ & 0x00040000) == 0x00040000)) { output.writeMessage(29, getRoi()); } for (int i = 0; i < qe_.size(); i++) { output.writeDouble(30, qe_.get(i)); } if (((bitField0_ & 0x00080000) == 0x00080000)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1501, source_); } if (((bitField0_ & 0x00100000) == 0x00100000)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1502, configuration_); } if (((bitField0_ & 0x00200000) == 0x00200000)) { output.writeDouble(1503, gain_); } if (((bitField0_ & 0x00400000) == 0x00400000)) { output.writeDouble(1504, exposureTime_); } if (((bitField0_ & 0x00800000) == 0x00800000)) { output.writeDouble(1505, readNoise_); } if (((bitField0_ & 0x01000000) == 0x01000000)) { output.writeDouble(1506, bias_); } if (((bitField0_ & 0x02000000) == 0x02000000)) { output.writeBool(1507, emCCD_); } if (((bitField0_ & 0x04000000) == 0x04000000)) { output.writeDouble(1508, amplification_); } extensionWriter.writeUntil(2048, output); unknownFields.writeTo(output); } public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(1, applicationId_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, filepath_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(4, uid_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(5, nrPixelsX_); } if (((bitField0_ & 0x00000020) == 0x00000020)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(6, nrPixelsY_); } if (((bitField0_ & 0x00000040) == 0x00000040)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(7, pixelSize_); } if (((bitField0_ & 0x00000080) == 0x00000080)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(8, nrSpots_); } if (((bitField0_ & 0x00000100) == 0x00000100)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(17, boxSize_); } if (((bitField0_ & 0x00000200) == 0x00000200)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(18, nrChannels_); } if (((bitField0_ & 0x00000400) == 0x00000400)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(19, nrFrames_); } if (((bitField0_ & 0x00000800) == 0x00000800)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(20, nrSlices_); } if (((bitField0_ & 0x00001000) == 0x00001000)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(21, nrPos_); } if (((bitField0_ & 0x00002000) == 0x00002000)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(22, locationUnits_); } if (((bitField0_ & 0x00004000) == 0x00004000)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(23, intensityUnits_); } if (((bitField0_ & 0x00010000) == 0x00010000)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(24, fitMode_); } if (((bitField0_ & 0x00020000) == 0x00020000)) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(25, isTrack_); } for (int i = 0; i < fluorophoreTypes_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(26, fluorophoreTypes_.get(i)); } if (((bitField0_ & 0x00008000) == 0x00008000)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(27, thetaUnits_); } { int dataSize = 0; dataSize = 8 * getEcfList().size(); size += dataSize; size += 2 * getEcfList().size(); } if (((bitField0_ & 0x00040000) == 0x00040000)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(29, getRoi()); } { int dataSize = 0; dataSize = 8 * getQeList().size(); size += dataSize; size += 2 * getQeList().size(); } if (((bitField0_ & 0x00080000) == 0x00080000)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1501, source_); } if (((bitField0_ & 0x00100000) == 0x00100000)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1502, configuration_); } if (((bitField0_ & 0x00200000) == 0x00200000)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1503, gain_); } if (((bitField0_ & 0x00400000) == 0x00400000)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1504, exposureTime_); } if (((bitField0_ & 0x00800000) == 0x00800000)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1505, readNoise_); } if (((bitField0_ & 0x01000000) == 0x01000000)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1506, bias_); } if (((bitField0_ & 0x02000000) == 0x02000000)) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(1507, emCCD_); } if (((bitField0_ & 0x04000000) == 0x04000000)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1508, amplification_); } size += extensionsSerializedSize(); size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } private static final long serialVersionUID = 0L; @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof gdsc.smlm.tsf.TaggedSpotFile.SpotList)) { return super.equals(obj); } gdsc.smlm.tsf.TaggedSpotFile.SpotList other = (gdsc.smlm.tsf.TaggedSpotFile.SpotList) obj; boolean result = true; result = result && (hasApplicationId() == other.hasApplicationId()); if (hasApplicationId()) { result = result && (getApplicationId() == other.getApplicationId()); } result = result && (hasName() == other.hasName()); if (hasName()) { result = result && getName() .equals(other.getName()); } result = result && (hasFilepath() == other.hasFilepath()); if (hasFilepath()) { result = result && getFilepath() .equals(other.getFilepath()); } result = result && (hasUid() == other.hasUid()); if (hasUid()) { result = result && (getUid() == other.getUid()); } result = result && (hasNrPixelsX() == other.hasNrPixelsX()); if (hasNrPixelsX()) { result = result && (getNrPixelsX() == other.getNrPixelsX()); } result = result && (hasNrPixelsY() == other.hasNrPixelsY()); if (hasNrPixelsY()) { result = result && (getNrPixelsY() == other.getNrPixelsY()); } result = result && (hasPixelSize() == other.hasPixelSize()); if (hasPixelSize()) { result = result && ( java.lang.Float.floatToIntBits(getPixelSize()) == java.lang.Float.floatToIntBits( other.getPixelSize())); } result = result && (hasNrSpots() == other.hasNrSpots()); if (hasNrSpots()) { result = result && (getNrSpots() == other.getNrSpots()); } result = result && (hasBoxSize() == other.hasBoxSize()); if (hasBoxSize()) { result = result && (getBoxSize() == other.getBoxSize()); } result = result && (hasNrChannels() == other.hasNrChannels()); if (hasNrChannels()) { result = result && (getNrChannels() == other.getNrChannels()); } result = result && (hasNrFrames() == other.hasNrFrames()); if (hasNrFrames()) { result = result && (getNrFrames() == other.getNrFrames()); } result = result && (hasNrSlices() == other.hasNrSlices()); if (hasNrSlices()) { result = result && (getNrSlices() == other.getNrSlices()); } result = result && (hasNrPos() == other.hasNrPos()); if (hasNrPos()) { result = result && (getNrPos() == other.getNrPos()); } result = result && getFluorophoreTypesList() .equals(other.getFluorophoreTypesList()); result = result && (hasLocationUnits() == other.hasLocationUnits()); if (hasLocationUnits()) { result = result && locationUnits_ == other.locationUnits_; } result = result && (hasIntensityUnits() == other.hasIntensityUnits()); if (hasIntensityUnits()) { result = result && intensityUnits_ == other.intensityUnits_; } result = result && (hasThetaUnits() == other.hasThetaUnits()); if (hasThetaUnits()) { result = result && thetaUnits_ == other.thetaUnits_; } result = result && (hasFitMode() == other.hasFitMode()); if (hasFitMode()) { result = result && fitMode_ == other.fitMode_; } result = result && (hasIsTrack() == other.hasIsTrack()); if (hasIsTrack()) { result = result && (getIsTrack() == other.getIsTrack()); } result = result && getEcfList() .equals(other.getEcfList()); result = result && getQeList() .equals(other.getQeList()); result = result && (hasRoi() == other.hasRoi()); if (hasRoi()) { result = result && getRoi() .equals(other.getRoi()); } result = result && (hasSource() == other.hasSource()); if (hasSource()) { result = result && getSource() .equals(other.getSource()); } result = result && (hasConfiguration() == other.hasConfiguration()); if (hasConfiguration()) { result = result && getConfiguration() .equals(other.getConfiguration()); } result = result && (hasGain() == other.hasGain()); if (hasGain()) { result = result && ( java.lang.Double.doubleToLongBits(getGain()) == java.lang.Double.doubleToLongBits( other.getGain())); } result = result && (hasExposureTime() == other.hasExposureTime()); if (hasExposureTime()) { result = result && ( java.lang.Double.doubleToLongBits(getExposureTime()) == java.lang.Double.doubleToLongBits( other.getExposureTime())); } result = result && (hasReadNoise() == other.hasReadNoise()); if (hasReadNoise()) { result = result && ( java.lang.Double.doubleToLongBits(getReadNoise()) == java.lang.Double.doubleToLongBits( other.getReadNoise())); } result = result && (hasBias() == other.hasBias()); if (hasBias()) { result = result && ( java.lang.Double.doubleToLongBits(getBias()) == java.lang.Double.doubleToLongBits( other.getBias())); } result = result && (hasEmCCD() == other.hasEmCCD()); if (hasEmCCD()) { result = result && (getEmCCD() == other.getEmCCD()); } result = result && (hasAmplification() == other.hasAmplification()); if (hasAmplification()) { result = result && ( java.lang.Double.doubleToLongBits(getAmplification()) == java.lang.Double.doubleToLongBits( other.getAmplification())); } result = result && unknownFields.equals(other.unknownFields); result = result && getExtensionFields().equals(other.getExtensionFields()); return result; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptorForType().hashCode(); if (hasApplicationId()) { hash = (37 * hash) + APPLICATION_ID_FIELD_NUMBER; hash = (53 * hash) + getApplicationId(); } if (hasName()) { hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); } if (hasFilepath()) { hash = (37 * hash) + FILEPATH_FIELD_NUMBER; hash = (53 * hash) + getFilepath().hashCode(); } if (hasUid()) { hash = (37 * hash) + UID_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getUid()); } if (hasNrPixelsX()) { hash = (37 * hash) + NR_PIXELS_X_FIELD_NUMBER; hash = (53 * hash) + getNrPixelsX(); } if (hasNrPixelsY()) { hash = (37 * hash) + NR_PIXELS_Y_FIELD_NUMBER; hash = (53 * hash) + getNrPixelsY(); } if (hasPixelSize()) { hash = (37 * hash) + PIXEL_SIZE_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getPixelSize()); } if (hasNrSpots()) { hash = (37 * hash) + NR_SPOTS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getNrSpots()); } if (hasBoxSize()) { hash = (37 * hash) + BOX_SIZE_FIELD_NUMBER; hash = (53 * hash) + getBoxSize(); } if (hasNrChannels()) { hash = (37 * hash) + NR_CHANNELS_FIELD_NUMBER; hash = (53 * hash) + getNrChannels(); } if (hasNrFrames()) { hash = (37 * hash) + NR_FRAMES_FIELD_NUMBER; hash = (53 * hash) + getNrFrames(); } if (hasNrSlices()) { hash = (37 * hash) + NR_SLICES_FIELD_NUMBER; hash = (53 * hash) + getNrSlices(); } if (hasNrPos()) { hash = (37 * hash) + NR_POS_FIELD_NUMBER; hash = (53 * hash) + getNrPos(); } if (getFluorophoreTypesCount() > 0) { hash = (37 * hash) + FLUOROPHORE_TYPES_FIELD_NUMBER; hash = (53 * hash) + getFluorophoreTypesList().hashCode(); } if (hasLocationUnits()) { hash = (37 * hash) + LOCATION_UNITS_FIELD_NUMBER; hash = (53 * hash) + locationUnits_; } if (hasIntensityUnits()) { hash = (37 * hash) + INTENSITY_UNITS_FIELD_NUMBER; hash = (53 * hash) + intensityUnits_; } if (hasThetaUnits()) { hash = (37 * hash) + THETA_UNITS_FIELD_NUMBER; hash = (53 * hash) + thetaUnits_; } if (hasFitMode()) { hash = (37 * hash) + FIT_MODE_FIELD_NUMBER; hash = (53 * hash) + fitMode_; } if (hasIsTrack()) { hash = (37 * hash) + IS_TRACK_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getIsTrack()); } if (getEcfCount() > 0) { hash = (37 * hash) + ECF_FIELD_NUMBER; hash = (53 * hash) + getEcfList().hashCode(); } if (getQeCount() > 0) { hash = (37 * hash) + QE_FIELD_NUMBER; hash = (53 * hash) + getQeList().hashCode(); } if (hasRoi()) { hash = (37 * hash) + ROI_FIELD_NUMBER; hash = (53 * hash) + getRoi().hashCode(); } if (hasSource()) { hash = (37 * hash) + SOURCE_FIELD_NUMBER; hash = (53 * hash) + getSource().hashCode(); } if (hasConfiguration()) { hash = (37 * hash) + CONFIGURATION_FIELD_NUMBER; hash = (53 * hash) + getConfiguration().hashCode(); } if (hasGain()) { hash = (37 * hash) + GAIN_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getGain())); } if (hasExposureTime()) { hash = (37 * hash) + EXPOSURETIME_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getExposureTime())); } if (hasReadNoise()) { hash = (37 * hash) + READNOISE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getReadNoise())); } if (hasBias()) { hash = (37 * hash) + BIAS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getBias())); } if (hasEmCCD()) { hash = (37 * hash) + EMCCD_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getEmCCD()); } if (hasAmplification()) { hash = (37 * hash) + AMPLIFICATION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAmplification())); } hash = hashFields(hash, getExtensionFields()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(gdsc.smlm.tsf.TaggedSpotFile.SpotList prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code TSF.SpotList} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder< gdsc.smlm.tsf.TaggedSpotFile.SpotList, Builder> implements // @@protoc_insertion_point(builder_implements:TSF.SpotList) gdsc.smlm.tsf.TaggedSpotFile.SpotListOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_SpotList_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_SpotList_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.SpotList.class, gdsc.smlm.tsf.TaggedSpotFile.SpotList.Builder.class); } // Construct using gdsc.smlm.tsf.TaggedSpotFile.SpotList.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getFluorophoreTypesFieldBuilder(); getRoiFieldBuilder(); } } public Builder clear() { super.clear(); applicationId_ = 1; bitField0_ = (bitField0_ & ~0x00000001); name_ = ""; bitField0_ = (bitField0_ & ~0x00000002); filepath_ = ""; bitField0_ = (bitField0_ & ~0x00000004); uid_ = 0L; bitField0_ = (bitField0_ & ~0x00000008); nrPixelsX_ = 0; bitField0_ = (bitField0_ & ~0x00000010); nrPixelsY_ = 0; bitField0_ = (bitField0_ & ~0x00000020); pixelSize_ = 0F; bitField0_ = (bitField0_ & ~0x00000040); nrSpots_ = 0L; bitField0_ = (bitField0_ & ~0x00000080); boxSize_ = 0; bitField0_ = (bitField0_ & ~0x00000100); nrChannels_ = 0; bitField0_ = (bitField0_ & ~0x00000200); nrFrames_ = 0; bitField0_ = (bitField0_ & ~0x00000400); nrSlices_ = 0; bitField0_ = (bitField0_ & ~0x00000800); nrPos_ = 0; bitField0_ = (bitField0_ & ~0x00001000); if (fluorophoreTypesBuilder_ == null) { fluorophoreTypes_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00002000); } else { fluorophoreTypesBuilder_.clear(); } locationUnits_ = 0; bitField0_ = (bitField0_ & ~0x00004000); intensityUnits_ = 0; bitField0_ = (bitField0_ & ~0x00008000); thetaUnits_ = 0; bitField0_ = (bitField0_ & ~0x00010000); fitMode_ = 0; bitField0_ = (bitField0_ & ~0x00020000); isTrack_ = false; bitField0_ = (bitField0_ & ~0x00040000); ecf_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00080000); qe_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00100000); if (roiBuilder_ == null) { roi_ = null; } else { roiBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00200000); source_ = ""; bitField0_ = (bitField0_ & ~0x00400000); configuration_ = ""; bitField0_ = (bitField0_ & ~0x00800000); gain_ = 0D; bitField0_ = (bitField0_ & ~0x01000000); exposureTime_ = 0D; bitField0_ = (bitField0_ & ~0x02000000); readNoise_ = 0D; bitField0_ = (bitField0_ & ~0x04000000); bias_ = 0D; bitField0_ = (bitField0_ & ~0x08000000); emCCD_ = false; bitField0_ = (bitField0_ & ~0x10000000); amplification_ = 0D; bitField0_ = (bitField0_ & ~0x20000000); return this; } public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_SpotList_descriptor; } public gdsc.smlm.tsf.TaggedSpotFile.SpotList getDefaultInstanceForType() { return gdsc.smlm.tsf.TaggedSpotFile.SpotList.getDefaultInstance(); } public gdsc.smlm.tsf.TaggedSpotFile.SpotList build() { gdsc.smlm.tsf.TaggedSpotFile.SpotList result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } public gdsc.smlm.tsf.TaggedSpotFile.SpotList buildPartial() { gdsc.smlm.tsf.TaggedSpotFile.SpotList result = new gdsc.smlm.tsf.TaggedSpotFile.SpotList(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.applicationId_ = applicationId_; if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } result.name_ = name_; if (((from_bitField0_ & 0x00000004) == 0x00000004)) { to_bitField0_ |= 0x00000004; } result.filepath_ = filepath_; if (((from_bitField0_ & 0x00000008) == 0x00000008)) { to_bitField0_ |= 0x00000008; } result.uid_ = uid_; if (((from_bitField0_ & 0x00000010) == 0x00000010)) { to_bitField0_ |= 0x00000010; } result.nrPixelsX_ = nrPixelsX_; if (((from_bitField0_ & 0x00000020) == 0x00000020)) { to_bitField0_ |= 0x00000020; } result.nrPixelsY_ = nrPixelsY_; if (((from_bitField0_ & 0x00000040) == 0x00000040)) { to_bitField0_ |= 0x00000040; } result.pixelSize_ = pixelSize_; if (((from_bitField0_ & 0x00000080) == 0x00000080)) { to_bitField0_ |= 0x00000080; } result.nrSpots_ = nrSpots_; if (((from_bitField0_ & 0x00000100) == 0x00000100)) { to_bitField0_ |= 0x00000100; } result.boxSize_ = boxSize_; if (((from_bitField0_ & 0x00000200) == 0x00000200)) { to_bitField0_ |= 0x00000200; } result.nrChannels_ = nrChannels_; if (((from_bitField0_ & 0x00000400) == 0x00000400)) { to_bitField0_ |= 0x00000400; } result.nrFrames_ = nrFrames_; if (((from_bitField0_ & 0x00000800) == 0x00000800)) { to_bitField0_ |= 0x00000800; } result.nrSlices_ = nrSlices_; if (((from_bitField0_ & 0x00001000) == 0x00001000)) { to_bitField0_ |= 0x00001000; } result.nrPos_ = nrPos_; if (fluorophoreTypesBuilder_ == null) { if (((bitField0_ & 0x00002000) == 0x00002000)) { fluorophoreTypes_ = java.util.Collections.unmodifiableList(fluorophoreTypes_); bitField0_ = (bitField0_ & ~0x00002000); } result.fluorophoreTypes_ = fluorophoreTypes_; } else { result.fluorophoreTypes_ = fluorophoreTypesBuilder_.build(); } if (((from_bitField0_ & 0x00004000) == 0x00004000)) { to_bitField0_ |= 0x00002000; } result.locationUnits_ = locationUnits_; if (((from_bitField0_ & 0x00008000) == 0x00008000)) { to_bitField0_ |= 0x00004000; } result.intensityUnits_ = intensityUnits_; if (((from_bitField0_ & 0x00010000) == 0x00010000)) { to_bitField0_ |= 0x00008000; } result.thetaUnits_ = thetaUnits_; if (((from_bitField0_ & 0x00020000) == 0x00020000)) { to_bitField0_ |= 0x00010000; } result.fitMode_ = fitMode_; if (((from_bitField0_ & 0x00040000) == 0x00040000)) { to_bitField0_ |= 0x00020000; } result.isTrack_ = isTrack_; if (((bitField0_ & 0x00080000) == 0x00080000)) { ecf_ = java.util.Collections.unmodifiableList(ecf_); bitField0_ = (bitField0_ & ~0x00080000); } result.ecf_ = ecf_; if (((bitField0_ & 0x00100000) == 0x00100000)) { qe_ = java.util.Collections.unmodifiableList(qe_); bitField0_ = (bitField0_ & ~0x00100000); } result.qe_ = qe_; if (((from_bitField0_ & 0x00200000) == 0x00200000)) { to_bitField0_ |= 0x00040000; } if (roiBuilder_ == null) { result.roi_ = roi_; } else { result.roi_ = roiBuilder_.build(); } if (((from_bitField0_ & 0x00400000) == 0x00400000)) { to_bitField0_ |= 0x00080000; } result.source_ = source_; if (((from_bitField0_ & 0x00800000) == 0x00800000)) { to_bitField0_ |= 0x00100000; } result.configuration_ = configuration_; if (((from_bitField0_ & 0x01000000) == 0x01000000)) { to_bitField0_ |= 0x00200000; } result.gain_ = gain_; if (((from_bitField0_ & 0x02000000) == 0x02000000)) { to_bitField0_ |= 0x00400000; } result.exposureTime_ = exposureTime_; if (((from_bitField0_ & 0x04000000) == 0x04000000)) { to_bitField0_ |= 0x00800000; } result.readNoise_ = readNoise_; if (((from_bitField0_ & 0x08000000) == 0x08000000)) { to_bitField0_ |= 0x01000000; } result.bias_ = bias_; if (((from_bitField0_ & 0x10000000) == 0x10000000)) { to_bitField0_ |= 0x02000000; } result.emCCD_ = emCCD_; if (((from_bitField0_ & 0x20000000) == 0x20000000)) { to_bitField0_ |= 0x04000000; } result.amplification_ = amplification_; result.bitField0_ = to_bitField0_; onBuilt(); return result; } public Builder clone() { return (Builder) super.clone(); } public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.setField(field, value); } public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value) { return (Builder) super.setRepeatedField(field, index, value); } public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.addRepeatedField(field, value); } public <Type> Builder setExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.SpotList, Type> extension, Type value) { return (Builder) super.setExtension(extension, value); } public <Type> Builder setExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.SpotList, java.util.List<Type>> extension, int index, Type value) { return (Builder) super.setExtension(extension, index, value); } public <Type> Builder addExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.SpotList, java.util.List<Type>> extension, Type value) { return (Builder) super.addExtension(extension, value); } public <Type> Builder clearExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.SpotList, ?> extension) { return (Builder) super.clearExtension(extension); } public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof gdsc.smlm.tsf.TaggedSpotFile.SpotList) { return mergeFrom((gdsc.smlm.tsf.TaggedSpotFile.SpotList)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(gdsc.smlm.tsf.TaggedSpotFile.SpotList other) { if (other == gdsc.smlm.tsf.TaggedSpotFile.SpotList.getDefaultInstance()) return this; if (other.hasApplicationId()) { setApplicationId(other.getApplicationId()); } if (other.hasName()) { bitField0_ |= 0x00000002; name_ = other.name_; onChanged(); } if (other.hasFilepath()) { bitField0_ |= 0x00000004; filepath_ = other.filepath_; onChanged(); } if (other.hasUid()) { setUid(other.getUid()); } if (other.hasNrPixelsX()) { setNrPixelsX(other.getNrPixelsX()); } if (other.hasNrPixelsY()) { setNrPixelsY(other.getNrPixelsY()); } if (other.hasPixelSize()) { setPixelSize(other.getPixelSize()); } if (other.hasNrSpots()) { setNrSpots(other.getNrSpots()); } if (other.hasBoxSize()) { setBoxSize(other.getBoxSize()); } if (other.hasNrChannels()) { setNrChannels(other.getNrChannels()); } if (other.hasNrFrames()) { setNrFrames(other.getNrFrames()); } if (other.hasNrSlices()) { setNrSlices(other.getNrSlices()); } if (other.hasNrPos()) { setNrPos(other.getNrPos()); } if (fluorophoreTypesBuilder_ == null) { if (!other.fluorophoreTypes_.isEmpty()) { if (fluorophoreTypes_.isEmpty()) { fluorophoreTypes_ = other.fluorophoreTypes_; bitField0_ = (bitField0_ & ~0x00002000); } else { ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.addAll(other.fluorophoreTypes_); } onChanged(); } } else { if (!other.fluorophoreTypes_.isEmpty()) { if (fluorophoreTypesBuilder_.isEmpty()) { fluorophoreTypesBuilder_.dispose(); fluorophoreTypesBuilder_ = null; fluorophoreTypes_ = other.fluorophoreTypes_; bitField0_ = (bitField0_ & ~0x00002000); fluorophoreTypesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getFluorophoreTypesFieldBuilder() : null; } else { fluorophoreTypesBuilder_.addAllMessages(other.fluorophoreTypes_); } } } if (other.hasLocationUnits()) { setLocationUnits(other.getLocationUnits()); } if (other.hasIntensityUnits()) { setIntensityUnits(other.getIntensityUnits()); } if (other.hasThetaUnits()) { setThetaUnits(other.getThetaUnits()); } if (other.hasFitMode()) { setFitMode(other.getFitMode()); } if (other.hasIsTrack()) { setIsTrack(other.getIsTrack()); } if (!other.ecf_.isEmpty()) { if (ecf_.isEmpty()) { ecf_ = other.ecf_; bitField0_ = (bitField0_ & ~0x00080000); } else { ensureEcfIsMutable(); ecf_.addAll(other.ecf_); } onChanged(); } if (!other.qe_.isEmpty()) { if (qe_.isEmpty()) { qe_ = other.qe_; bitField0_ = (bitField0_ & ~0x00100000); } else { ensureQeIsMutable(); qe_.addAll(other.qe_); } onChanged(); } if (other.hasRoi()) { mergeRoi(other.getRoi()); } if (other.hasSource()) { bitField0_ |= 0x00400000; source_ = other.source_; onChanged(); } if (other.hasConfiguration()) { bitField0_ |= 0x00800000; configuration_ = other.configuration_; onChanged(); } if (other.hasGain()) { setGain(other.getGain()); } if (other.hasExposureTime()) { setExposureTime(other.getExposureTime()); } if (other.hasReadNoise()) { setReadNoise(other.getReadNoise()); } if (other.hasBias()) { setBias(other.getBias()); } if (other.hasEmCCD()) { setEmCCD(other.getEmCCD()); } if (other.hasAmplification()) { setAmplification(other.getAmplification()); } this.mergeExtensionFields(other); this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } public final boolean isInitialized() { if (!hasApplicationId()) { return false; } for (int i = 0; i < getFluorophoreTypesCount(); i++) { if (!getFluorophoreTypes(i).isInitialized()) { return false; } } if (hasRoi()) { if (!getRoi().isInitialized()) { return false; } } if (!extensionsAreInitialized()) { return false; } return true; } public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { gdsc.smlm.tsf.TaggedSpotFile.SpotList parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (gdsc.smlm.tsf.TaggedSpotFile.SpotList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private int applicationId_ = 1; /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ public boolean hasApplicationId() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ public int getApplicationId() { return applicationId_; } /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ public Builder setApplicationId(int value) { bitField0_ |= 0x00000001; applicationId_ = value; onChanged(); return this; } /** * <pre> * UID for the application that generated these data * Request a UID from nico at cmp.ucsf.edu or use 1 * </pre> * * <code>required int32 application_id = 1 [default = 1];</code> */ public Builder clearApplicationId() { bitField0_ = (bitField0_ & ~0x00000001); applicationId_ = 1; onChanged(); return this; } private java.lang.Object name_ = ""; /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public java.lang.String getName() { java.lang.Object ref = name_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { name_ = s; } return s; } else { return (java.lang.String) ref; } } /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public Builder setName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000002; name_ = value; onChanged(); return this; } /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public Builder clearName() { bitField0_ = (bitField0_ & ~0x00000002); name_ = getDefaultInstance().getName(); onChanged(); return this; } /** * <pre> * name identifying the original dataset * </pre> * * <code>optional string name = 2;</code> */ public Builder setNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000002; name_ = value; onChanged(); return this; } private java.lang.Object filepath_ = ""; /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public boolean hasFilepath() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public java.lang.String getFilepath() { java.lang.Object ref = filepath_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { filepath_ = s; } return s; } else { return (java.lang.String) ref; } } /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public com.google.protobuf.ByteString getFilepathBytes() { java.lang.Object ref = filepath_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); filepath_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public Builder setFilepath( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000004; filepath_ = value; onChanged(); return this; } /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public Builder clearFilepath() { bitField0_ = (bitField0_ & ~0x00000004); filepath_ = getDefaultInstance().getFilepath(); onChanged(); return this; } /** * <pre> * path to the image data used to generate these spot data * </pre> * * <code>optional string filepath = 3;</code> */ public Builder setFilepathBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000004; filepath_ = value; onChanged(); return this; } private long uid_ ; /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ public boolean hasUid() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ public long getUid() { return uid_; } /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ public Builder setUid(long value) { bitField0_ |= 0x00000008; uid_ = value; onChanged(); return this; } /** * <pre> * Unique ID, can be used by application to link to original data * </pre> * * <code>optional int64 uid = 4;</code> */ public Builder clearUid() { bitField0_ = (bitField0_ & ~0x00000008); uid_ = 0L; onChanged(); return this; } private int nrPixelsX_ ; /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ public boolean hasNrPixelsX() { return ((bitField0_ & 0x00000010) == 0x00000010); } /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ public int getNrPixelsX() { return nrPixelsX_; } /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ public Builder setNrPixelsX(int value) { bitField0_ |= 0x00000010; nrPixelsX_ = value; onChanged(); return this; } /** * <pre> * nr pixels in x of original data * </pre> * * <code>optional int32 nr_pixels_x = 5;</code> */ public Builder clearNrPixelsX() { bitField0_ = (bitField0_ & ~0x00000010); nrPixelsX_ = 0; onChanged(); return this; } private int nrPixelsY_ ; /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ public boolean hasNrPixelsY() { return ((bitField0_ & 0x00000020) == 0x00000020); } /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ public int getNrPixelsY() { return nrPixelsY_; } /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ public Builder setNrPixelsY(int value) { bitField0_ |= 0x00000020; nrPixelsY_ = value; onChanged(); return this; } /** * <pre> * nr pixels in y of original data * </pre> * * <code>optional int32 nr_pixels_y = 6;</code> */ public Builder clearNrPixelsY() { bitField0_ = (bitField0_ & ~0x00000020); nrPixelsY_ = 0; onChanged(); return this; } private float pixelSize_ ; /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ public boolean hasPixelSize() { return ((bitField0_ & 0x00000040) == 0x00000040); } /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ public float getPixelSize() { return pixelSize_; } /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ public Builder setPixelSize(float value) { bitField0_ |= 0x00000040; pixelSize_ = value; onChanged(); return this; } /** * <pre> * pixel size in nanometer * </pre> * * <code>optional float pixel_size = 7;</code> */ public Builder clearPixelSize() { bitField0_ = (bitField0_ & ~0x00000040); pixelSize_ = 0F; onChanged(); return this; } private long nrSpots_ ; /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ public boolean hasNrSpots() { return ((bitField0_ & 0x00000080) == 0x00000080); } /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ public long getNrSpots() { return nrSpots_; } /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ public Builder setNrSpots(long value) { bitField0_ |= 0x00000080; nrSpots_ = value; onChanged(); return this; } /** * <pre> * number of spots in this data set * </pre> * * <code>optional int64 nr_spots = 8;</code> */ public Builder clearNrSpots() { bitField0_ = (bitField0_ & ~0x00000080); nrSpots_ = 0L; onChanged(); return this; } private int boxSize_ ; /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ public boolean hasBoxSize() { return ((bitField0_ & 0x00000100) == 0x00000100); } /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ public int getBoxSize() { return boxSize_; } /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ public Builder setBoxSize(int value) { bitField0_ |= 0x00000100; boxSize_ = value; onChanged(); return this; } /** * <pre> * size (in pixels) of rectangular box used in Gaussian fitting * </pre> * * <code>optional int32 box_size = 17;</code> */ public Builder clearBoxSize() { bitField0_ = (bitField0_ & ~0x00000100); boxSize_ = 0; onChanged(); return this; } private int nrChannels_ ; /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ public boolean hasNrChannels() { return ((bitField0_ & 0x00000200) == 0x00000200); } /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ public int getNrChannels() { return nrChannels_; } /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ public Builder setNrChannels(int value) { bitField0_ |= 0x00000200; nrChannels_ = value; onChanged(); return this; } /** * <pre> * Nr of channels in the original data set * </pre> * * <code>optional int32 nr_channels = 18;</code> */ public Builder clearNrChannels() { bitField0_ = (bitField0_ & ~0x00000200); nrChannels_ = 0; onChanged(); return this; } private int nrFrames_ ; /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ public boolean hasNrFrames() { return ((bitField0_ & 0x00000400) == 0x00000400); } /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ public int getNrFrames() { return nrFrames_; } /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ public Builder setNrFrames(int value) { bitField0_ |= 0x00000400; nrFrames_ = value; onChanged(); return this; } /** * <pre> * Nr of frames in the original data set * </pre> * * <code>optional int32 nr_frames = 19;</code> */ public Builder clearNrFrames() { bitField0_ = (bitField0_ & ~0x00000400); nrFrames_ = 0; onChanged(); return this; } private int nrSlices_ ; /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ public boolean hasNrSlices() { return ((bitField0_ & 0x00000800) == 0x00000800); } /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ public int getNrSlices() { return nrSlices_; } /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ public Builder setNrSlices(int value) { bitField0_ |= 0x00000800; nrSlices_ = value; onChanged(); return this; } /** * <pre> * Nr of slices in the original data set * </pre> * * <code>optional int32 nr_slices = 20;</code> */ public Builder clearNrSlices() { bitField0_ = (bitField0_ & ~0x00000800); nrSlices_ = 0; onChanged(); return this; } private int nrPos_ ; /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ public boolean hasNrPos() { return ((bitField0_ & 0x00001000) == 0x00001000); } /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ public int getNrPos() { return nrPos_; } /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ public Builder setNrPos(int value) { bitField0_ |= 0x00001000; nrPos_ = value; onChanged(); return this; } /** * <pre> * Nr of positions in the original data set * </pre> * * <code>optional int32 nr_pos = 21;</code> */ public Builder clearNrPos() { bitField0_ = (bitField0_ & ~0x00001000); nrPos_ = 0; onChanged(); return this; } private java.util.List<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType> fluorophoreTypes_ = java.util.Collections.emptyList(); private void ensureFluorophoreTypesIsMutable() { if (!((bitField0_ & 0x00002000) == 0x00002000)) { fluorophoreTypes_ = new java.util.ArrayList<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType>(fluorophoreTypes_); bitField0_ |= 0x00002000; } } private com.google.protobuf.RepeatedFieldBuilderV3< gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder> fluorophoreTypesBuilder_; /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public java.util.List<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType> getFluorophoreTypesList() { if (fluorophoreTypesBuilder_ == null) { return java.util.Collections.unmodifiableList(fluorophoreTypes_); } else { return fluorophoreTypesBuilder_.getMessageList(); } } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public int getFluorophoreTypesCount() { if (fluorophoreTypesBuilder_ == null) { return fluorophoreTypes_.size(); } else { return fluorophoreTypesBuilder_.getCount(); } } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType getFluorophoreTypes(int index) { if (fluorophoreTypesBuilder_ == null) { return fluorophoreTypes_.get(index); } else { return fluorophoreTypesBuilder_.getMessage(index); } } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder setFluorophoreTypes( int index, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType value) { if (fluorophoreTypesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.set(index, value); onChanged(); } else { fluorophoreTypesBuilder_.setMessage(index, value); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder setFluorophoreTypes( int index, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder builderForValue) { if (fluorophoreTypesBuilder_ == null) { ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.set(index, builderForValue.build()); onChanged(); } else { fluorophoreTypesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder addFluorophoreTypes(gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType value) { if (fluorophoreTypesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.add(value); onChanged(); } else { fluorophoreTypesBuilder_.addMessage(value); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder addFluorophoreTypes( int index, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType value) { if (fluorophoreTypesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.add(index, value); onChanged(); } else { fluorophoreTypesBuilder_.addMessage(index, value); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder addFluorophoreTypes( gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder builderForValue) { if (fluorophoreTypesBuilder_ == null) { ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.add(builderForValue.build()); onChanged(); } else { fluorophoreTypesBuilder_.addMessage(builderForValue.build()); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder addFluorophoreTypes( int index, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder builderForValue) { if (fluorophoreTypesBuilder_ == null) { ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.add(index, builderForValue.build()); onChanged(); } else { fluorophoreTypesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder addAllFluorophoreTypes( java.lang.Iterable<? extends gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType> values) { if (fluorophoreTypesBuilder_ == null) { ensureFluorophoreTypesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, fluorophoreTypes_); onChanged(); } else { fluorophoreTypesBuilder_.addAllMessages(values); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder clearFluorophoreTypes() { if (fluorophoreTypesBuilder_ == null) { fluorophoreTypes_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00002000); onChanged(); } else { fluorophoreTypesBuilder_.clear(); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public Builder removeFluorophoreTypes(int index) { if (fluorophoreTypesBuilder_ == null) { ensureFluorophoreTypesIsMutable(); fluorophoreTypes_.remove(index); onChanged(); } else { fluorophoreTypesBuilder_.remove(index); } return this; } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder getFluorophoreTypesBuilder( int index) { return getFluorophoreTypesFieldBuilder().getBuilder(index); } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder getFluorophoreTypesOrBuilder( int index) { if (fluorophoreTypesBuilder_ == null) { return fluorophoreTypes_.get(index); } else { return fluorophoreTypesBuilder_.getMessageOrBuilder(index); } } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public java.util.List<? extends gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder> getFluorophoreTypesOrBuilderList() { if (fluorophoreTypesBuilder_ != null) { return fluorophoreTypesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(fluorophoreTypes_); } } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder addFluorophoreTypesBuilder() { return getFluorophoreTypesFieldBuilder().addBuilder( gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.getDefaultInstance()); } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder addFluorophoreTypesBuilder( int index) { return getFluorophoreTypesFieldBuilder().addBuilder( index, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.getDefaultInstance()); } /** * <pre> * Fluorophore type characterizations. If you use the fluorophore type field, * you must add a FluorophoreType message for each used id. * </pre> * * <code>repeated .TSF.FluorophoreType fluorophore_types = 26;</code> */ public java.util.List<gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder> getFluorophoreTypesBuilderList() { return getFluorophoreTypesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder> getFluorophoreTypesFieldBuilder() { if (fluorophoreTypesBuilder_ == null) { fluorophoreTypesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreType.Builder, gdsc.smlm.tsf.TaggedSpotFile.FluorophoreTypeOrBuilder>( fluorophoreTypes_, ((bitField0_ & 0x00002000) == 0x00002000), getParentForChildren(), isClean()); fluorophoreTypes_ = null; } return fluorophoreTypesBuilder_; } private int locationUnits_ = 0; /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ public boolean hasLocationUnits() { return ((bitField0_ & 0x00004000) == 0x00004000); } /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.LocationUnits getLocationUnits() { gdsc.smlm.tsf.TaggedSpotFile.LocationUnits result = gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.valueOf(locationUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.NM : result; } /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ public Builder setLocationUnits(gdsc.smlm.tsf.TaggedSpotFile.LocationUnits value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00004000; locationUnits_ = value.getNumber(); onChanged(); return this; } /** * <pre> * If units will always be the same for all spots, then use these units tags, * otherwise use the unit tags with each spot * </pre> * * <code>optional .TSF.LocationUnits location_units = 22;</code> */ public Builder clearLocationUnits() { bitField0_ = (bitField0_ & ~0x00004000); locationUnits_ = 0; onChanged(); return this; } private int intensityUnits_ = 0; /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ public boolean hasIntensityUnits() { return ((bitField0_ & 0x00008000) == 0x00008000); } /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits getIntensityUnits() { gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits result = gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.valueOf(intensityUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.COUNTS : result; } /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ public Builder setIntensityUnits(gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00008000; intensityUnits_ = value.getNumber(); onChanged(); return this; } /** * <code>optional .TSF.IntensityUnits intensity_units = 23;</code> */ public Builder clearIntensityUnits() { bitField0_ = (bitField0_ & ~0x00008000); intensityUnits_ = 0; onChanged(); return this; } private int thetaUnits_ = 0; /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ public boolean hasThetaUnits() { return ((bitField0_ & 0x00010000) == 0x00010000); } /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits getThetaUnits() { gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits result = gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits.valueOf(thetaUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits.DEGREES : result; } /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ public Builder setThetaUnits(gdsc.smlm.tsf.TaggedSpotFile.ThetaUnits value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00010000; thetaUnits_ = value.getNumber(); onChanged(); return this; } /** * <code>optional .TSF.ThetaUnits theta_units = 27;</code> */ public Builder clearThetaUnits() { bitField0_ = (bitField0_ & ~0x00010000); thetaUnits_ = 0; onChanged(); return this; } private int fitMode_ = 0; /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ public boolean hasFitMode() { return ((bitField0_ & 0x00020000) == 0x00020000); } /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.FitMode getFitMode() { gdsc.smlm.tsf.TaggedSpotFile.FitMode result = gdsc.smlm.tsf.TaggedSpotFile.FitMode.valueOf(fitMode_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.FitMode.ONEAXIS : result; } /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ public Builder setFitMode(gdsc.smlm.tsf.TaggedSpotFile.FitMode value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00020000; fitMode_ = value.getNumber(); onChanged(); return this; } /** * <pre> * If fitmode will always be the same for all spots, then use this fitmode * otherwise use the fitmode with each spot * </pre> * * <code>optional .TSF.FitMode fit_mode = 24;</code> */ public Builder clearFitMode() { bitField0_ = (bitField0_ & ~0x00020000); fitMode_ = 0; onChanged(); return this; } private boolean isTrack_ ; /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ public boolean hasIsTrack() { return ((bitField0_ & 0x00040000) == 0x00040000); } /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ public boolean getIsTrack() { return isTrack_; } /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ public Builder setIsTrack(boolean value) { bitField0_ |= 0x00040000; isTrack_ = value; onChanged(); return this; } /** * <pre> * flag indicating whether this is a sequence of spot data in consecutive * time frames thought to originate from the same entity * </pre> * * <code>optional bool is_track = 25 [default = false];</code> */ public Builder clearIsTrack() { bitField0_ = (bitField0_ & ~0x00040000); isTrack_ = false; onChanged(); return this; } private java.util.List<java.lang.Double> ecf_ = java.util.Collections.emptyList(); private void ensureEcfIsMutable() { if (!((bitField0_ & 0x00080000) == 0x00080000)) { ecf_ = new java.util.ArrayList<java.lang.Double>(ecf_); bitField0_ |= 0x00080000; } } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public java.util.List<java.lang.Double> getEcfList() { return java.util.Collections.unmodifiableList(ecf_); } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public int getEcfCount() { return ecf_.size(); } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public double getEcf(int index) { return ecf_.get(index); } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public Builder setEcf( int index, double value) { ensureEcfIsMutable(); ecf_.set(index, value); onChanged(); return this; } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public Builder addEcf(double value) { ensureEcfIsMutable(); ecf_.add(value); onChanged(); return this; } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public Builder addAllEcf( java.lang.Iterable<? extends java.lang.Double> values) { ensureEcfIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, ecf_); onChanged(); return this; } /** * <pre> * The electron conversion factor (camera gain), defined as * # of electrons per pixel / # of counts per pixel * The ecf can be different for different channels (which can * happen when separate cameras are used for separate channels), * therefore provide the ecf for each channel in the channel order * </pre> * * <code>repeated double ecf = 28;</code> */ public Builder clearEcf() { ecf_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00080000); onChanged(); return this; } private java.util.List<java.lang.Double> qe_ = java.util.Collections.emptyList(); private void ensureQeIsMutable() { if (!((bitField0_ & 0x00100000) == 0x00100000)) { qe_ = new java.util.ArrayList<java.lang.Double>(qe_); bitField0_ |= 0x00100000; } } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public java.util.List<java.lang.Double> getQeList() { return java.util.Collections.unmodifiableList(qe_); } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public int getQeCount() { return qe_.size(); } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public double getQe(int index) { return qe_.get(index); } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public Builder setQe( int index, double value) { ensureQeIsMutable(); qe_.set(index, value); onChanged(); return this; } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public Builder addQe(double value) { ensureQeIsMutable(); qe_.add(value); onChanged(); return this; } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public Builder addAllQe( java.lang.Iterable<? extends java.lang.Double> values) { ensureQeIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, qe_); onChanged(); return this; } /** * <pre> * The quantum efficiency can be used to calculate the number * of photons that hit the sensor, rather than the number of * electrons that were derived from them * Since this number is wavelength dependent, provide the QE * for each fluorophore type (in the fluorophore type order) * See the description of the field channel in the Spot message below * </pre> * * <code>repeated double qe = 30;</code> */ public Builder clearQe() { qe_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00100000); onChanged(); return this; } private gdsc.smlm.tsf.TaggedSpotFile.ROI roi_ = null; private com.google.protobuf.SingleFieldBuilderV3< gdsc.smlm.tsf.TaggedSpotFile.ROI, gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder, gdsc.smlm.tsf.TaggedSpotFile.ROIOrBuilder> roiBuilder_; /** * <code>optional .TSF.ROI roi = 29;</code> */ public boolean hasRoi() { return ((bitField0_ & 0x00200000) == 0x00200000); } /** * <code>optional .TSF.ROI roi = 29;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.ROI getRoi() { if (roiBuilder_ == null) { return roi_ == null ? gdsc.smlm.tsf.TaggedSpotFile.ROI.getDefaultInstance() : roi_; } else { return roiBuilder_.getMessage(); } } /** * <code>optional .TSF.ROI roi = 29;</code> */ public Builder setRoi(gdsc.smlm.tsf.TaggedSpotFile.ROI value) { if (roiBuilder_ == null) { if (value == null) { throw new NullPointerException(); } roi_ = value; onChanged(); } else { roiBuilder_.setMessage(value); } bitField0_ |= 0x00200000; return this; } /** * <code>optional .TSF.ROI roi = 29;</code> */ public Builder setRoi( gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder builderForValue) { if (roiBuilder_ == null) { roi_ = builderForValue.build(); onChanged(); } else { roiBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00200000; return this; } /** * <code>optional .TSF.ROI roi = 29;</code> */ public Builder mergeRoi(gdsc.smlm.tsf.TaggedSpotFile.ROI value) { if (roiBuilder_ == null) { if (((bitField0_ & 0x00200000) == 0x00200000) && roi_ != null && roi_ != gdsc.smlm.tsf.TaggedSpotFile.ROI.getDefaultInstance()) { roi_ = gdsc.smlm.tsf.TaggedSpotFile.ROI.newBuilder(roi_).mergeFrom(value).buildPartial(); } else { roi_ = value; } onChanged(); } else { roiBuilder_.mergeFrom(value); } bitField0_ |= 0x00200000; return this; } /** * <code>optional .TSF.ROI roi = 29;</code> */ public Builder clearRoi() { if (roiBuilder_ == null) { roi_ = null; onChanged(); } else { roiBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00200000); return this; } /** * <code>optional .TSF.ROI roi = 29;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder getRoiBuilder() { bitField0_ |= 0x00200000; onChanged(); return getRoiFieldBuilder().getBuilder(); } /** * <code>optional .TSF.ROI roi = 29;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.ROIOrBuilder getRoiOrBuilder() { if (roiBuilder_ != null) { return roiBuilder_.getMessageOrBuilder(); } else { return roi_ == null ? gdsc.smlm.tsf.TaggedSpotFile.ROI.getDefaultInstance() : roi_; } } /** * <code>optional .TSF.ROI roi = 29;</code> */ private com.google.protobuf.SingleFieldBuilderV3< gdsc.smlm.tsf.TaggedSpotFile.ROI, gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder, gdsc.smlm.tsf.TaggedSpotFile.ROIOrBuilder> getRoiFieldBuilder() { if (roiBuilder_ == null) { roiBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< gdsc.smlm.tsf.TaggedSpotFile.ROI, gdsc.smlm.tsf.TaggedSpotFile.ROI.Builder, gdsc.smlm.tsf.TaggedSpotFile.ROIOrBuilder>( getRoi(), getParentForChildren(), isClean()); roi_ = null; } return roiBuilder_; } private java.lang.Object source_ = ""; /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public boolean hasSource() { return ((bitField0_ & 0x00400000) == 0x00400000); } /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public java.lang.String getSource() { java.lang.Object ref = source_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { source_ = s; } return s; } else { return (java.lang.String) ref; } } /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public com.google.protobuf.ByteString getSourceBytes() { java.lang.Object ref = source_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); source_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public Builder setSource( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00400000; source_ = value; onChanged(); return this; } /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public Builder clearSource() { bitField0_ = (bitField0_ & ~0x00400000); source_ = getDefaultInstance().getSource(); onChanged(); return this; } /** * <pre> * Source of the results (can be a serialised * </pre> * * <code>optional string source = 1501;</code> */ public Builder setSourceBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00400000; source_ = value; onChanged(); return this; } private java.lang.Object configuration_ = ""; /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public boolean hasConfiguration() { return ((bitField0_ & 0x00800000) == 0x00800000); } /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public java.lang.String getConfiguration() { java.lang.Object ref = configuration_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (bs.isValidUtf8()) { configuration_ = s; } return s; } else { return (java.lang.String) ref; } } /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public com.google.protobuf.ByteString getConfigurationBytes() { java.lang.Object ref = configuration_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); configuration_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public Builder setConfiguration( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00800000; configuration_ = value; onChanged(); return this; } /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public Builder clearConfiguration() { bitField0_ = (bitField0_ & ~0x00800000); configuration_ = getDefaultInstance().getConfiguration(); onChanged(); return this; } /** * <pre> * Configuration used for fitting (can * </pre> * * <code>optional string configuration = 1502;</code> */ public Builder setConfigurationBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00800000; configuration_ = value; onChanged(); return this; } private double gain_ ; /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ public boolean hasGain() { return ((bitField0_ & 0x01000000) == 0x01000000); } /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ public double getGain() { return gain_; } /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ public Builder setGain(double value) { bitField0_ |= 0x01000000; gain_ = value; onChanged(); return this; } /** * <pre> * Calibration. This is for a single channel, i.e. camera. * The pixel pitch is expected in pixel_size. * </pre> * * <code>optional double gain = 1503;</code> */ public Builder clearGain() { bitField0_ = (bitField0_ & ~0x01000000); gain_ = 0D; onChanged(); return this; } private double exposureTime_ ; /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ public boolean hasExposureTime() { return ((bitField0_ & 0x02000000) == 0x02000000); } /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ public double getExposureTime() { return exposureTime_; } /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ public Builder setExposureTime(double value) { bitField0_ |= 0x02000000; exposureTime_ = value; onChanged(); return this; } /** * <pre> * (units=count/photon) * </pre> * * <code>optional double exposureTime = 1504;</code> */ public Builder clearExposureTime() { bitField0_ = (bitField0_ & ~0x02000000); exposureTime_ = 0D; onChanged(); return this; } private double readNoise_ ; /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ public boolean hasReadNoise() { return ((bitField0_ & 0x04000000) == 0x04000000); } /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ public double getReadNoise() { return readNoise_; } /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ public Builder setReadNoise(double value) { bitField0_ |= 0x04000000; readNoise_ = value; onChanged(); return this; } /** * <pre> * (units=millisecond) * </pre> * * <code>optional double readNoise = 1505;</code> */ public Builder clearReadNoise() { bitField0_ = (bitField0_ & ~0x04000000); readNoise_ = 0D; onChanged(); return this; } private double bias_ ; /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ public boolean hasBias() { return ((bitField0_ & 0x08000000) == 0x08000000); } /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ public double getBias() { return bias_; } /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ public Builder setBias(double value) { bitField0_ |= 0x08000000; bias_ = value; onChanged(); return this; } /** * <pre> * (units=count) * </pre> * * <code>optional double bias = 1506;</code> */ public Builder clearBias() { bitField0_ = (bitField0_ & ~0x08000000); bias_ = 0D; onChanged(); return this; } private boolean emCCD_ ; /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ public boolean hasEmCCD() { return ((bitField0_ & 0x10000000) == 0x10000000); } /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ public boolean getEmCCD() { return emCCD_; } /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ public Builder setEmCCD(boolean value) { bitField0_ |= 0x10000000; emCCD_ = value; onChanged(); return this; } /** * <pre> * Set to true if this was an EM-CCD camera * </pre> * * <code>optional bool emCCD = 1507;</code> */ public Builder clearEmCCD() { bitField0_ = (bitField0_ & ~0x10000000); emCCD_ = false; onChanged(); return this; } private double amplification_ ; /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ public boolean hasAmplification() { return ((bitField0_ & 0x20000000) == 0x20000000); } /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ public double getAmplification() { return amplification_; } /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ public Builder setAmplification(double value) { bitField0_ |= 0x20000000; amplification_ = value; onChanged(); return this; } /** * <pre> * The readout amplification applied * </pre> * * <code>optional double amplification = 1508;</code> */ public Builder clearAmplification() { bitField0_ = (bitField0_ & ~0x20000000); amplification_ = 0D; onChanged(); return this; } public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:TSF.SpotList) } // @@protoc_insertion_point(class_scope:TSF.SpotList) private static final gdsc.smlm.tsf.TaggedSpotFile.SpotList DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new gdsc.smlm.tsf.TaggedSpotFile.SpotList(); } public static gdsc.smlm.tsf.TaggedSpotFile.SpotList getDefaultInstance() { return DEFAULT_INSTANCE; } @java.lang.Deprecated public static final com.google.protobuf.Parser<SpotList> PARSER = new com.google.protobuf.AbstractParser<SpotList>() { public SpotList parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new SpotList(input, extensionRegistry); } }; public static com.google.protobuf.Parser<SpotList> parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser<SpotList> getParserForType() { return PARSER; } public gdsc.smlm.tsf.TaggedSpotFile.SpotList getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface SpotOrBuilder extends // @@protoc_insertion_point(interface_extends:TSF.Spot) com.google.protobuf.GeneratedMessageV3. ExtendableMessageOrBuilder<Spot> { /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ boolean hasMolecule(); /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ int getMolecule(); /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ boolean hasChannel(); /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ int getChannel(); /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ boolean hasFrame(); /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ int getFrame(); /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ boolean hasSlice(); /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ int getSlice(); /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ boolean hasPos(); /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ int getPos(); /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ boolean hasFluorophoreType(); /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ int getFluorophoreType(); /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ boolean hasCluster(); /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ int getCluster(); /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ boolean hasLocationUnits(); /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ gdsc.smlm.tsf.TaggedSpotFile.LocationUnits getLocationUnits(); /** * <code>required float x = 7;</code> */ boolean hasX(); /** * <code>required float x = 7;</code> */ float getX(); /** * <code>required float y = 8;</code> */ boolean hasY(); /** * <code>required float y = 8;</code> */ float getY(); /** * <code>optional float z = 9;</code> */ boolean hasZ(); /** * <code>optional float z = 9;</code> */ float getZ(); /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ boolean hasIntensityUnits(); /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits getIntensityUnits(); /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ boolean hasIntensity(); /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ float getIntensity(); /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ boolean hasBackground(); /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ float getBackground(); /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ boolean hasWidth(); /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ float getWidth(); /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ boolean hasA(); /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ float getA(); /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ boolean hasTheta(); /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ float getTheta(); /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ boolean hasXOriginal(); /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ float getXOriginal(); /** * <code>optional float y_original = 102;</code> */ boolean hasYOriginal(); /** * <code>optional float y_original = 102;</code> */ float getYOriginal(); /** * <code>optional float z_original = 103;</code> */ boolean hasZOriginal(); /** * <code>optional float z_original = 103;</code> */ float getZOriginal(); /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ boolean hasXPrecision(); /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ float getXPrecision(); /** * <code>optional float y_precision = 105;</code> */ boolean hasYPrecision(); /** * <code>optional float y_precision = 105;</code> */ float getYPrecision(); /** * <code>optional float z_precision = 106;</code> */ boolean hasZPrecision(); /** * <code>optional float z_precision = 106;</code> */ float getZPrecision(); /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ boolean hasXPosition(); /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ int getXPosition(); /** * <code>optional int32 y_position = 108;</code> */ boolean hasYPosition(); /** * <code>optional int32 y_position = 108;</code> */ int getYPosition(); /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ boolean hasError(); /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ double getError(); /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ boolean hasNoise(); /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ float getNoise(); /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ boolean hasEndFrame(); /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ int getEndFrame(); /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ boolean hasOriginalValue(); /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ float getOriginalValue(); /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ java.util.List<java.lang.Float> getParamsStdDevList(); /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ int getParamsStdDevCount(); /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ float getParamsStdDev(int index); } /** * Protobuf type {@code TSF.Spot} */ public static final class Spot extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage< Spot> implements // @@protoc_insertion_point(message_implements:TSF.Spot) SpotOrBuilder { // Use Spot.newBuilder() to construct. private Spot(com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<gdsc.smlm.tsf.TaggedSpotFile.Spot, ?> builder) { super(builder); } private Spot() { molecule_ = 0; channel_ = 0; frame_ = 0; slice_ = 0; pos_ = 0; fluorophoreType_ = 0; cluster_ = 0; locationUnits_ = 0; x_ = 0F; y_ = 0F; z_ = 0F; intensityUnits_ = 0; intensity_ = 0F; background_ = 0F; width_ = 0F; a_ = 0F; theta_ = 0F; xOriginal_ = 0F; yOriginal_ = 0F; zOriginal_ = 0F; xPrecision_ = 0F; yPrecision_ = 0F; zPrecision_ = 0F; xPosition_ = 0; yPosition_ = 0; error_ = 0D; noise_ = 0F; endFrame_ = 0; originalValue_ = 0F; paramsStdDev_ = java.util.Collections.emptyList(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private Spot( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { done = true; } break; } case 8: { bitField0_ |= 0x00000001; molecule_ = input.readInt32(); break; } case 16: { bitField0_ |= 0x00000002; channel_ = input.readInt32(); break; } case 24: { bitField0_ |= 0x00000004; frame_ = input.readInt32(); break; } case 32: { bitField0_ |= 0x00000008; slice_ = input.readInt32(); break; } case 40: { bitField0_ |= 0x00000010; pos_ = input.readInt32(); break; } case 61: { bitField0_ |= 0x00000100; x_ = input.readFloat(); break; } case 69: { bitField0_ |= 0x00000200; y_ = input.readFloat(); break; } case 77: { bitField0_ |= 0x00000400; z_ = input.readFloat(); break; } case 85: { bitField0_ |= 0x00001000; intensity_ = input.readFloat(); break; } case 93: { bitField0_ |= 0x00002000; background_ = input.readFloat(); break; } case 101: { bitField0_ |= 0x00004000; width_ = input.readFloat(); break; } case 109: { bitField0_ |= 0x00008000; a_ = input.readFloat(); break; } case 117: { bitField0_ |= 0x00010000; theta_ = input.readFloat(); break; } case 136: { int rawValue = input.readEnum(); gdsc.smlm.tsf.TaggedSpotFile.LocationUnits value = gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.valueOf(rawValue); if (value == null) { unknownFields.mergeVarintField(17, rawValue); } else { bitField0_ |= 0x00000080; locationUnits_ = rawValue; } break; } case 144: { int rawValue = input.readEnum(); gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits value = gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.valueOf(rawValue); if (value == null) { unknownFields.mergeVarintField(18, rawValue); } else { bitField0_ |= 0x00000800; intensityUnits_ = rawValue; } break; } case 152: { bitField0_ |= 0x00000020; fluorophoreType_ = input.readInt32(); break; } case 160: { bitField0_ |= 0x00000040; cluster_ = input.readInt32(); break; } case 813: { bitField0_ |= 0x00020000; xOriginal_ = input.readFloat(); break; } case 821: { bitField0_ |= 0x00040000; yOriginal_ = input.readFloat(); break; } case 829: { bitField0_ |= 0x00080000; zOriginal_ = input.readFloat(); break; } case 837: { bitField0_ |= 0x00100000; xPrecision_ = input.readFloat(); break; } case 845: { bitField0_ |= 0x00200000; yPrecision_ = input.readFloat(); break; } case 853: { bitField0_ |= 0x00400000; zPrecision_ = input.readFloat(); break; } case 856: { bitField0_ |= 0x00800000; xPosition_ = input.readInt32(); break; } case 864: { bitField0_ |= 0x01000000; yPosition_ = input.readInt32(); break; } case 12001: { bitField0_ |= 0x02000000; error_ = input.readDouble(); break; } case 12013: { bitField0_ |= 0x04000000; noise_ = input.readFloat(); break; } case 12024: { bitField0_ |= 0x08000000; endFrame_ = input.readInt32(); break; } case 12037: { bitField0_ |= 0x10000000; originalValue_ = input.readFloat(); break; } case 12045: { if (!((mutable_bitField0_ & 0x20000000) == 0x20000000)) { paramsStdDev_ = new java.util.ArrayList<java.lang.Float>(); mutable_bitField0_ |= 0x20000000; } paramsStdDev_.add(input.readFloat()); break; } case 12042: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); if (!((mutable_bitField0_ & 0x20000000) == 0x20000000) && input.getBytesUntilLimit() > 0) { paramsStdDev_ = new java.util.ArrayList<java.lang.Float>(); mutable_bitField0_ |= 0x20000000; } while (input.getBytesUntilLimit() > 0) { paramsStdDev_.add(input.readFloat()); } input.popLimit(limit); break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x20000000) == 0x20000000)) { paramsStdDev_ = java.util.Collections.unmodifiableList(paramsStdDev_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_Spot_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_Spot_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.Spot.class, gdsc.smlm.tsf.TaggedSpotFile.Spot.Builder.class); } private int bitField0_; public static final int MOLECULE_FIELD_NUMBER = 1; private int molecule_; /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ public boolean hasMolecule() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ public int getMolecule() { return molecule_; } public static final int CHANNEL_FIELD_NUMBER = 2; private int channel_; /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ public boolean hasChannel() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ public int getChannel() { return channel_; } public static final int FRAME_FIELD_NUMBER = 3; private int frame_; /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ public boolean hasFrame() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ public int getFrame() { return frame_; } public static final int SLICE_FIELD_NUMBER = 4; private int slice_; /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ public boolean hasSlice() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ public int getSlice() { return slice_; } public static final int POS_FIELD_NUMBER = 5; private int pos_; /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ public boolean hasPos() { return ((bitField0_ & 0x00000010) == 0x00000010); } /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ public int getPos() { return pos_; } public static final int FLUOROPHORE_TYPE_FIELD_NUMBER = 19; private int fluorophoreType_; /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ public boolean hasFluorophoreType() { return ((bitField0_ & 0x00000020) == 0x00000020); } /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ public int getFluorophoreType() { return fluorophoreType_; } public static final int CLUSTER_FIELD_NUMBER = 20; private int cluster_; /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ public boolean hasCluster() { return ((bitField0_ & 0x00000040) == 0x00000040); } /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ public int getCluster() { return cluster_; } public static final int LOCATION_UNITS_FIELD_NUMBER = 17; private int locationUnits_; /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ public boolean hasLocationUnits() { return ((bitField0_ & 0x00000080) == 0x00000080); } /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.LocationUnits getLocationUnits() { gdsc.smlm.tsf.TaggedSpotFile.LocationUnits result = gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.valueOf(locationUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.NM : result; } public static final int X_FIELD_NUMBER = 7; private float x_; /** * <code>required float x = 7;</code> */ public boolean hasX() { return ((bitField0_ & 0x00000100) == 0x00000100); } /** * <code>required float x = 7;</code> */ public float getX() { return x_; } public static final int Y_FIELD_NUMBER = 8; private float y_; /** * <code>required float y = 8;</code> */ public boolean hasY() { return ((bitField0_ & 0x00000200) == 0x00000200); } /** * <code>required float y = 8;</code> */ public float getY() { return y_; } public static final int Z_FIELD_NUMBER = 9; private float z_; /** * <code>optional float z = 9;</code> */ public boolean hasZ() { return ((bitField0_ & 0x00000400) == 0x00000400); } /** * <code>optional float z = 9;</code> */ public float getZ() { return z_; } public static final int INTENSITY_UNITS_FIELD_NUMBER = 18; private int intensityUnits_; /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ public boolean hasIntensityUnits() { return ((bitField0_ & 0x00000800) == 0x00000800); } /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits getIntensityUnits() { gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits result = gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.valueOf(intensityUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.COUNTS : result; } public static final int INTENSITY_FIELD_NUMBER = 10; private float intensity_; /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ public boolean hasIntensity() { return ((bitField0_ & 0x00001000) == 0x00001000); } /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ public float getIntensity() { return intensity_; } public static final int BACKGROUND_FIELD_NUMBER = 11; private float background_; /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ public boolean hasBackground() { return ((bitField0_ & 0x00002000) == 0x00002000); } /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ public float getBackground() { return background_; } public static final int WIDTH_FIELD_NUMBER = 12; private float width_; /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ public boolean hasWidth() { return ((bitField0_ & 0x00004000) == 0x00004000); } /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ public float getWidth() { return width_; } public static final int A_FIELD_NUMBER = 13; private float a_; /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ public boolean hasA() { return ((bitField0_ & 0x00008000) == 0x00008000); } /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ public float getA() { return a_; } public static final int THETA_FIELD_NUMBER = 14; private float theta_; /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ public boolean hasTheta() { return ((bitField0_ & 0x00010000) == 0x00010000); } /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ public float getTheta() { return theta_; } public static final int X_ORIGINAL_FIELD_NUMBER = 101; private float xOriginal_; /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ public boolean hasXOriginal() { return ((bitField0_ & 0x00020000) == 0x00020000); } /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ public float getXOriginal() { return xOriginal_; } public static final int Y_ORIGINAL_FIELD_NUMBER = 102; private float yOriginal_; /** * <code>optional float y_original = 102;</code> */ public boolean hasYOriginal() { return ((bitField0_ & 0x00040000) == 0x00040000); } /** * <code>optional float y_original = 102;</code> */ public float getYOriginal() { return yOriginal_; } public static final int Z_ORIGINAL_FIELD_NUMBER = 103; private float zOriginal_; /** * <code>optional float z_original = 103;</code> */ public boolean hasZOriginal() { return ((bitField0_ & 0x00080000) == 0x00080000); } /** * <code>optional float z_original = 103;</code> */ public float getZOriginal() { return zOriginal_; } public static final int X_PRECISION_FIELD_NUMBER = 104; private float xPrecision_; /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ public boolean hasXPrecision() { return ((bitField0_ & 0x00100000) == 0x00100000); } /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ public float getXPrecision() { return xPrecision_; } public static final int Y_PRECISION_FIELD_NUMBER = 105; private float yPrecision_; /** * <code>optional float y_precision = 105;</code> */ public boolean hasYPrecision() { return ((bitField0_ & 0x00200000) == 0x00200000); } /** * <code>optional float y_precision = 105;</code> */ public float getYPrecision() { return yPrecision_; } public static final int Z_PRECISION_FIELD_NUMBER = 106; private float zPrecision_; /** * <code>optional float z_precision = 106;</code> */ public boolean hasZPrecision() { return ((bitField0_ & 0x00400000) == 0x00400000); } /** * <code>optional float z_precision = 106;</code> */ public float getZPrecision() { return zPrecision_; } public static final int X_POSITION_FIELD_NUMBER = 107; private int xPosition_; /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ public boolean hasXPosition() { return ((bitField0_ & 0x00800000) == 0x00800000); } /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ public int getXPosition() { return xPosition_; } public static final int Y_POSITION_FIELD_NUMBER = 108; private int yPosition_; /** * <code>optional int32 y_position = 108;</code> */ public boolean hasYPosition() { return ((bitField0_ & 0x01000000) == 0x01000000); } /** * <code>optional int32 y_position = 108;</code> */ public int getYPosition() { return yPosition_; } public static final int ERROR_FIELD_NUMBER = 1500; private double error_; /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ public boolean hasError() { return ((bitField0_ & 0x02000000) == 0x02000000); } /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ public double getError() { return error_; } public static final int NOISE_FIELD_NUMBER = 1501; private float noise_; /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ public boolean hasNoise() { return ((bitField0_ & 0x04000000) == 0x04000000); } /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ public float getNoise() { return noise_; } public static final int END_FRAME_FIELD_NUMBER = 1503; private int endFrame_; /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ public boolean hasEndFrame() { return ((bitField0_ & 0x08000000) == 0x08000000); } /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ public int getEndFrame() { return endFrame_; } public static final int ORIGINAL_VALUE_FIELD_NUMBER = 1504; private float originalValue_; /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ public boolean hasOriginalValue() { return ((bitField0_ & 0x10000000) == 0x10000000); } /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ public float getOriginalValue() { return originalValue_; } public static final int PARAMS_STD_DEV_FIELD_NUMBER = 1505; private java.util.List<java.lang.Float> paramsStdDev_; /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public java.util.List<java.lang.Float> getParamsStdDevList() { return paramsStdDev_; } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public int getParamsStdDevCount() { return paramsStdDev_.size(); } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public float getParamsStdDev(int index) { return paramsStdDev_.get(index); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; if (!hasMolecule()) { memoizedIsInitialized = 0; return false; } if (!hasChannel()) { memoizedIsInitialized = 0; return false; } if (!hasFrame()) { memoizedIsInitialized = 0; return false; } if (!hasX()) { memoizedIsInitialized = 0; return false; } if (!hasY()) { memoizedIsInitialized = 0; return false; } if (!hasIntensity()) { memoizedIsInitialized = 0; return false; } if (!extensionsAreInitialized()) { memoizedIsInitialized = 0; return false; } memoizedIsInitialized = 1; return true; } public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { com.google.protobuf.GeneratedMessageV3 .ExtendableMessage<gdsc.smlm.tsf.TaggedSpotFile.Spot>.ExtensionWriter extensionWriter = newExtensionWriter(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeInt32(1, molecule_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeInt32(2, channel_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeInt32(3, frame_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeInt32(4, slice_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeInt32(5, pos_); } if (((bitField0_ & 0x00000100) == 0x00000100)) { output.writeFloat(7, x_); } if (((bitField0_ & 0x00000200) == 0x00000200)) { output.writeFloat(8, y_); } if (((bitField0_ & 0x00000400) == 0x00000400)) { output.writeFloat(9, z_); } if (((bitField0_ & 0x00001000) == 0x00001000)) { output.writeFloat(10, intensity_); } if (((bitField0_ & 0x00002000) == 0x00002000)) { output.writeFloat(11, background_); } if (((bitField0_ & 0x00004000) == 0x00004000)) { output.writeFloat(12, width_); } if (((bitField0_ & 0x00008000) == 0x00008000)) { output.writeFloat(13, a_); } if (((bitField0_ & 0x00010000) == 0x00010000)) { output.writeFloat(14, theta_); } if (((bitField0_ & 0x00000080) == 0x00000080)) { output.writeEnum(17, locationUnits_); } if (((bitField0_ & 0x00000800) == 0x00000800)) { output.writeEnum(18, intensityUnits_); } if (((bitField0_ & 0x00000020) == 0x00000020)) { output.writeInt32(19, fluorophoreType_); } if (((bitField0_ & 0x00000040) == 0x00000040)) { output.writeInt32(20, cluster_); } if (((bitField0_ & 0x00020000) == 0x00020000)) { output.writeFloat(101, xOriginal_); } if (((bitField0_ & 0x00040000) == 0x00040000)) { output.writeFloat(102, yOriginal_); } if (((bitField0_ & 0x00080000) == 0x00080000)) { output.writeFloat(103, zOriginal_); } if (((bitField0_ & 0x00100000) == 0x00100000)) { output.writeFloat(104, xPrecision_); } if (((bitField0_ & 0x00200000) == 0x00200000)) { output.writeFloat(105, yPrecision_); } if (((bitField0_ & 0x00400000) == 0x00400000)) { output.writeFloat(106, zPrecision_); } if (((bitField0_ & 0x00800000) == 0x00800000)) { output.writeInt32(107, xPosition_); } if (((bitField0_ & 0x01000000) == 0x01000000)) { output.writeInt32(108, yPosition_); } if (((bitField0_ & 0x02000000) == 0x02000000)) { output.writeDouble(1500, error_); } if (((bitField0_ & 0x04000000) == 0x04000000)) { output.writeFloat(1501, noise_); } if (((bitField0_ & 0x08000000) == 0x08000000)) { output.writeInt32(1503, endFrame_); } if (((bitField0_ & 0x10000000) == 0x10000000)) { output.writeFloat(1504, originalValue_); } for (int i = 0; i < paramsStdDev_.size(); i++) { output.writeFloat(1505, paramsStdDev_.get(i)); } extensionWriter.writeUntil(2048, output); unknownFields.writeTo(output); } public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(1, molecule_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(2, channel_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(3, frame_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(4, slice_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(5, pos_); } if (((bitField0_ & 0x00000100) == 0x00000100)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(7, x_); } if (((bitField0_ & 0x00000200) == 0x00000200)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(8, y_); } if (((bitField0_ & 0x00000400) == 0x00000400)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(9, z_); } if (((bitField0_ & 0x00001000) == 0x00001000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(10, intensity_); } if (((bitField0_ & 0x00002000) == 0x00002000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(11, background_); } if (((bitField0_ & 0x00004000) == 0x00004000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(12, width_); } if (((bitField0_ & 0x00008000) == 0x00008000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(13, a_); } if (((bitField0_ & 0x00010000) == 0x00010000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(14, theta_); } if (((bitField0_ & 0x00000080) == 0x00000080)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(17, locationUnits_); } if (((bitField0_ & 0x00000800) == 0x00000800)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(18, intensityUnits_); } if (((bitField0_ & 0x00000020) == 0x00000020)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(19, fluorophoreType_); } if (((bitField0_ & 0x00000040) == 0x00000040)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(20, cluster_); } if (((bitField0_ & 0x00020000) == 0x00020000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(101, xOriginal_); } if (((bitField0_ & 0x00040000) == 0x00040000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(102, yOriginal_); } if (((bitField0_ & 0x00080000) == 0x00080000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(103, zOriginal_); } if (((bitField0_ & 0x00100000) == 0x00100000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(104, xPrecision_); } if (((bitField0_ & 0x00200000) == 0x00200000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(105, yPrecision_); } if (((bitField0_ & 0x00400000) == 0x00400000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(106, zPrecision_); } if (((bitField0_ & 0x00800000) == 0x00800000)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(107, xPosition_); } if (((bitField0_ & 0x01000000) == 0x01000000)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(108, yPosition_); } if (((bitField0_ & 0x02000000) == 0x02000000)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1500, error_); } if (((bitField0_ & 0x04000000) == 0x04000000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(1501, noise_); } if (((bitField0_ & 0x08000000) == 0x08000000)) { size += com.google.protobuf.CodedOutputStream .computeInt32Size(1503, endFrame_); } if (((bitField0_ & 0x10000000) == 0x10000000)) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(1504, originalValue_); } { int dataSize = 0; dataSize = 4 * getParamsStdDevList().size(); size += dataSize; size += 2 * getParamsStdDevList().size(); } size += extensionsSerializedSize(); size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } private static final long serialVersionUID = 0L; @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof gdsc.smlm.tsf.TaggedSpotFile.Spot)) { return super.equals(obj); } gdsc.smlm.tsf.TaggedSpotFile.Spot other = (gdsc.smlm.tsf.TaggedSpotFile.Spot) obj; boolean result = true; result = result && (hasMolecule() == other.hasMolecule()); if (hasMolecule()) { result = result && (getMolecule() == other.getMolecule()); } result = result && (hasChannel() == other.hasChannel()); if (hasChannel()) { result = result && (getChannel() == other.getChannel()); } result = result && (hasFrame() == other.hasFrame()); if (hasFrame()) { result = result && (getFrame() == other.getFrame()); } result = result && (hasSlice() == other.hasSlice()); if (hasSlice()) { result = result && (getSlice() == other.getSlice()); } result = result && (hasPos() == other.hasPos()); if (hasPos()) { result = result && (getPos() == other.getPos()); } result = result && (hasFluorophoreType() == other.hasFluorophoreType()); if (hasFluorophoreType()) { result = result && (getFluorophoreType() == other.getFluorophoreType()); } result = result && (hasCluster() == other.hasCluster()); if (hasCluster()) { result = result && (getCluster() == other.getCluster()); } result = result && (hasLocationUnits() == other.hasLocationUnits()); if (hasLocationUnits()) { result = result && locationUnits_ == other.locationUnits_; } result = result && (hasX() == other.hasX()); if (hasX()) { result = result && ( java.lang.Float.floatToIntBits(getX()) == java.lang.Float.floatToIntBits( other.getX())); } result = result && (hasY() == other.hasY()); if (hasY()) { result = result && ( java.lang.Float.floatToIntBits(getY()) == java.lang.Float.floatToIntBits( other.getY())); } result = result && (hasZ() == other.hasZ()); if (hasZ()) { result = result && ( java.lang.Float.floatToIntBits(getZ()) == java.lang.Float.floatToIntBits( other.getZ())); } result = result && (hasIntensityUnits() == other.hasIntensityUnits()); if (hasIntensityUnits()) { result = result && intensityUnits_ == other.intensityUnits_; } result = result && (hasIntensity() == other.hasIntensity()); if (hasIntensity()) { result = result && ( java.lang.Float.floatToIntBits(getIntensity()) == java.lang.Float.floatToIntBits( other.getIntensity())); } result = result && (hasBackground() == other.hasBackground()); if (hasBackground()) { result = result && ( java.lang.Float.floatToIntBits(getBackground()) == java.lang.Float.floatToIntBits( other.getBackground())); } result = result && (hasWidth() == other.hasWidth()); if (hasWidth()) { result = result && ( java.lang.Float.floatToIntBits(getWidth()) == java.lang.Float.floatToIntBits( other.getWidth())); } result = result && (hasA() == other.hasA()); if (hasA()) { result = result && ( java.lang.Float.floatToIntBits(getA()) == java.lang.Float.floatToIntBits( other.getA())); } result = result && (hasTheta() == other.hasTheta()); if (hasTheta()) { result = result && ( java.lang.Float.floatToIntBits(getTheta()) == java.lang.Float.floatToIntBits( other.getTheta())); } result = result && (hasXOriginal() == other.hasXOriginal()); if (hasXOriginal()) { result = result && ( java.lang.Float.floatToIntBits(getXOriginal()) == java.lang.Float.floatToIntBits( other.getXOriginal())); } result = result && (hasYOriginal() == other.hasYOriginal()); if (hasYOriginal()) { result = result && ( java.lang.Float.floatToIntBits(getYOriginal()) == java.lang.Float.floatToIntBits( other.getYOriginal())); } result = result && (hasZOriginal() == other.hasZOriginal()); if (hasZOriginal()) { result = result && ( java.lang.Float.floatToIntBits(getZOriginal()) == java.lang.Float.floatToIntBits( other.getZOriginal())); } result = result && (hasXPrecision() == other.hasXPrecision()); if (hasXPrecision()) { result = result && ( java.lang.Float.floatToIntBits(getXPrecision()) == java.lang.Float.floatToIntBits( other.getXPrecision())); } result = result && (hasYPrecision() == other.hasYPrecision()); if (hasYPrecision()) { result = result && ( java.lang.Float.floatToIntBits(getYPrecision()) == java.lang.Float.floatToIntBits( other.getYPrecision())); } result = result && (hasZPrecision() == other.hasZPrecision()); if (hasZPrecision()) { result = result && ( java.lang.Float.floatToIntBits(getZPrecision()) == java.lang.Float.floatToIntBits( other.getZPrecision())); } result = result && (hasXPosition() == other.hasXPosition()); if (hasXPosition()) { result = result && (getXPosition() == other.getXPosition()); } result = result && (hasYPosition() == other.hasYPosition()); if (hasYPosition()) { result = result && (getYPosition() == other.getYPosition()); } result = result && (hasError() == other.hasError()); if (hasError()) { result = result && ( java.lang.Double.doubleToLongBits(getError()) == java.lang.Double.doubleToLongBits( other.getError())); } result = result && (hasNoise() == other.hasNoise()); if (hasNoise()) { result = result && ( java.lang.Float.floatToIntBits(getNoise()) == java.lang.Float.floatToIntBits( other.getNoise())); } result = result && (hasEndFrame() == other.hasEndFrame()); if (hasEndFrame()) { result = result && (getEndFrame() == other.getEndFrame()); } result = result && (hasOriginalValue() == other.hasOriginalValue()); if (hasOriginalValue()) { result = result && ( java.lang.Float.floatToIntBits(getOriginalValue()) == java.lang.Float.floatToIntBits( other.getOriginalValue())); } result = result && getParamsStdDevList() .equals(other.getParamsStdDevList()); result = result && unknownFields.equals(other.unknownFields); result = result && getExtensionFields().equals(other.getExtensionFields()); return result; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptorForType().hashCode(); if (hasMolecule()) { hash = (37 * hash) + MOLECULE_FIELD_NUMBER; hash = (53 * hash) + getMolecule(); } if (hasChannel()) { hash = (37 * hash) + CHANNEL_FIELD_NUMBER; hash = (53 * hash) + getChannel(); } if (hasFrame()) { hash = (37 * hash) + FRAME_FIELD_NUMBER; hash = (53 * hash) + getFrame(); } if (hasSlice()) { hash = (37 * hash) + SLICE_FIELD_NUMBER; hash = (53 * hash) + getSlice(); } if (hasPos()) { hash = (37 * hash) + POS_FIELD_NUMBER; hash = (53 * hash) + getPos(); } if (hasFluorophoreType()) { hash = (37 * hash) + FLUOROPHORE_TYPE_FIELD_NUMBER; hash = (53 * hash) + getFluorophoreType(); } if (hasCluster()) { hash = (37 * hash) + CLUSTER_FIELD_NUMBER; hash = (53 * hash) + getCluster(); } if (hasLocationUnits()) { hash = (37 * hash) + LOCATION_UNITS_FIELD_NUMBER; hash = (53 * hash) + locationUnits_; } if (hasX()) { hash = (37 * hash) + X_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getX()); } if (hasY()) { hash = (37 * hash) + Y_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getY()); } if (hasZ()) { hash = (37 * hash) + Z_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getZ()); } if (hasIntensityUnits()) { hash = (37 * hash) + INTENSITY_UNITS_FIELD_NUMBER; hash = (53 * hash) + intensityUnits_; } if (hasIntensity()) { hash = (37 * hash) + INTENSITY_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getIntensity()); } if (hasBackground()) { hash = (37 * hash) + BACKGROUND_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getBackground()); } if (hasWidth()) { hash = (37 * hash) + WIDTH_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getWidth()); } if (hasA()) { hash = (37 * hash) + A_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getA()); } if (hasTheta()) { hash = (37 * hash) + THETA_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getTheta()); } if (hasXOriginal()) { hash = (37 * hash) + X_ORIGINAL_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getXOriginal()); } if (hasYOriginal()) { hash = (37 * hash) + Y_ORIGINAL_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getYOriginal()); } if (hasZOriginal()) { hash = (37 * hash) + Z_ORIGINAL_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getZOriginal()); } if (hasXPrecision()) { hash = (37 * hash) + X_PRECISION_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getXPrecision()); } if (hasYPrecision()) { hash = (37 * hash) + Y_PRECISION_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getYPrecision()); } if (hasZPrecision()) { hash = (37 * hash) + Z_PRECISION_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getZPrecision()); } if (hasXPosition()) { hash = (37 * hash) + X_POSITION_FIELD_NUMBER; hash = (53 * hash) + getXPosition(); } if (hasYPosition()) { hash = (37 * hash) + Y_POSITION_FIELD_NUMBER; hash = (53 * hash) + getYPosition(); } if (hasError()) { hash = (37 * hash) + ERROR_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getError())); } if (hasNoise()) { hash = (37 * hash) + NOISE_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getNoise()); } if (hasEndFrame()) { hash = (37 * hash) + END_FRAME_FIELD_NUMBER; hash = (53 * hash) + getEndFrame(); } if (hasOriginalValue()) { hash = (37 * hash) + ORIGINAL_VALUE_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getOriginalValue()); } if (getParamsStdDevCount() > 0) { hash = (37 * hash) + PARAMS_STD_DEV_FIELD_NUMBER; hash = (53 * hash) + getParamsStdDevList().hashCode(); } hash = hashFields(hash, getExtensionFields()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(gdsc.smlm.tsf.TaggedSpotFile.Spot prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code TSF.Spot} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder< gdsc.smlm.tsf.TaggedSpotFile.Spot, Builder> implements // @@protoc_insertion_point(builder_implements:TSF.Spot) gdsc.smlm.tsf.TaggedSpotFile.SpotOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_Spot_descriptor; } protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_Spot_fieldAccessorTable .ensureFieldAccessorsInitialized( gdsc.smlm.tsf.TaggedSpotFile.Spot.class, gdsc.smlm.tsf.TaggedSpotFile.Spot.Builder.class); } // Construct using gdsc.smlm.tsf.TaggedSpotFile.Spot.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { } } public Builder clear() { super.clear(); molecule_ = 0; bitField0_ = (bitField0_ & ~0x00000001); channel_ = 0; bitField0_ = (bitField0_ & ~0x00000002); frame_ = 0; bitField0_ = (bitField0_ & ~0x00000004); slice_ = 0; bitField0_ = (bitField0_ & ~0x00000008); pos_ = 0; bitField0_ = (bitField0_ & ~0x00000010); fluorophoreType_ = 0; bitField0_ = (bitField0_ & ~0x00000020); cluster_ = 0; bitField0_ = (bitField0_ & ~0x00000040); locationUnits_ = 0; bitField0_ = (bitField0_ & ~0x00000080); x_ = 0F; bitField0_ = (bitField0_ & ~0x00000100); y_ = 0F; bitField0_ = (bitField0_ & ~0x00000200); z_ = 0F; bitField0_ = (bitField0_ & ~0x00000400); intensityUnits_ = 0; bitField0_ = (bitField0_ & ~0x00000800); intensity_ = 0F; bitField0_ = (bitField0_ & ~0x00001000); background_ = 0F; bitField0_ = (bitField0_ & ~0x00002000); width_ = 0F; bitField0_ = (bitField0_ & ~0x00004000); a_ = 0F; bitField0_ = (bitField0_ & ~0x00008000); theta_ = 0F; bitField0_ = (bitField0_ & ~0x00010000); xOriginal_ = 0F; bitField0_ = (bitField0_ & ~0x00020000); yOriginal_ = 0F; bitField0_ = (bitField0_ & ~0x00040000); zOriginal_ = 0F; bitField0_ = (bitField0_ & ~0x00080000); xPrecision_ = 0F; bitField0_ = (bitField0_ & ~0x00100000); yPrecision_ = 0F; bitField0_ = (bitField0_ & ~0x00200000); zPrecision_ = 0F; bitField0_ = (bitField0_ & ~0x00400000); xPosition_ = 0; bitField0_ = (bitField0_ & ~0x00800000); yPosition_ = 0; bitField0_ = (bitField0_ & ~0x01000000); error_ = 0D; bitField0_ = (bitField0_ & ~0x02000000); noise_ = 0F; bitField0_ = (bitField0_ & ~0x04000000); endFrame_ = 0; bitField0_ = (bitField0_ & ~0x08000000); originalValue_ = 0F; bitField0_ = (bitField0_ & ~0x10000000); paramsStdDev_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x20000000); return this; } public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return gdsc.smlm.tsf.TaggedSpotFile.internal_static_TSF_Spot_descriptor; } public gdsc.smlm.tsf.TaggedSpotFile.Spot getDefaultInstanceForType() { return gdsc.smlm.tsf.TaggedSpotFile.Spot.getDefaultInstance(); } public gdsc.smlm.tsf.TaggedSpotFile.Spot build() { gdsc.smlm.tsf.TaggedSpotFile.Spot result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } public gdsc.smlm.tsf.TaggedSpotFile.Spot buildPartial() { gdsc.smlm.tsf.TaggedSpotFile.Spot result = new gdsc.smlm.tsf.TaggedSpotFile.Spot(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.molecule_ = molecule_; if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } result.channel_ = channel_; if (((from_bitField0_ & 0x00000004) == 0x00000004)) { to_bitField0_ |= 0x00000004; } result.frame_ = frame_; if (((from_bitField0_ & 0x00000008) == 0x00000008)) { to_bitField0_ |= 0x00000008; } result.slice_ = slice_; if (((from_bitField0_ & 0x00000010) == 0x00000010)) { to_bitField0_ |= 0x00000010; } result.pos_ = pos_; if (((from_bitField0_ & 0x00000020) == 0x00000020)) { to_bitField0_ |= 0x00000020; } result.fluorophoreType_ = fluorophoreType_; if (((from_bitField0_ & 0x00000040) == 0x00000040)) { to_bitField0_ |= 0x00000040; } result.cluster_ = cluster_; if (((from_bitField0_ & 0x00000080) == 0x00000080)) { to_bitField0_ |= 0x00000080; } result.locationUnits_ = locationUnits_; if (((from_bitField0_ & 0x00000100) == 0x00000100)) { to_bitField0_ |= 0x00000100; } result.x_ = x_; if (((from_bitField0_ & 0x00000200) == 0x00000200)) { to_bitField0_ |= 0x00000200; } result.y_ = y_; if (((from_bitField0_ & 0x00000400) == 0x00000400)) { to_bitField0_ |= 0x00000400; } result.z_ = z_; if (((from_bitField0_ & 0x00000800) == 0x00000800)) { to_bitField0_ |= 0x00000800; } result.intensityUnits_ = intensityUnits_; if (((from_bitField0_ & 0x00001000) == 0x00001000)) { to_bitField0_ |= 0x00001000; } result.intensity_ = intensity_; if (((from_bitField0_ & 0x00002000) == 0x00002000)) { to_bitField0_ |= 0x00002000; } result.background_ = background_; if (((from_bitField0_ & 0x00004000) == 0x00004000)) { to_bitField0_ |= 0x00004000; } result.width_ = width_; if (((from_bitField0_ & 0x00008000) == 0x00008000)) { to_bitField0_ |= 0x00008000; } result.a_ = a_; if (((from_bitField0_ & 0x00010000) == 0x00010000)) { to_bitField0_ |= 0x00010000; } result.theta_ = theta_; if (((from_bitField0_ & 0x00020000) == 0x00020000)) { to_bitField0_ |= 0x00020000; } result.xOriginal_ = xOriginal_; if (((from_bitField0_ & 0x00040000) == 0x00040000)) { to_bitField0_ |= 0x00040000; } result.yOriginal_ = yOriginal_; if (((from_bitField0_ & 0x00080000) == 0x00080000)) { to_bitField0_ |= 0x00080000; } result.zOriginal_ = zOriginal_; if (((from_bitField0_ & 0x00100000) == 0x00100000)) { to_bitField0_ |= 0x00100000; } result.xPrecision_ = xPrecision_; if (((from_bitField0_ & 0x00200000) == 0x00200000)) { to_bitField0_ |= 0x00200000; } result.yPrecision_ = yPrecision_; if (((from_bitField0_ & 0x00400000) == 0x00400000)) { to_bitField0_ |= 0x00400000; } result.zPrecision_ = zPrecision_; if (((from_bitField0_ & 0x00800000) == 0x00800000)) { to_bitField0_ |= 0x00800000; } result.xPosition_ = xPosition_; if (((from_bitField0_ & 0x01000000) == 0x01000000)) { to_bitField0_ |= 0x01000000; } result.yPosition_ = yPosition_; if (((from_bitField0_ & 0x02000000) == 0x02000000)) { to_bitField0_ |= 0x02000000; } result.error_ = error_; if (((from_bitField0_ & 0x04000000) == 0x04000000)) { to_bitField0_ |= 0x04000000; } result.noise_ = noise_; if (((from_bitField0_ & 0x08000000) == 0x08000000)) { to_bitField0_ |= 0x08000000; } result.endFrame_ = endFrame_; if (((from_bitField0_ & 0x10000000) == 0x10000000)) { to_bitField0_ |= 0x10000000; } result.originalValue_ = originalValue_; if (((bitField0_ & 0x20000000) == 0x20000000)) { paramsStdDev_ = java.util.Collections.unmodifiableList(paramsStdDev_); bitField0_ = (bitField0_ & ~0x20000000); } result.paramsStdDev_ = paramsStdDev_; result.bitField0_ = to_bitField0_; onBuilt(); return result; } public Builder clone() { return (Builder) super.clone(); } public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.setField(field, value); } public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value) { return (Builder) super.setRepeatedField(field, index, value); } public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, Object value) { return (Builder) super.addRepeatedField(field, value); } public <Type> Builder setExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.Spot, Type> extension, Type value) { return (Builder) super.setExtension(extension, value); } public <Type> Builder setExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.Spot, java.util.List<Type>> extension, int index, Type value) { return (Builder) super.setExtension(extension, index, value); } public <Type> Builder addExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.Spot, java.util.List<Type>> extension, Type value) { return (Builder) super.addExtension(extension, value); } public <Type> Builder clearExtension( com.google.protobuf.GeneratedMessage.GeneratedExtension< gdsc.smlm.tsf.TaggedSpotFile.Spot, ?> extension) { return (Builder) super.clearExtension(extension); } public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof gdsc.smlm.tsf.TaggedSpotFile.Spot) { return mergeFrom((gdsc.smlm.tsf.TaggedSpotFile.Spot)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(gdsc.smlm.tsf.TaggedSpotFile.Spot other) { if (other == gdsc.smlm.tsf.TaggedSpotFile.Spot.getDefaultInstance()) return this; if (other.hasMolecule()) { setMolecule(other.getMolecule()); } if (other.hasChannel()) { setChannel(other.getChannel()); } if (other.hasFrame()) { setFrame(other.getFrame()); } if (other.hasSlice()) { setSlice(other.getSlice()); } if (other.hasPos()) { setPos(other.getPos()); } if (other.hasFluorophoreType()) { setFluorophoreType(other.getFluorophoreType()); } if (other.hasCluster()) { setCluster(other.getCluster()); } if (other.hasLocationUnits()) { setLocationUnits(other.getLocationUnits()); } if (other.hasX()) { setX(other.getX()); } if (other.hasY()) { setY(other.getY()); } if (other.hasZ()) { setZ(other.getZ()); } if (other.hasIntensityUnits()) { setIntensityUnits(other.getIntensityUnits()); } if (other.hasIntensity()) { setIntensity(other.getIntensity()); } if (other.hasBackground()) { setBackground(other.getBackground()); } if (other.hasWidth()) { setWidth(other.getWidth()); } if (other.hasA()) { setA(other.getA()); } if (other.hasTheta()) { setTheta(other.getTheta()); } if (other.hasXOriginal()) { setXOriginal(other.getXOriginal()); } if (other.hasYOriginal()) { setYOriginal(other.getYOriginal()); } if (other.hasZOriginal()) { setZOriginal(other.getZOriginal()); } if (other.hasXPrecision()) { setXPrecision(other.getXPrecision()); } if (other.hasYPrecision()) { setYPrecision(other.getYPrecision()); } if (other.hasZPrecision()) { setZPrecision(other.getZPrecision()); } if (other.hasXPosition()) { setXPosition(other.getXPosition()); } if (other.hasYPosition()) { setYPosition(other.getYPosition()); } if (other.hasError()) { setError(other.getError()); } if (other.hasNoise()) { setNoise(other.getNoise()); } if (other.hasEndFrame()) { setEndFrame(other.getEndFrame()); } if (other.hasOriginalValue()) { setOriginalValue(other.getOriginalValue()); } if (!other.paramsStdDev_.isEmpty()) { if (paramsStdDev_.isEmpty()) { paramsStdDev_ = other.paramsStdDev_; bitField0_ = (bitField0_ & ~0x20000000); } else { ensureParamsStdDevIsMutable(); paramsStdDev_.addAll(other.paramsStdDev_); } onChanged(); } this.mergeExtensionFields(other); this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } public final boolean isInitialized() { if (!hasMolecule()) { return false; } if (!hasChannel()) { return false; } if (!hasFrame()) { return false; } if (!hasX()) { return false; } if (!hasY()) { return false; } if (!hasIntensity()) { return false; } if (!extensionsAreInitialized()) { return false; } return true; } public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { gdsc.smlm.tsf.TaggedSpotFile.Spot parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (gdsc.smlm.tsf.TaggedSpotFile.Spot) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private int molecule_ ; /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ public boolean hasMolecule() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ public int getMolecule() { return molecule_; } /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ public Builder setMolecule(int value) { bitField0_ |= 0x00000001; molecule_ = value; onChanged(); return this; } /** * <pre> * Identifier for a physical molecule. Multiple localizations will be considered * to be generated by the same molecule if they share the same molecule ID. * Typically, a molecule generates up to one localization per frame. * If you don't implement tracking, assign a different molecule ID to * each localization. * The difference between molecules and clusters is that a cluster is a group * of physical molecules, e.g. a raft on a membrane. When you are tracking to * link your localizations, you're looking at a molecule, and when you're * thresholding on the nearest neighbor distance, it's typically a cluster. * If you are using both cluster and molecule, localizations with the same * molecule ID should have the same cluster ID. * Molecule IDs must be globally unique across clusters. * </pre> * * <code>required int32 molecule = 1;</code> */ public Builder clearMolecule() { bitField0_ = (bitField0_ & ~0x00000001); molecule_ = 0; onChanged(); return this; } private int channel_ ; /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ public boolean hasChannel() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ public int getChannel() { return channel_; } /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ public Builder setChannel(int value) { bitField0_ |= 0x00000002; channel_ = value; onChanged(); return this; } /** * <pre> * Identifier for an input channel. Input channels represent different optical * paths, often with different spectral characteristics. For example, in a * biplane setup, you'd have two channels, one for each camera. Channels are * 1-based. * Please note that channels and fluorophore type are subtly different: channel * gives the *physical* excitation path (camera 1 or camera 2), while fluorophore * type gives the *fluorophore's* type (Cy5, Cy3, Tetraspeck). For example, for * biplane single-color 3D, you'd set the channel field if you emit separate * localizations for both channels, but never the type field. For biplane * two-color experiments, you'd set both channel and type if you fit in both * channels independently, and only types if your fitter combines information * for both channels. For spectrally separated measurements, channel and type * are usually identical, but for spectral unmixing, they may differ. * </pre> * * <code>required int32 channel = 2;</code> */ public Builder clearChannel() { bitField0_ = (bitField0_ & ~0x00000002); channel_ = 0; onChanged(); return this; } private int frame_ ; /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ public boolean hasFrame() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ public int getFrame() { return frame_; } /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ public Builder setFrame(int value) { bitField0_ |= 0x00000004; frame_ = value; onChanged(); return this; } /** * <pre> * Frame number (image number). The frames of each channel are numbered * sequentially, starting from 1. * </pre> * * <code>required int32 frame = 3;</code> */ public Builder clearFrame() { bitField0_ = (bitField0_ & ~0x00000004); frame_ = 0; onChanged(); return this; } private int slice_ ; /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ public boolean hasSlice() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ public int getSlice() { return slice_; } /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ public Builder setSlice(int value) { bitField0_ |= 0x00000008; slice_ = value; onChanged(); return this; } /** * <pre> * Z slice. If you are taking a series of images at different axial offsets, * you can tag the localizations from each respective slice with this 1-based * field. Please apply the offset between slices before saving to a TSF file: * z=100 with slice=1 is considered same position as z=100 with slice=2. * </pre> * * <code>optional int32 slice = 4;</code> */ public Builder clearSlice() { bitField0_ = (bitField0_ & ~0x00000008); slice_ = 0; onChanged(); return this; } private int pos_ ; /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ public boolean hasPos() { return ((bitField0_ & 0x00000010) == 0x00000010); } /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ public int getPos() { return pos_; } /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ public Builder setPos(int value) { bitField0_ |= 0x00000010; pos_ = value; onChanged(); return this; } /** * <pre> * Lateral position. If you are taking images at multiple x/y stage positions, * you can tag the localizations from each position with this 1-based field. * Positions are 1-based. Please apply the offset between positions before * saving the TSF file: * x=100 with pos=1 is considered same position as x=100 with pos=2. * </pre> * * <code>optional int32 pos = 5;</code> */ public Builder clearPos() { bitField0_ = (bitField0_ & ~0x00000010); pos_ = 0; onChanged(); return this; } private int fluorophoreType_ ; /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ public boolean hasFluorophoreType() { return ((bitField0_ & 0x00000020) == 0x00000020); } /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ public int getFluorophoreType() { return fluorophoreType_; } /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ public Builder setFluorophoreType(int value) { bitField0_ |= 0x00000020; fluorophoreType_ = value; onChanged(); return this; } /** * <pre> * Fluorophore type. The number is 1-based. Please compare the note for * channel for the distinction between type and channel. * </pre> * * <code>optional int32 fluorophore_type = 19;</code> */ public Builder clearFluorophoreType() { bitField0_ = (bitField0_ & ~0x00000020); fluorophoreType_ = 0; onChanged(); return this; } private int cluster_ ; /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ public boolean hasCluster() { return ((bitField0_ & 0x00000040) == 0x00000040); } /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ public int getCluster() { return cluster_; } /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ public Builder setCluster(int value) { bitField0_ |= 0x00000040; cluster_ = value; onChanged(); return this; } /** * <pre> * The identifier of the cluster that the localization belongs to, 1-based. * A cluster is a logical group of multiple physical molecules. Typical * examples are membrane rafts, * </pre> * * <code>optional int32 cluster = 20;</code> */ public Builder clearCluster() { bitField0_ = (bitField0_ & ~0x00000040); cluster_ = 0; onChanged(); return this; } private int locationUnits_ = 0; /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ public boolean hasLocationUnits() { return ((bitField0_ & 0x00000080) == 0x00000080); } /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.LocationUnits getLocationUnits() { gdsc.smlm.tsf.TaggedSpotFile.LocationUnits result = gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.valueOf(locationUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.LocationUnits.NM : result; } /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ public Builder setLocationUnits(gdsc.smlm.tsf.TaggedSpotFile.LocationUnits value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000080; locationUnits_ = value.getNumber(); onChanged(); return this; } /** * <pre> * xyz coordinates of the spot in location_units * after fitting and optional correction * </pre> * * <code>optional .TSF.LocationUnits location_units = 17;</code> */ public Builder clearLocationUnits() { bitField0_ = (bitField0_ & ~0x00000080); locationUnits_ = 0; onChanged(); return this; } private float x_ ; /** * <code>required float x = 7;</code> */ public boolean hasX() { return ((bitField0_ & 0x00000100) == 0x00000100); } /** * <code>required float x = 7;</code> */ public float getX() { return x_; } /** * <code>required float x = 7;</code> */ public Builder setX(float value) { bitField0_ |= 0x00000100; x_ = value; onChanged(); return this; } /** * <code>required float x = 7;</code> */ public Builder clearX() { bitField0_ = (bitField0_ & ~0x00000100); x_ = 0F; onChanged(); return this; } private float y_ ; /** * <code>required float y = 8;</code> */ public boolean hasY() { return ((bitField0_ & 0x00000200) == 0x00000200); } /** * <code>required float y = 8;</code> */ public float getY() { return y_; } /** * <code>required float y = 8;</code> */ public Builder setY(float value) { bitField0_ |= 0x00000200; y_ = value; onChanged(); return this; } /** * <code>required float y = 8;</code> */ public Builder clearY() { bitField0_ = (bitField0_ & ~0x00000200); y_ = 0F; onChanged(); return this; } private float z_ ; /** * <code>optional float z = 9;</code> */ public boolean hasZ() { return ((bitField0_ & 0x00000400) == 0x00000400); } /** * <code>optional float z = 9;</code> */ public float getZ() { return z_; } /** * <code>optional float z = 9;</code> */ public Builder setZ(float value) { bitField0_ |= 0x00000400; z_ = value; onChanged(); return this; } /** * <code>optional float z = 9;</code> */ public Builder clearZ() { bitField0_ = (bitField0_ & ~0x00000400); z_ = 0F; onChanged(); return this; } private int intensityUnits_ = 0; /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ public boolean hasIntensityUnits() { return ((bitField0_ & 0x00000800) == 0x00000800); } /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ public gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits getIntensityUnits() { gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits result = gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.valueOf(intensityUnits_); return result == null ? gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits.COUNTS : result; } /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ public Builder setIntensityUnits(gdsc.smlm.tsf.TaggedSpotFile.IntensityUnits value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000800; intensityUnits_ = value.getNumber(); onChanged(); return this; } /** * <pre> * Use intensity_units only if different from SpotList * integrated spot density. This can either be determined from a fit or * using any other methods. This number should be corrected for background * </pre> * * <code>optional .TSF.IntensityUnits intensity_units = 18;</code> */ public Builder clearIntensityUnits() { bitField0_ = (bitField0_ & ~0x00000800); intensityUnits_ = 0; onChanged(); return this; } private float intensity_ ; /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ public boolean hasIntensity() { return ((bitField0_ & 0x00001000) == 0x00001000); } /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ public float getIntensity() { return intensity_; } /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ public Builder setIntensity(float value) { bitField0_ |= 0x00001000; intensity_ = value; onChanged(); return this; } /** * <pre> * integrated spot density * </pre> * * <code>required float intensity = 10;</code> */ public Builder clearIntensity() { bitField0_ = (bitField0_ & ~0x00001000); intensity_ = 0F; onChanged(); return this; } private float background_ ; /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ public boolean hasBackground() { return ((bitField0_ & 0x00002000) == 0x00002000); } /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ public float getBackground() { return background_; } /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ public Builder setBackground(float value) { bitField0_ |= 0x00002000; background_ = value; onChanged(); return this; } /** * <pre> * Background around the spot. * This can be determined through a fit or other methods * This number should not include the camera bias, i.e. it should be linearly * proportional to the number of photons in the background * </pre> * * <code>optional float background = 11;</code> */ public Builder clearBackground() { bitField0_ = (bitField0_ & ~0x00002000); background_ = 0F; onChanged(); return this; } private float width_ ; /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ public boolean hasWidth() { return ((bitField0_ & 0x00004000) == 0x00004000); } /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ public float getWidth() { return width_; } /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ public Builder setWidth(float value) { bitField0_ |= 0x00004000; width_ = value; onChanged(); return this; } /** * <pre> * Peak width at half height in location units * for asymmetric peaks, calculate the width as the square root of the * product of the widths of the long and short axes * </pre> * * <code>optional float width = 12;</code> */ public Builder clearWidth() { bitField0_ = (bitField0_ & ~0x00004000); width_ = 0F; onChanged(); return this; } private float a_ ; /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ public boolean hasA() { return ((bitField0_ & 0x00008000) == 0x00008000); } /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ public float getA() { return a_; } /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ public Builder setA(float value) { bitField0_ |= 0x00008000; a_ = value; onChanged(); return this; } /** * <pre> * Shape of the peak: width of the long axis * divided by width of the short axis * </pre> * * <code>optional float a = 13;</code> */ public Builder clearA() { bitField0_ = (bitField0_ & ~0x00008000); a_ = 0F; onChanged(); return this; } private float theta_ ; /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ public boolean hasTheta() { return ((bitField0_ & 0x00010000) == 0x00010000); } /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ public float getTheta() { return theta_; } /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ public Builder setTheta(float value) { bitField0_ |= 0x00010000; theta_ = value; onChanged(); return this; } /** * <pre> * Rotation of asymmetric peak, only used * when fitmode == TWOAXISANDTHETA * </pre> * * <code>optional float theta = 14;</code> */ public Builder clearTheta() { bitField0_ = (bitField0_ & ~0x00010000); theta_ = 0F; onChanged(); return this; } private float xOriginal_ ; /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ public boolean hasXOriginal() { return ((bitField0_ & 0x00020000) == 0x00020000); } /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ public float getXOriginal() { return xOriginal_; } /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ public Builder setXOriginal(float value) { bitField0_ |= 0x00020000; xOriginal_ = value; onChanged(); return this; } /** * <pre> * Original xyz coordinates from fitting before correction * </pre> * * <code>optional float x_original = 101;</code> */ public Builder clearXOriginal() { bitField0_ = (bitField0_ & ~0x00020000); xOriginal_ = 0F; onChanged(); return this; } private float yOriginal_ ; /** * <code>optional float y_original = 102;</code> */ public boolean hasYOriginal() { return ((bitField0_ & 0x00040000) == 0x00040000); } /** * <code>optional float y_original = 102;</code> */ public float getYOriginal() { return yOriginal_; } /** * <code>optional float y_original = 102;</code> */ public Builder setYOriginal(float value) { bitField0_ |= 0x00040000; yOriginal_ = value; onChanged(); return this; } /** * <code>optional float y_original = 102;</code> */ public Builder clearYOriginal() { bitField0_ = (bitField0_ & ~0x00040000); yOriginal_ = 0F; onChanged(); return this; } private float zOriginal_ ; /** * <code>optional float z_original = 103;</code> */ public boolean hasZOriginal() { return ((bitField0_ & 0x00080000) == 0x00080000); } /** * <code>optional float z_original = 103;</code> */ public float getZOriginal() { return zOriginal_; } /** * <code>optional float z_original = 103;</code> */ public Builder setZOriginal(float value) { bitField0_ |= 0x00080000; zOriginal_ = value; onChanged(); return this; } /** * <code>optional float z_original = 103;</code> */ public Builder clearZOriginal() { bitField0_ = (bitField0_ & ~0x00080000); zOriginal_ = 0F; onChanged(); return this; } private float xPrecision_ ; /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ public boolean hasXPrecision() { return ((bitField0_ & 0x00100000) == 0x00100000); } /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ public float getXPrecision() { return xPrecision_; } /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ public Builder setXPrecision(float value) { bitField0_ |= 0x00100000; xPrecision_ = value; onChanged(); return this; } /** * <pre> * localization precision * </pre> * * <code>optional float x_precision = 104;</code> */ public Builder clearXPrecision() { bitField0_ = (bitField0_ & ~0x00100000); xPrecision_ = 0F; onChanged(); return this; } private float yPrecision_ ; /** * <code>optional float y_precision = 105;</code> */ public boolean hasYPrecision() { return ((bitField0_ & 0x00200000) == 0x00200000); } /** * <code>optional float y_precision = 105;</code> */ public float getYPrecision() { return yPrecision_; } /** * <code>optional float y_precision = 105;</code> */ public Builder setYPrecision(float value) { bitField0_ |= 0x00200000; yPrecision_ = value; onChanged(); return this; } /** * <code>optional float y_precision = 105;</code> */ public Builder clearYPrecision() { bitField0_ = (bitField0_ & ~0x00200000); yPrecision_ = 0F; onChanged(); return this; } private float zPrecision_ ; /** * <code>optional float z_precision = 106;</code> */ public boolean hasZPrecision() { return ((bitField0_ & 0x00400000) == 0x00400000); } /** * <code>optional float z_precision = 106;</code> */ public float getZPrecision() { return zPrecision_; } /** * <code>optional float z_precision = 106;</code> */ public Builder setZPrecision(float value) { bitField0_ |= 0x00400000; zPrecision_ = value; onChanged(); return this; } /** * <code>optional float z_precision = 106;</code> */ public Builder clearZPrecision() { bitField0_ = (bitField0_ & ~0x00400000); zPrecision_ = 0F; onChanged(); return this; } private int xPosition_ ; /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ public boolean hasXPosition() { return ((bitField0_ & 0x00800000) == 0x00800000); } /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ public int getXPosition() { return xPosition_; } /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ public Builder setXPosition(int value) { bitField0_ |= 0x00800000; xPosition_ = value; onChanged(); return this; } /** * <pre> * position in the original image (in pixels) used for fitting * </pre> * * <code>optional int32 x_position = 107;</code> */ public Builder clearXPosition() { bitField0_ = (bitField0_ & ~0x00800000); xPosition_ = 0; onChanged(); return this; } private int yPosition_ ; /** * <code>optional int32 y_position = 108;</code> */ public boolean hasYPosition() { return ((bitField0_ & 0x01000000) == 0x01000000); } /** * <code>optional int32 y_position = 108;</code> */ public int getYPosition() { return yPosition_; } /** * <code>optional int32 y_position = 108;</code> */ public Builder setYPosition(int value) { bitField0_ |= 0x01000000; yPosition_ = value; onChanged(); return this; } /** * <code>optional int32 y_position = 108;</code> */ public Builder clearYPosition() { bitField0_ = (bitField0_ & ~0x01000000); yPosition_ = 0; onChanged(); return this; } private double error_ ; /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ public boolean hasError() { return ((bitField0_ & 0x02000000) == 0x02000000); } /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ public double getError() { return error_; } /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ public Builder setError(double value) { bitField0_ |= 0x02000000; error_ = value; onChanged(); return this; } /** * <pre> * Additional spot data * </pre> * * <code>optional double error = 1500;</code> */ public Builder clearError() { bitField0_ = (bitField0_ & ~0x02000000); error_ = 0D; onChanged(); return this; } private float noise_ ; /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ public boolean hasNoise() { return ((bitField0_ & 0x04000000) == 0x04000000); } /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ public float getNoise() { return noise_; } /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ public Builder setNoise(float value) { bitField0_ |= 0x04000000; noise_ = value; onChanged(); return this; } /** * <pre> * Local noise estimate * </pre> * * <code>optional float noise = 1501;</code> */ public Builder clearNoise() { bitField0_ = (bitField0_ & ~0x04000000); noise_ = 0F; onChanged(); return this; } private int endFrame_ ; /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ public boolean hasEndFrame() { return ((bitField0_ & 0x08000000) == 0x08000000); } /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ public int getEndFrame() { return endFrame_; } /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ public Builder setEndFrame(int value) { bitField0_ |= 0x08000000; endFrame_ = value; onChanged(); return this; } /** * <pre> * The end frame (if the spot represents an * </pre> * * <code>optional int32 end_frame = 1503;</code> */ public Builder clearEndFrame() { bitField0_ = (bitField0_ & ~0x08000000); endFrame_ = 0; onChanged(); return this; } private float originalValue_ ; /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ public boolean hasOriginalValue() { return ((bitField0_ & 0x10000000) == 0x10000000); } /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ public float getOriginalValue() { return originalValue_; } /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ public Builder setOriginalValue(float value) { bitField0_ |= 0x10000000; originalValue_ = value; onChanged(); return this; } /** * <pre> * average across multiple frames) * </pre> * * <code>optional float original_value = 1504;</code> */ public Builder clearOriginalValue() { bitField0_ = (bitField0_ & ~0x10000000); originalValue_ = 0F; onChanged(); return this; } private java.util.List<java.lang.Float> paramsStdDev_ = java.util.Collections.emptyList(); private void ensureParamsStdDevIsMutable() { if (!((bitField0_ & 0x20000000) == 0x20000000)) { paramsStdDev_ = new java.util.ArrayList<java.lang.Float>(paramsStdDev_); bitField0_ |= 0x20000000; } } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public java.util.List<java.lang.Float> getParamsStdDevList() { return java.util.Collections.unmodifiableList(paramsStdDev_); } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public int getParamsStdDevCount() { return paramsStdDev_.size(); } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public float getParamsStdDev(int index) { return paramsStdDev_.get(index); } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public Builder setParamsStdDev( int index, float value) { ensureParamsStdDevIsMutable(); paramsStdDev_.set(index, value); onChanged(); return this; } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public Builder addParamsStdDev(float value) { ensureParamsStdDevIsMutable(); paramsStdDev_.add(value); onChanged(); return this; } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public Builder addAllParamsStdDev( java.lang.Iterable<? extends java.lang.Float> values) { ensureParamsStdDevIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, paramsStdDev_); onChanged(); return this; } /** * <pre> * fitting origin (x_position,y_position) * </pre> * * <code>repeated float params_std_dev = 1505;</code> */ public Builder clearParamsStdDev() { paramsStdDev_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x20000000); onChanged(); return this; } public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:TSF.Spot) } // @@protoc_insertion_point(class_scope:TSF.Spot) private static final gdsc.smlm.tsf.TaggedSpotFile.Spot DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new gdsc.smlm.tsf.TaggedSpotFile.Spot(); } public static gdsc.smlm.tsf.TaggedSpotFile.Spot getDefaultInstance() { return DEFAULT_INSTANCE; } @java.lang.Deprecated public static final com.google.protobuf.Parser<Spot> PARSER = new com.google.protobuf.AbstractParser<Spot>() { public Spot parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new Spot(input, extensionRegistry); } }; public static com.google.protobuf.Parser<Spot> parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser<Spot> getParserForType() { return PARSER; } public gdsc.smlm.tsf.TaggedSpotFile.Spot getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_TSF_FluorophoreType_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_TSF_FluorophoreType_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_TSF_ROI_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_TSF_ROI_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_TSF_SpotList_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_TSF_SpotList_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_TSF_Spot_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_TSF_Spot_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n\016TSFProto.proto\022\003TSF\"G\n\017FluorophoreType" + "\022\n\n\002id\030\001 \002(\005\022\023\n\013description\030\002 \001(\t\022\023\n\013is_" + "fiducial\030\003 \001(\010\"=\n\003ROI\022\t\n\001x\030\001 \002(\005\022\t\n\001y\030\002 " + "\002(\005\022\017\n\007x_width\030\003 \002(\005\022\017\n\007y_width\030\004 \002(\005\"\273\005" + "\n\010SpotList\022\031\n\016application_id\030\001 \002(\005:\0011\022\014\n" + "\004name\030\002 \001(\t\022\020\n\010filepath\030\003 \001(\t\022\013\n\003uid\030\004 \001" + "(\003\022\023\n\013nr_pixels_x\030\005 \001(\005\022\023\n\013nr_pixels_y\030\006" + " \001(\005\022\022\n\npixel_size\030\007 \001(\002\022\020\n\010nr_spots\030\010 \001" + "(\003\022\020\n\010box_size\030\021 \001(\005\022\023\n\013nr_channels\030\022 \001(" + "\005\022\021\n\tnr_frames\030\023 \001(\005\022\021\n\tnr_slices\030\024 \001(\005\022", "\016\n\006nr_pos\030\025 \001(\005\022/\n\021fluorophore_types\030\032 \003" + "(\0132\024.TSF.FluorophoreType\022*\n\016location_uni" + "ts\030\026 \001(\0162\022.TSF.LocationUnits\022,\n\017intensit" + "y_units\030\027 \001(\0162\023.TSF.IntensityUnits\022$\n\013th" + "eta_units\030\033 \001(\0162\017.TSF.ThetaUnits\022\036\n\010fit_" + "mode\030\030 \001(\0162\014.TSF.FitMode\022\027\n\010is_track\030\031 \001" + "(\010:\005false\022\013\n\003ecf\030\034 \003(\001\022\n\n\002qe\030\036 \003(\001\022\025\n\003ro" + "i\030\035 \001(\0132\010.TSF.ROI\022\017\n\006source\030\335\013 \001(\t\022\026\n\rco" + "nfiguration\030\336\013 \001(\t\022\r\n\004gain\030\337\013 \001(\001\022\025\n\014exp" + "osureTime\030\340\013 \001(\001\022\022\n\treadNoise\030\341\013 \001(\001\022\r\n\004", "bias\030\342\013 \001(\001\022\016\n\005emCCD\030\343\013 \001(\010\022\026\n\ramplifica" + "tion\030\344\013 \001(\001*\006\010\244\r\020\200\020\"\333\004\n\004Spot\022\020\n\010molecule" + "\030\001 \002(\005\022\017\n\007channel\030\002 \002(\005\022\r\n\005frame\030\003 \002(\005\022\r" + "\n\005slice\030\004 \001(\005\022\013\n\003pos\030\005 \001(\005\022\030\n\020fluorophor" + "e_type\030\023 \001(\005\022\017\n\007cluster\030\024 \001(\005\022*\n\016locatio" + "n_units\030\021 \001(\0162\022.TSF.LocationUnits\022\t\n\001x\030\007" + " \002(\002\022\t\n\001y\030\010 \002(\002\022\t\n\001z\030\t \001(\002\022,\n\017intensity_" + "units\030\022 \001(\0162\023.TSF.IntensityUnits\022\021\n\tinte" + "nsity\030\n \002(\002\022\022\n\nbackground\030\013 \001(\002\022\r\n\005width" + "\030\014 \001(\002\022\t\n\001a\030\r \001(\002\022\r\n\005theta\030\016 \001(\002\022\022\n\nx_or", "iginal\030e \001(\002\022\022\n\ny_original\030f \001(\002\022\022\n\nz_or" + "iginal\030g \001(\002\022\023\n\013x_precision\030h \001(\002\022\023\n\013y_p" + "recision\030i \001(\002\022\023\n\013z_precision\030j \001(\002\022\022\n\nx" + "_position\030k \001(\005\022\022\n\ny_position\030l \001(\005\022\016\n\005e" + "rror\030\334\013 \001(\001\022\016\n\005noise\030\335\013 \001(\002\022\022\n\tend_frame" + "\030\337\013 \001(\005\022\027\n\016original_value\030\340\013 \001(\002\022\027\n\016para" + "ms_std_dev\030\341\013 \003(\002*\006\010\244\r\020\200\020*8\n\007FitMode\022\013\n\007" + "ONEAXIS\020\000\022\013\n\007TWOAXIS\020\001\022\023\n\017TWOAXISANDTHET" + "A\020\002*&\n\nThetaUnits\022\013\n\007DEGREES\020\000\022\013\n\007RADIAN" + "S\020\001*)\n\016IntensityUnits\022\n\n\006COUNTS\020\000\022\013\n\007PHO", "TONS\020\001*+\n\rLocationUnits\022\006\n\002NM\020\000\022\006\n\002UM\020\001\022" + "\n\n\006PIXELS\020\002B\037\n\rgdsc.smlm.tsfB\016TaggedSpot" + "File" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.Descriptors.FileDescriptor root) { descriptor = root; return null; } }; com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { }, assigner); internal_static_TSF_FluorophoreType_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_TSF_FluorophoreType_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_TSF_FluorophoreType_descriptor, new java.lang.String[] { "Id", "Description", "IsFiducial", }); internal_static_TSF_ROI_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_TSF_ROI_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_TSF_ROI_descriptor, new java.lang.String[] { "X", "Y", "XWidth", "YWidth", }); internal_static_TSF_SpotList_descriptor = getDescriptor().getMessageTypes().get(2); internal_static_TSF_SpotList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_TSF_SpotList_descriptor, new java.lang.String[] { "ApplicationId", "Name", "Filepath", "Uid", "NrPixelsX", "NrPixelsY", "PixelSize", "NrSpots", "BoxSize", "NrChannels", "NrFrames", "NrSlices", "NrPos", "FluorophoreTypes", "LocationUnits", "IntensityUnits", "ThetaUnits", "FitMode", "IsTrack", "Ecf", "Qe", "Roi", "Source", "Configuration", "Gain", "ExposureTime", "ReadNoise", "Bias", "EmCCD", "Amplification", }); internal_static_TSF_Spot_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_TSF_Spot_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_TSF_Spot_descriptor, new java.lang.String[] { "Molecule", "Channel", "Frame", "Slice", "Pos", "FluorophoreType", "Cluster", "LocationUnits", "X", "Y", "Z", "IntensityUnits", "Intensity", "Background", "Width", "A", "Theta", "XOriginal", "YOriginal", "ZOriginal", "XPrecision", "YPrecision", "ZPrecision", "XPosition", "YPosition", "Error", "Noise", "EndFrame", "OriginalValue", "ParamsStdDev", }); } // @@protoc_insertion_point(outer_class_scope) }