Last active
February 29, 2020 22:09
-
-
Save gnuton/5d4a2cb921ce9e34f5269d4145e794a8 to your computer and use it in GitHub Desktop.
Chimera version 0.1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def leggi_file(nome_file): | |
file = open(nome_file, 'r') | |
lineee = file.read() | |
file.close() | |
return linee | |
def calcola_percentuali(linee): | |
diz={} | |
for line in linee: | |
x = line.strip().split(" ") | |
key=x[1] | |
valore=x[0] | |
if key in diz: | |
# se leggo una nuova linea e PCR10_1 e' gia nel dizionario, sommo il valore nuovo a quello nel diz | |
vecchio_valore=diz[key] | |
diz[key]= vecchio_valore + valore | |
else: | |
diz[key]=valore | |
diz_perc={} | |
for key in diz.keys(): | |
prefix_key="_".join(key.split("_")[:-1]) # "PCR10" | |
tot=0 | |
for k in diz.keys(): | |
# prefix_key=PCR10, k=PCR10_2 | |
if prefix_key not in k: | |
continue | |
tot += float(diz[k]) | |
# print tot | |
val=float(diz[key]) | |
val_perc=round(val/tot*100, 2) | |
diz_perc[key]=val_perc | |
return diz_perc | |
def filtra_valori_nel_diz_minori_del_cutoff(diz_perc, cutoff): | |
# qui calcola le frequenza | |
diz_cutoff={} | |
for x in diz_perc.items(): | |
chiave = x[0] | |
valore = x[1] | |
if valore >= cutoff: | |
diz_cutoff[chiave]=valore | |
return diz_cutoff | |
def filtra_valori_nel_diz_maggiori_del_cutoff(diz_perc, cutoff): | |
# qui calcola le frequenza | |
diz_cutoff={} | |
for x in diz_perc.items(): | |
chiave = x[0] | |
valore = x[1] | |
if valore ,= cutoff: | |
diz_cutoff[chiave]=valore | |
return diz_cutoff | |
### PADRE | |
cutoff_padre=30.00 | |
linee_padre = leggi_file('DNA_11_PADRE_r0.fq_align.counts') | |
diz_perc_padre = calcola_percentuali(linee_padre) | |
diz_perc_filtrati_padre = filtra_valori_nel_diz_minori_del_cutoff(diz_perc_padre, cutoff_padre) | |
### FIGLIO | |
cutoff_figlio=0.1 | |
linee_figlio = leggi_file('il file del figlio') | |
diz_perc_figlio = calcola_percentuali(linee_figlio) | |
diz_perc_filtrati_figlio = filtra_valori_nel_diz_maggiori_del_cutoff(diz_perc_figlio, cutoff_figlio) | |
### DONATORE | |
cutoff_donatore=0.1 | |
linee_donatore = leggi_file('DNA_13_r0.fq_align.counts') | |
diz_perc_donatore = calcola_percentuali(linee_donatore) | |
diz_perc_filtrati_donatore = filtra_valori_nel_diz_maggiori_del_cutoff(diz_perc_donatore, cutoff_donatore) | |
### CONTINUA TU :D | |
#####PARTE 3: CONFRONTO RIC VS DON | |
#--> | |
#### CREA UNA LISTA CON APLOT. INFORMAT | |
Lista_APLO_INFORMATIVO=[] | |
for x in diz_perc_RIC_frequenti: | |
for y in diz_perc_DON_pocofrequenti: | |
if x== y: | |
Lista_APLO_INFORMATIVO.append(x) | |
print Lista_APLO_INFORMATIVO | |
#####PARTE 4: CALCOLI QUANTIFICAZIONE CHIMERISMO: | |
#####PARTE 4.1: APRI FILE CHIMERA IDENTIFICA N READS APLO_INFORMATIVI | |
file_CHIM= open('Sc_I_0.1_r0.fq_align.counts','r') | |
linee_CHIM=[] | |
for line in file_CHIM: | |
linee_CHIM.append(line) | |
#print linee_CHIM | |
diz={} | |
for line in linee_CHIM: | |
x = line.strip().split(" ") | |
key=x[1] | |
valore=x[0] | |
diz[key]=valore | |
#print diz | |
diz_perc_CHIM={} | |
for x in diz.items(): | |
for y in Lista_APLO_INFORMATIVO: | |
if x[0]==y: | |
diz_perc_CHIM[x[0]]=x[1] | |
print diz_perc_CHIM | |
#####PARTE 4.2 CREA DIZIONARIO INFORMATIVI | |
diz_conte_informativi={} | |
for x in diz_perc_RIC.items(): | |
for y in diz_perc_CHIM.keys(): | |
if y==x[0]: | |
diz_conte_informativi[y]=x[1] | |
#str(x[0])#==str(y) | |
#lst_conte_informativi.append(x[0:]) | |
print diz_conte_informativi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment