Skip to content

Instantly share code, notes, and snippets.

@yamule
Last active January 7, 2024 10:29
Show Gist options
  • Save yamule/9248b31126891d76f105a2bc4dfe7567 to your computer and use it in GitHub Desktop.
Save yamule/9248b31126891d76f105a2bc4dfe7567 to your computer and use it in GitHub Desktop.
自分用スニペット
//------------ argparse
import argparse;
def check_bool(v):
v = v.lower();
if v == "true" or v == "1":
return True;
if v == "false" or v == "0":
return False;
raise Exception("true or false or 1 or 0 are expected.");
parser = argparse.ArgumentParser();
parser.add_argument("--infile",required= True) ;
parser.add_argument("--outdir",required= True) ;
parser.add_argument("--batch_size",required= True,type=int);
parser.add_argument("--checkk",required= True,type=check_bool);
args = parser.parse_args();
//----------------------------
//------ fasta 読み込み
import gzip;
def loadFasta(filename):
if filename.endswith(".gz"):
fin = gzip.open(filename,"rt");
else:
fin = open(filename,"r");
ret = [];
cdict = dict();
cdict["seq"] = "";
ret.append(cdict);
for ll in fin:
mat = re.search("[\s]*>",ll);
if(not mat == None):
cdict = dict();
ret.append(cdict);
nmat = re.search("[\s]*>[\s]*([^\s]+)",ll);
if(not nmat == None):
cdict["name"] = nmat.group(1);
cdict["desc"] = "";
dmat = re.search("[\s]*>[\s]*([^\s]+)[\s]+([^\s][^\r\n]*)",ll);
if(not dmat == None):
cdict["desc"] = dmat.group(2);
cdict["seq"] = "";
else:
cdict["seq"] += re.sub("[\s]","",ll);
if(len(ret[0]["seq"]) == 0):
ret.pop(0);
fin.close();
return ret;
//----------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment