**************   PickPrimer_VariantGenomic    ************************************************
 Pick Primer VariantGenomic 'dovrebbe' essere in grado di costruisce  primer per la reazione di PCR.
  Questi, saranno costruiti esternamente ad una regione genomica, selezionabile dall'utente mediante cromosoma, posizione e ampiezza (vedi note alla fine qi questo foglio)
  Inoltre saranno costruiti in zone prive di polimorfismi conosciuti, ricavati da dbSNPs, GnomAD, etc. L'utente potrà selezionarli in base ad una soglia della loro frequenza
  L'utente potrà aggiungere a questi polimorfismi conosciuti, anche dei propri memorizzati in un file formato VCF
  
L'applicazione, utilizza il programma principale PickPrimer_ThermoHybrid (self made e presente in questa stessa piattaforma) per analizzare la sequenza 'template' e trovare i 
      'migliori' primer per amplificare la regione data.
 
 Il programma principale calcola i parametri termodinamici (temperatura di melting e le variazioni di entropia ed entalpia, con il metodo  Nearest-Neighbor.
Usa i  dati di SantaLucia et al (1998), mentre per la correzione saline usa von Ahsen (2001). In caso di multi mismatch o mismath terminali, usa i parametri Mfold di Zuker M. (2003) ed una self-approssimazione.

L'utente, oltre ai dati di posizionamento della regione da amplificare, può inserire la temperatura di annealing, la concentrazione dei reagenti, le caratteristiche dell'amplicone desiderato,
il tipo di DNA polimerasi usato (hotStart, proofreading), ecc.

Volendo, l'utente può obbligare il programma ad usare i propri primer, in questo modo è possibile valutare la bontà dei propri primer.

I primer proposti dal programma avranno una lunghezza appropriata alla temperatura di annealing impostata e saranno analizzati per il loro contenuto in basi, la presenza di ripetizione di basi, per la possibilità di formare hairpin-loop e dimeri (self ed etero)  ed infine  per la loro satbilità al 3'


  Il programma estrae la sequenza genomica (già mascherata dalle varianti) di una regione genomica dal cromosoma impostato e centrata sulle posizioni start ed end, 
  di lunghezza tale da permettere di ottenere l'amplificato massimo in ambedue le parti della regione
  La segnalazione dei polimorfismi impedisce la costruzione dei primer nelle regioni dove esistono tali polimorfismi.
  Per il futuro, è in programma l'implementazione dell'analisi delle estremità dell'amplicone, ma limitatamente alla sequenza standard.
  
 



                                   intorno               intorno (around free)
                                  |.......|              |......|                
               p=polimorfismo          Pos_start      Pos_end                         p=polimorfismo
  --SEQ: ------p----pp------------[-------(--------------)------]-----------------------p----------p-----
                                  [ -regione libera da primer-  ]       
             -->    -->                                                                <--         <--   NO primer in queste regioni
                          -->                                         <--
                          prime for                                   primer rev
                          |- - - - - - - - amplicone - - - - - - - - - - |


   L'originale PickPrimerThermoHybrid  controlla  la formazione di hairpin-loop alle estremità degli ampliconi che possono impedire l'ibridazione dei primer.
   ma qui,  tale funzione, non viene utilizzata  In quanto la sequenza stampo è mascherata con le varianti che possono impedire l'analisi di eventuali hairpin-loop.



*************************************************************************************************************************************************************


Il programma Può essere lanciato sia via web che da riga di comando:

- via web compilando l'apposita form (corredata anche da eventuali help)

- da linea di comando scrivendo in modo appropriato i comandi.




******  DA LINEA DI DOMANDO  ***********
Posizionarsi con una shell nella cartella dove c'è il programma. 
lanciar il programma PickPrimer_VariantGenomic con i voluti parametri
  ogni parametro è costituito da due parti: la prima che inizia con '-' specifica il tipo di parametro, la seconda specifica il valore.
      formato: PickPrimer_VariantGenomic -sigla1 valore1 -sigla2 valore2 ecc
  Sono obbligatori il cromosoma con le posizioni associate, 
       parametro -L valori separati da ':' chrom:Pos_Start:Pos_End  Chom può essere scitto con il valore assoluto (es. 2 o 5 o X , ecc.) oppure preceduto da chr
       può mancare il valore Pos_End. In questo caso viene impostato come Pos_Start +1:
       esempi PickPrimer_VariantGenomic -L 1:1234440:1234450  oppure 
              PickPrimer_VariantGenomic -L 1:1234440   in questo caso Pos_End sarà 1234441.
 
 parametri facoltativi, ma impostati di default:   
-VCF file_vcf  (file contenente le varianti che vogliamo aggiungere a quelle conosciute) 
          
-Ie intorno della regione da escludere ai primer (default 40)
-TA temperatura di annealing (default 56)
-TDM Aumento della temperatura di annealing per stabilire la temperatura di melting dei primer (default 3)
     La temperatura di melting che dovrebbero avere i primer è data da temp_annealing + questo delta
-AMX lunghezza amplicone max (default 700)
-Amn lunghezza amplicone min (default 400)
-Aop lunghezza amplicone ottimale (default 500) Se 0 significa che è indifferente
-Apn ampli_pen_100BP Penalità per ogni 1000 bp che ci si discosta dalla len ottimale  (default 20)

-Nrt numero di coppie di primer evidenziati (default 2)
-Noc n_occurence_primer  (default 2)    # max volte che un prime può apparire

-psp  passo_pos_primer  (default 3): i primer non vengono costruiti in tutte le posizioni, ma saltando il numero di basi qui espresso

-Prd proofreading (default 0)
-Hst hot_start (default 0 )

l'output di defaul è dato sullo schermmo, si può ottenere un file con tutti i dati mettendo l'opzione
 -out nome_file

Vedi sotto altri parametri particolari ed utilizzati da PickPrimerThermoHybrid

Esempio semplice:
  PickPrimer_VariantGenomic -L 1:1234440:1234450 -TM 58 -Aop 800 -AMX 1200 -Amn 600 Nrt 5
     in questocaso si è imostato la temperatura di melting a 58, si vuole un amplicone ottimale di 800 bp, max di 1200 bp, minimo di 600. Si vogliono evidenziare 5 coppie di primer
*************************************************************************************************************************************************************
**************  OUTPUT ***************************************************************************************************************************************
*************************************************************************************************************************************************************



*************************************************************************************************************************************************************
*************************************************************************************************************************************************************
*************************************************************************************************************************************************************

Altri parametri utilizzati da  PickPrimerThermoHybrid ma qui per il momento non usati


-na (default 50) -mg (default 1.5) -cp (default 0.35)   concentrazione sodio, magnesio, primer
        Nota: concentrazioni na (sodio) e mg (magnesio) in milliM, cp (primer) in microM
-TEX temperatura di estensione (default 72) serve dolo per determinare l'efficienza di amplificazione (qui non usata)
-prl sequenza del primer left (generalemente FOR)se si impone già una (defaul NULL)
-prr sequenza del primer right (generalemente REV)se si impone già una (defaul NULL)


-OMX  max_len_oligo  (default 40)
-Omn  min_len_oligo  (default 15)

-cir 1  oppure 0  : se 1 circular form del templato con amplicon sopra la giunzione

-TEX temperatira di estensione 




-Ahr  di attiva il controllo hairpin_constrain (0 o 1)  (default 1) qui non usata
-Sim ampli_similar_sequence (default 0 )
-Lex Lateral_extention  (default 300 )


parametri avanzati

-cop cutoff_oligo_penalty  (default 150 )
-ccp cutoff_coppia_primer_penalty   (default 250)
-pbs n_best_primer_to_analyse   (default 20 )


  scala di penalità per smettere la ricerca
-lp0 pcr_less_penalty[0]  (default 10 )
-lp1 pcr_less_penalty[1]  (default 20 )
-lp2 pcr_less_penalty[2]  (default 40 )
-lp3 pcr_less_penalty[3]  (default 60 )


 #### parametri non in uso in PickPrimer_VariantGenomic ma solo nel prg principale Pickprime_ThermoHybrid


-SEQ sequenza principale (unica) in formato stringa

-stm nome file con la sequenza principale    seq_temp.txt
-ssc eventuale nome del file con le sequenze secondarie (ancora non operativo)