package org.pdxfinder.dao;

import org.neo4j.ogm.annotation.GraphId;
import org.neo4j.ogm.annotation.NodeEntity;

/**
 * Created by csaba on 25/04/2017.
 */
@NodeEntity
public class MarkerAssociation {

    @GraphId
    Long id;

    String description;
    Marker marker;
    
    private String chromosome;
    private String seqPosition; //in jax use seqStartPosition instead of this
    private String refAllele;
    private String altAllele;
    private String consequence; // variant_classification in ircc
    private String aminoAcidChange; //use hgvsp short, remove p. in ircc
    private String rsVariants;
    private String readDepth;
    private String alleleFrequency;
    private String refAssembly; //NCBI_build in ircc

    private String seqStartPosition;
    private String seqEndPosition;
    private String strand;


    public MarkerAssociation() {
    }

    public MarkerAssociation(String name, Marker marker) {
        this.description = name;
        this.marker = marker;
    }

    public Long getId() {
        return id;
    }

    public String getDescription() {
        return description;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Marker getMarker() {
        return marker;
    }

    public void setMarker(Marker marker) {
        this.marker = marker;
    }

    /**
     * @return the chromosome
     */
    public String getChromosome() {
        return chromosome;
    }

    /**
     * @param chromosome the chromosome to set
     */
    public void setChromosome(String chromosome) {
        this.chromosome = chromosome;
    }

    /**
     * @return the seqPosition
     */
    public String getSeqPosition() {
        return seqPosition;
    }

    /**
     * @param seqPosition the seqPosition to set
     */
    public void setSeqPosition(String seqPosition) {
        this.seqPosition = seqPosition;
    }

    /**
     * @return the refAllele
     */
    public String getRefAllele() {
        return refAllele;
    }

    /**
     * @param refAllele the refAllele to set
     */
    public void setRefAllele(String refAllele) {
        this.refAllele = refAllele;
    }

    /**
     * @return the consequence
     */
    public String getConsequence() {
        return consequence;
    }

    /**
     * @param consequence the consequence to set
     */
    public void setConsequence(String consequence) {
        this.consequence = consequence;
    }

    /**
     * @return the aminoAcidChange
     */
    public String getAminoAcidChange() {
        return aminoAcidChange;
    }

    /**
     * @param aminoAcidChange the aminoAcidChange to set
     */
    public void setAminoAcidChange(String aminoAcidChange) {
        this.aminoAcidChange = aminoAcidChange;
    }

    /**
     * @return the rsVariants
     */
    public String getRsVariants() {
        return rsVariants;
    }

    /**
     * @param rsVariants the rsVariants to set
     */
    public void setRsVariants(String rsVariants) {
        this.rsVariants = rsVariants;
    }

    /**
     * @return the readDepth
     */
    public String getReadDepth() {
        return readDepth;
    }

    /**
     * @param readDepth the readDepth to set
     */
    public void setReadDepth(String readDepth) {
        this.readDepth = readDepth;
    }

    /**
     * @return the alleleFrequency
     */
    public String getAlleleFrequency() {
        return alleleFrequency;
    }

    /**
     * @param alleleFrequency the alleleFrequency to set
     */
    public void setAlleleFrequency(String alleleFrequency) {
        this.alleleFrequency = alleleFrequency;
    }

    /**
     * @return the altAllele
     */
    public String getAltAllele() {
        return altAllele;
    }

    /**
     * @param altAllele the altAllele to set
     */
    public void setAltAllele(String altAllele) {
        this.altAllele = altAllele;
    }

    /**
     * @return the refAssembly
     */
    public String getRefAssembly() {
        return refAssembly;
    }

    /**
     * @param refAssembly the refAssembly to set
     */
    public void setRefAssembly(String refAssembly) {
        this.refAssembly = refAssembly;
    }

    public String getSeqStartPosition() {
        return seqStartPosition;
    }

    public void setSeqStartPosition(String seqStartPosition) {
        this.seqStartPosition = seqStartPosition;
    }

    public String getSeqEndPosition() {
        return seqEndPosition;
    }

    public void setSeqEndPosition(String seqEndPosition) {
        this.seqEndPosition = seqEndPosition;
    }

    public String getStrand() {
        return strand;
    }

    public void setStrand(String strand) {
        this.strand = strand;
    }
}

@@ -270,16 +270,342 @@
 er;%0A    
+/*%0A    * IRCC NGS mapping (class attribute = file headers):%0A    * chromosome = Chrom%0A    * seqPosition = Pos%0A    * refAllele = Ref%0A    * altAllele = Alt%0A    * consequence = Effect%0A    * aminoAcidChange = Protein%0A    * type = type%0A    * alleleFrequency = TBD%0A    * annotation = Drivers_v1.4 (0=NO, 1=YES)%0A    *%0A    *%0A    * */%0A%0A
 %0A    pri
@@ -1156,16 +1156,118 @@
 trand;%0A%0A
+    private String cdsChange;%0A    private String type; //Substitution%0A    private String annotation;%0A%0A
 %0A    pub
@@ -5228,11 +5228,467 @@
 d;%0A    %7D
+%0A%0A    public String getCdsChange() %7B%0A        return cdsChange;%0A    %7D%0A%0A    public void setCdsChange(String cdsChange) %7B%0A        this.cdsChange = cdsChange;%0A    %7D%0A%0A    public String getType() %7B%0A        return type;%0A    %7D%0A%0A    public void setType(String type) %7B%0A        this.type = type;%0A    %7D%0A%0A    public String getAnnotation() %7B%0A        return annotation;%0A    %7D%0A%0A    public void setAnnotation(String annotation) %7B%0A        this.annotation = annotation;%0A    %7D
 %0A%7D%0A

Add new attributes for IRCC data