Ich versuche, einen Code zu schreiben, wo es eine METADATA.TXT als eine Eingabe nimmt, dann identifizieren sie die gemeinsamen Gene in den verschiedenen Eingabedateien, deren Namen extrahiert werden aus dem Metadata .txt-Datei.unter Verwendung mehrerer Dateien von einem Eingang
Beispiel METADATA.TXT
SIG1 SIG2 File1 File3 File2 File4 File3 File5 File4
Die Dateien in meinem Verzeichnis sind File1.xls, File2.xls, File3.xls ... File6.xls. Der Einfachheit halber habe ich gleiche Eingänge für File1 und 3-Datei sowie für File 2 und 4.
File1.xls oder File3.xls
TargetID FoldChange p-value Adjusted-p A 0.543528215 0.000518847 0.000518847 B 0.638469898 0.00204759 0.00204759 C 1.936595724 0.00250229 0.00250229 D 0.657322154 0.012840013 0.012840013 E 1.728842021 0.00251105 0.00251105 F 2.024842641 0.000719261 0.000719261 G 4.049059413 2.25E-05 2.25E-05 H 0.478660942 0.000352179 0.000352179 I 0.449304016 0.000489521 0.000489521
File2.xls oder File4.xls
TargetID FoldChange p-value Adjusted-p JJ 0.453537892 4.22E-06 4.22E-06 A 0.558325503 0.001697851 0.001697851 B 0.637336564 7.64E-05 7.64E-05 D 1.804853034 0.000492439 0.000492439 E 0.378445825 1.72E-05 1.72E-05 JJJJ 1.601997491 0.019618883 0.019618883
File5.xls
TargetID FoldChange p-value Adjusted-p A 3.140223972 0.013347275 0.013347275 B 1.5205222 0.032318774 0.032318774 C 1.532760451 0.043763101 0.043763101 D 1.522865896 0.001791471 0.001791471
Ziel ist es, Ausgabe zwei Dateien „SIG1.txt“ und „SIG2.txt“, die die gemeinsamen Gene hat sein zwischen File1/File2 und File3/File4/File5. Die Metadaten bieten also eine Plattform, um über Dinge zu iterieren. Hier ist, was ich bisher hatte:
md_input = pd.read_table("Metadata.txt", sep="\t") #opens the metadata file
for c in range(0, len(md_input.columns)):
first_file=md_input.ix[0,c]+".xls"
print first_file #this will print "File1.xls" for column1 and File3.xls for column#2
first_sig=pd.read_table(first_file, sep="\t", usecols=["TargetID", 'FoldChange']) #opens the first file
list1=list(first_file.iloc[:,0]) #takes column of first file and converts to list
#Then, I aim to iterate over the remaining files in each column of the metadata and find the intersection/common with each other. I tried the following:
for i in range(1, md_input.count()[c]):
list2=[]
df=pd.read_table("{}.xls".format(md_input.ix[i,c]), sep="\t", usecols=["TargetID", 'FoldChange'])
list2=list(df.iloc[:,0]) #assign the LIST
common=list(set(list_up_0).intersection(set(list2))) #find intersection
print common
Wenn ich die ‚gemeinsamen‘ drucken, erhalte ich nur die Gemeinsamkeiten mit der letzten Datei. Was erwartet wird, wie ich den Loop/Code geschrieben habe. Ich finde keine Möglichkeit, über alle Dateien in der Spalte zu iterieren, sie offen zu halten und dann eine Kreuzung zu identifizieren.
Bitte beraten, wenn ich die oben weiter klären müssen. Ich weiß, es klingt kompliziert, aber es sollte nicht sein. t versucht, es zu vereinfachen, und ich hoffe, dass
arbeitete
Vielleicht brauchen Sie etwas Platz vor 'print common' ??? versuchen auszurichten mit 'gemeinsamen = list (set (list_up_0) .intersection (set (list2))) #find intersection' ... – su79eu7k
, dass es nicht lösen würde. es wird dir dann bei jedem Schritt das Gemeinsame geben. – BioProgram